Blog Post

IIS Support Blog
4 MIN READ

Creating a Custom Policy to Check Last Activity on Azure Bot Channel

meenakshiBalekar's avatar
Oct 02, 2024

Creating a Custom Policy to Check Last Activity on Azure Bot Channel

 

Introduction

 

In the rapidly evolving world of technology, ensuring that bots are functioning optimally and engaging with users is paramount. One of the crucial aspects of bot management is monitoring their activity.

 

In this post, we delve into creating a custom policy to check the last activity on an Azure Bot channel, a task that can help maintain the bot's efficiency and user satisfaction.

 

Understanding Azure Bot Service

 

Azure Bot Service provides tools to build, test, deploy, and manage intelligent bots that interact naturally with users on a website, app, Cortana, Microsoft Teams, Skype, Slack, Facebook Messenger, and more. Azure Bot

 

However, keeping track of bot activity, including the last interaction with users, is essential for maintaining engagement and troubleshooting potential issues.

 

Why Monitor Last Activity?

 

Monitoring the last activity of your Azure Bot can help in:

  • Ensuring Engagement: By tracking the last interaction, you can determine whether users are continually engaging with your bot or if there's a drop-off that needs addressing.
  • Identifying Issues: Regular checks can reveal if there are periods of inactivity potentially caused by issues within the bot or the channel itself.
  • Improving User Experience: Understanding interaction patterns can help refine bot responses and improve the overall user experience.

 

Steps to Create a Custom Policy

 

Creating a custom policy to check the last activity on an Azure Bot channel involves several steps. Below is a detailed process to guide you through setting up this policy effectively.

 

Prerequisites

 

Before you begin, ensure you have the following:

  • An active Azure subscription.
  • Access to the Azure Bot Service.
  • Basic knowledge of Azure Policy and Azure SDK.

 

Step 1: Define the Policy

Firstly, you need to define the custom policy in JSON format. This policy will check for the last activity on the bot channel. Below is a sample JSON definition:

 

 

 

{
  "properties": {
    "displayName": "Quater Audit active Channels",
    "policyType": "Custom",
    "mode": "All",
    "metadata": {
      "category": "Bot Service"
    },
    "parameters": {},
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.BotService/botServices"
          },
          {
            "field": "Microsoft.BotService/botServices/channels[*].lastActivity",
            "less": "[addDays(utcNow(), -90)]"
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
  }
}
 

 

 

 

Step 2: Deploy the Policy

Once the policy is defined, you need to deploy it using the Azure portal or Azure CLI. Here, we use Azure CLI:

 

 

 

az policy definition create --name 'check-last-activity' --display-name 'Check Azure Bot Last Activity' --description 'Audits if the bot has not been active within the specified threshold.' --rules 'path-to-your-policy-definition.json' --mode All

 

 

After creating the policy definition, assign it to a scope (e.g., subscription, resource group):

 

 

Step 3: Monitor Compliance

Once the policy is assigned, Azure Policy will evaluate compliance at regular intervals. You can monitor the compliance state via the Azure Policy dashboard in the Azure portal.

 

Advanced Monitoring and Notifications

 

For more sophisticated monitoring, you can integrate Azure Monitor and set up alerts. Here’s how you can do it:

 

Step 1: Create a Log Analytics Workspace

If you don’t already have a Log Analytics workspace, create one:

 

 

 

az monitor log-analytics workspace create --resource-group your-resource-group --workspace-name your-workspace-name

 

 

 

Step 2: Configure Diagnostic Settings

Configure the bot service to send diagnostic logs to the Log Analytics workspace:

 

 

 

az monitor diagnostic-settings create --resource /subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.BotService/botServices/your-bot-name --workspace your-workspace-name --logs '[{"category": "AuditLogs", "enabled": true}]'

 

 

 

Step 3: Set Up Alerts

Create an alert rule to notify you when the bot's last activity is beyond the threshold:

 

 

 

az monitor metrics alert create --name 'BotInactivityAlert' --resource-group your-resource-group --scopes /subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.BotService/botServices/your-bot-name --condition "total lastActivity less than 1" --description 'Alert for bot inactivity' --action-group /subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/microsoft.insights/actionGroups/your-action-group

 

 

 

Conclusion

 

Creating a custom policy to check the last activity on an Azure Bot channel is an essential step for ensuring continuous engagement and optimal performance. By following the steps outlined above, you can set up an effective monitoring system that helps you stay informed about your bot's interactions and take proactive measures to address any issues.

 

Embrace this approach to enhance your bot management strategy and deliver a superior user experience. Stay tuned for more insights and tips on leveraging Azure services to their full potential.

Updated Oct 01, 2024
Version 1.0
No CommentsBe the first to comment