Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Connectors - Custom vs Standard Breakdown
// Description: Compare usage of custom connectors against standard/premium connectors
// Categories: Power Platform
// Resource types: Power Platform Connectors
// Topic: Governance
// Prerequisites: Power Platform admin diagnostic settings connected to Log Analytics workspace

PowerPlatformConnectorActivity
| where TimeGenerated > ago(30d)
| extend ConnectorType = iff(ConnectorId startswith "shared_", "Standard/Premium", "Custom")
| summarize Calls=count(), UniqueUsers=dcount(UserId) by ConnectorType, ConnectorId
| order by Calls desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Author: russrimm
// Display name: Connectors - Failures and Throttling
// Description: Failed connector calls and throttled requests with error details
// Categories: Power Platform
// Resource types: Power Platform Connectors
// Topic: Troubleshooting
// Prerequisites: Power Platform admin diagnostic settings connected to Log Analytics workspace

PowerPlatformConnectorActivity
| where TimeGenerated > ago(7d)
| where ResultStatus == "Failure" or ResultStatus == "Throttled"
| project TimeGenerated, ConnectorId, OperationName, ResultStatus, ErrorMessage=tostring(AdditionalInfo), UserId
| order by TimeGenerated desc
| take 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Connectors - Top 20 Most Used Connectors
// Description: Highest-volume connectors by invocation count
// Categories: Power Platform
// Resource types: Power Platform Connectors
// Topic: Usage Analytics
// Prerequisites: Power Platform admin diagnostic settings connected to Log Analytics workspace

PowerPlatformConnectorActivity
| where TimeGenerated > ago(30d)
| summarize Calls=count(), UniqueUsers=dcount(UserId) by ConnectorId
| order by Calls desc
| take 20
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Author: russrimm
// Display name: Connectors - Usage Summary by Day
// Description: Daily connector invocation counts and distinct users
// Categories: Power Platform
// Resource types: Power Platform Connectors
// Topic: Usage Analytics
// Prerequisites: Power Platform admin diagnostic settings connected to Log Analytics workspace

PowerPlatformConnectorActivity
| where TimeGenerated > ago(30d)
| summarize Calls=count(), UniqueUsers=dcount(UserId) by Day=bin(TimeGenerated, 1d)
| order by Day asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Author: russrimm
// Display name: Copilot Studio - 30-Day Session Summary
// Description: Total sessions, messages, topics triggered, and error count over the last 30 days
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| summarize
TotalSessions=dcount(tostring(Properties["conversationId"])),
MessagesReceived=countif(Name=="BotMessageReceived"),
MessagesSent=countif(Name=="BotMessageSend"),
TopicsStarted=countif(Name=="DialogStart"),
TopicsCompleted=countif(Name=="DialogComplete"),
GenerativeAnswered=countif(Name=="GenerativeAnswerResult" and tobool(Properties["hasAnswer"])==true),
DialogErrors=countif(Name in ("DialogFail","WaterfallFail"))
| extend CompletionRate=round(todouble(TopicsCompleted)/todouble(TopicsStarted)*100, 1)
| project TotalSessions, MessagesReceived, MessagesSent, TopicsStarted, TopicsCompleted, CompletionRate, GenerativeAnswered, DialogErrors)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Action and Plugin Call Traces
// Description: Power Automate flow calls and HTTP action traces from bot conversations
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Troubleshooting

union isfuzzy=true (AppTraces
| where TimeGenerated > ago(7d)
| where Message has_any ("PowerAutomate", "HttpAction", "SkillAction", "ActionResult", "PluginAction")
| project TimeGenerated, Message, SeverityLevel, Properties
| order by TimeGenerated desc
| take 100)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Author: russrimm
// Display name: Copilot Studio - Action Errors in Traces
// Description: Failed action or plugin calls captured in AppTraces during bot conversations
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Troubleshooting

union isfuzzy=true (AppTraces
| where TimeGenerated > ago(7d)
| where SeverityLevel >= 2
| where Message has_any ("PowerAutomate", "HttpAction", "SkillAction", "ActionResult", "PluginAction", "connector", "action")
| project TimeGenerated, SeverityLevel, Message, Properties
| order by TimeGenerated desc
| take 50)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Author: russrimm
// Display name: Copilot Studio - Admin Activity (Publish, Configure, Delete)
// Description: Bot publish, configuration changes, and deletions from PowerPlatformAdminActivity
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Governance
// Prerequisites: Power Platform admin activity logs connected to Log Analytics workspace

union isfuzzy=true (PowerPlatformAdminActivity
| where TimeGenerated > ago(30d)
| where EntityType == "Bot"
| project TimeGenerated, Operation, EntityName, ResultStatus, UserId, UserName
| order by TimeGenerated desc
| take 100)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Admin Operation Summary
// Description: Count of bot admin operations by type over the last 30 days
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Governance
// Prerequisites: Power Platform admin activity logs connected to Log Analytics workspace

union isfuzzy=true (PowerPlatformAdminActivity
| where TimeGenerated > ago(30d)
| where EntityType == "Bot"
| summarize Count=count(), SuccessCount=countif(ResultStatus=="Succeeded"), FailCount=countif(ResultStatus=="Failed") by Operation
| order by Count desc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Author: russrimm
// Display name: Copilot Studio - Bot Conversation Errors (BotConversationEvent)
// Description: Error events in conversations from BotConversationEvent with error code and message
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Troubleshooting
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(7d)
| where isnotempty(ErrorCode) or Outcome == "Failure"
| project TimeGenerated, BotId, Channel, DialogId, Outcome, ErrorCode, ErrorMessage, ConversationId
| order by TimeGenerated desc
| take 100)
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Author: russrimm
// Display name: Copilot Studio - Bot Conversations (BotConversationEvent)
// Description: All conversation events from the native Power Platform BotConversationEvent table
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(7d)
| summarize
Sessions=dcount(ConversationId),
Events=count()
by Day=bin(TimeGenerated, 1d), Channel
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Author: russrimm
// Display name: Copilot Studio - Channel Activity (BotConversationEvent)
// Description: Sessions per channel per day from BotConversationEvent
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(30d)
| summarize Sessions=dcount(ConversationId) by Day=bin(TimeGenerated, 1d), Channel
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Channel Breakdown
// Description: Message volume by publishing channel, excluding test canvas
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name == "BotMessageReceived"
| summarize Messages=count() by Channel=tostring(Properties["channelId"])
| order by Messages desc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Author: russrimm
// Display name: Copilot Studio - Conversation Outcomes (BotConversationEvent)
// Description: Resolved, escalated, and abandoned conversation counts from BotConversationEvent
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(30d)
| summarize ConversationCount=dcount(ConversationId) by Outcome, Channel
| order by ConversationCount desc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Author: russrimm
// Display name: Copilot Studio - Daily Session Volume
// Description: Unique conversation sessions per day, excluding test canvas
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| summarize Sessions=dcount(tostring(Properties["conversationId"])) by Day=bin(TimeGenerated, 1d)
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Dialog Errors
// Description: Failed dialogs and waterfall step failures per day
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Troubleshooting

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name in ("DialogFail", "WaterfallFail")
| summarize Errors=count() by Day=bin(TimeGenerated, 1d), ErrorType=Name
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Author: russrimm
// Display name: Copilot Studio - Escalations to Human
// Description: Daily count of topics that escalated to a human agent
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name == "DialogStart"
| where tolower(tostring(Properties["dialogName"])) contains "escalat"
or tolower(tostring(Properties["dialogName"])) contains "human"
or tolower(tostring(Properties["dialogName"])) contains "agent"
| summarize Count=count() by Day=bin(TimeGenerated, 1d)
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Author: russrimm
// Display name: Copilot Studio - Generative AI Answer Rate
// Description: Daily generative answer rate and average confidence, excluding test canvas
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name == "GenerativeAnswerResult"
| summarize
Total=count(),
Answered=countif(tobool(Properties["hasAnswer"])==true),
AvgConfidence=round(avg(todouble(Properties["confidence"])), 2)
by Day=bin(TimeGenerated, 1d)
| extend AnswerRate=round(todouble(Answered)/todouble(Total)*100, 1)
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Message Volume (Received vs Sent)
// Description: User messages received vs bot messages sent per day, excluding test canvas
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name in ("BotMessageReceived", "BotMessageSend")
| summarize Received=countif(Name=="BotMessageReceived"), Sent=countif(Name=="BotMessageSend") by Day=bin(TimeGenerated, 1d)
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Recent Session Detail (BotConversationEvent)
// Description: Latest 100 bot conversation events for live debugging
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Troubleshooting
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(1d)
| project TimeGenerated, Channel, DialogId, ActivityType, Outcome, ErrorCode, ConversationId, SessionId
| order by TimeGenerated desc
| take 100)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Author: russrimm
// Display name: Copilot Studio - Test Canvas Activity
// Description: All bot activity from the Copilot Studio test canvas (author testing sessions only)
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Testing

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(7d)
| where Properties["designMode"] == "True"
| summarize Events=count(), UniqueTopics=dcount(tostring(Properties["dialogName"])) by Day=bin(TimeGenerated, 1d)
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Author: russrimm
// Display name: Copilot Studio - Test Canvas Errors
// Description: Dialog failures and errors encountered during test canvas sessions
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Testing

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(7d)
| where Properties["designMode"] == "True"
| where Name in ("DialogFail", "WaterfallFail", "GenerativeAnswerResult")
| extend IsError = Name in ("DialogFail", "WaterfallFail")
| extend NoAnswer = Name == "GenerativeAnswerResult" and tobool(Properties["hasAnswer"]) == false
| where IsError or NoAnswer
| project TimeGenerated,
EventType = Name,
Topic = tostring(Properties["dialogName"]),
ConversationId = tostring(Properties["conversationId"])
| order by TimeGenerated desc
| take 50)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Author: russrimm
// Display name: Copilot Studio - Test Canvas Topic Coverage
// Description: Topics exercised during test canvas sessions - useful to verify test coverage
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Testing

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(7d)
| where Properties["designMode"] == "True"
| where Name == "DialogStart"
| summarize
Triggered=count(),
Completed=countif(Name=="DialogComplete"),
LastTested=max(TimeGenerated)
by Topic=tostring(Properties["dialogName"])
| order by LastTested desc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Author: russrimm
// Display name: Copilot Studio - Test vs Production Traffic
// Description: Compare event counts from test canvas vs real users per day
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Testing

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(14d)
| where Name == "BotMessageReceived"
| extend TrafficType = iff(tostring(Properties["designMode"]) == "True", "Test Canvas", "Production")
| summarize Messages=count() by Day=bin(TimeGenerated, 1d), TrafficType
| order by Day asc)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Author: russrimm
// Display name: Copilot Studio - Top 15 Topics
// Description: Most frequently triggered dialog topics, excluding test canvas
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics

union isfuzzy=true (AppCustomEvents
| where TimeGenerated > ago(30d)
| where Properties["designMode"] != "True"
| where Name == "DialogStart"
| summarize Triggers=count() by Topic=tostring(Properties["dialogName"])
| order by Triggers desc
| take 15)
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Author: russrimm
// Display name: Copilot Studio - Top Topics by Outcome (BotConversationEvent)
// Description: Most-triggered dialog topics broken down by outcome
// Categories: Power Platform
// Resource types: Copilot Studio
// Topic: Usage Analytics
// Prerequisites: Power Platform diagnostic settings connected to Log Analytics workspace

union isfuzzy=true (BotConversationEvent
| where TimeGenerated > ago(30d)
| summarize
Total=count(),
Resolved=countif(Outcome == "Success"),
Escalated=countif(Outcome == "Escalated"),
Failed=countif(Outcome == "Failure")
by Topic=DialogId
| where Total > 0
| extend ResolutionRate=round(todouble(Resolved)/todouble(Total)*100, 1)
| order by Total desc
| take 20)
Loading