diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsights.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsights.json index d6cc70066d9..1b6e82299b8 100644 --- a/public/app/plugins/datasource/azuremonitor/dashboards/appInsights.json +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsights.json @@ -1,34 +1,75 @@ { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "9.5.2" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], "description": "The dashboard provides insights of Azure Apps via different metrics for app monitoring through Application Insights.", "editable": true, - "gnetId": null, - "graphTooltip": 0, "id": null, - "iteration": 1644348036942, - "links": [], + "links": [ + { + "asDropdown": true, + "icon": "dashboard", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Perf"], + "targetBlank": true, + "title": "Performance", + "tooltip": "", + "type": "dashboards", + "url": "" + }, + { + "asDropdown": true, + "icon": "dashboard", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Failures"], + "targetBlank": true, + "title": "Failures", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, "panels": [ { "collapsed": false, - "datasource": null, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "gridPos": { "h": 1, "w": 24, @@ -41,7 +82,6 @@ "type": "row" }, { - "datasource": null, "gridPos": { "h": 3, "w": 5, @@ -50,14 +90,22 @@ }, "id": 10, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "\n
\n

${res}

\n
Application Insights
\n
\n
", "mode": "html" }, - "pluginVersion": "8.2.7", + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -121,18 +169,9 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.2.7", + "pluginVersion": "9.5.2", "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n //the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -148,12 +187,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -165,7 +201,6 @@ "type": "stat" }, { - "datasource": null, "gridPos": { "h": 3, "w": 4, @@ -175,20 +210,18 @@ "id": 44, "links": [], "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "\n
\n

Smart detection

\n

${res}

\n
\n
", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": "Azure Monitor", "gridPos": { "h": 3, "w": 3, @@ -198,20 +231,18 @@ "id": 46, "links": [], "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "\n
\n

Live Metrics

\n

${res}

\n
\n
\n \n ", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": null, "gridPos": { "h": 3, "w": 3, @@ -220,21 +251,23 @@ }, "id": 42, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "\n
\n

App map

\n

${res}

\n
\n
\n ", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { "collapsed": false, - "datasource": null, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "gridPos": { "h": 1, "w": 24, @@ -243,11 +276,10 @@ }, "id": 54, "panels": [], - "title": "Application Insights", + "title": "Application Insights Overview", "type": "row" }, { - "datasource": null, "gridPos": { "h": 3, "w": 4, @@ -256,20 +288,22 @@ }, "id": 12, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "

Usage

", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -336,41 +370,17 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.2.7", + "pluginVersion": "9.5.2", "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, "azureLogAnalytics": { "query": "union\n (traces\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (requests\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (pageViews\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (dependencies\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (customEvents\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (availabilityResults\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (exceptions\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (customMetrics\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (browserTimings\n | where timestamp >= $__timeFrom and timestamp < $__timeTo)\n| where notempty(user_Id)\n| summarize ['users/count_unique'] = dcount(user_Id) by bin(timestamp, 1m)\n| order by timestamp desc", "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", "resultFormat": "time_series" }, - "azureMonitor": { - "aggOptions": [], - "aggregation": "Count", - "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000], - "dimensionFilter": "*", - "dimensionFilters": [], - "metricDefinition": "microsoft.insights/components", - "metricName": "requests/count", - "metricNamespace": "microsoft.insights/components", - "resourceGroup": "$rg", - "resourceName": "$res", - "timeGrain": "auto", - "timeGrains": [], - "top": "50" - }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Log Analytics", "refId": "B", @@ -382,7 +392,6 @@ "type": "stat" }, { - "datasource": "Azure Monitor", "gridPos": { "h": 3, "w": 4, @@ -391,50 +400,18 @@ }, "id": 14, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "

Reliability

", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, - "azureMonitor": { - "aggOptions": [], - "dimensionFilter": "*", - "dimensionFilters": [], - "metricDefinition": "Microsoft.Insights/components", - "metricNamespace": "microsoft.insights/components", - "resourceGroup": "$rg", - "resourceName": "$res", - "timeGrain": "", - "timeGrains": [], - "top": "10" - }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" - }, - "queryType": "Azure Monitor", - "refId": "A", - "subscription": "$sub", - "subscriptions": [] - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": null, "gridPos": { "h": 3, "w": 2, @@ -444,20 +421,18 @@ "id": 36, "links": [], "options": { - "content": "\n
\n

Failures

\n

${res}

\n
\n
\n", + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n
\n

Failures

\n

${res}

\n
\n
\n", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": "Azure Monitor", "gridPos": { "h": 3, "w": 3, @@ -466,50 +441,18 @@ }, "id": 17, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "

Responsiveness

", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, - "azureMonitor": { - "aggOptions": [], - "dimensionFilter": "*", - "dimensionFilters": [], - "metricDefinition": "Microsoft.Insights/components", - "metricNamespace": "microsoft.insights/components", - "resourceGroup": "$rg", - "resourceName": "$res", - "timeGrain": "", - "timeGrains": [], - "top": "10" - }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" - }, - "queryType": "Azure Monitor", - "refId": "A", - "subscription": "$sub", - "subscriptions": [] - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": null, "gridPos": { "h": 3, "w": 3, @@ -519,20 +462,18 @@ "id": 38, "links": [], "options": { - "content": "\n
\n

Performance

\n

${res}

\n
\n
\n", + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n
\n

Performance

\n

${res}

\n
\n
\n", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": "Azure Monitor", "gridPos": { "h": 3, "w": 4, @@ -541,50 +482,18 @@ }, "id": 18, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "

Browser

", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, - "azureMonitor": { - "aggOptions": [], - "dimensionFilter": "*", - "dimensionFilters": [], - "metricDefinition": "Microsoft.Insights/components", - "metricNamespace": "microsoft.insights/components", - "resourceGroup": "$rg", - "resourceName": "$res", - "timeGrain": "", - "timeGrains": [], - "top": "10" - }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" - }, - "queryType": "Azure Monitor", - "refId": "A", - "subscription": "$sub", - "subscriptions": [] - } - ], + "pluginVersion": "9.5.2", "type": "text" }, { - "datasource": null, "gridPos": { "h": 3, "w": 2, @@ -593,21 +502,23 @@ }, "id": 50, "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, "content": "\n
\n

Browsers

\n
\n
", "mode": "html" }, - "pluginVersion": "8.2.7", - "targets": [ - { - "queryType": "randomWalk", - "refId": "A" - } - ], + "pluginVersion": "9.5.2", "transparent": true, "type": "text" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", "fieldConfig": { "defaults": { @@ -616,6 +527,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, @@ -714,45 +627,24 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, "azureLogAnalytics": { "query": "union\n (traces\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (requests\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (pageViews\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (dependencies\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (customEvents\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (availabilityResults\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (exceptions\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (customMetrics\n | where timestamp >= $__timeFrom and timestamp < $__timeTo),\n (browserTimings\n | where timestamp >= $__timeFrom and timestamp < $__timeTo)\n| where notempty(user_Id)\n| summarize ['users/count_unique'] = dcount(user_Id) by bin(timestamp, $__interval)\n| order by timestamp desc", "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", "resultFormat": "time_series" }, - "azureMonitor": { - "aggOptions": [], - "allowedTimeGrainsMs": [60000, 300000, 900000, 1800000, 3600000, 21600000, 43200000, 86400000], - "dimensionFilter": "*", - "dimensionFilters": [], - "metricDefinition": "microsoft.insights/components", - "metricName": "requests/count", - "metricNamespace": "microsoft.insights/components", - "resourceGroup": "$rg", - "resourceName": "$res", - "timeGrain": "auto", - "timeGrains": [], - "top": "50" - }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Log Analytics", "refId": "A", @@ -765,8 +657,9 @@ "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", "resultFormat": "time_series" }, - "azureMonitor": { - "timeGrain": "auto" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "hide": false, "queryType": "Azure Log Analytics", @@ -774,13 +667,15 @@ "subscription": "" } ], - "timeShift": null, "title": "Users", "transformations": [], "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -788,6 +683,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -851,23 +748,16 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -883,12 +773,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Failed requests", @@ -900,7 +787,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -908,6 +798,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, @@ -976,23 +868,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1004,16 +889,14 @@ "metricNamespace": "microsoft.insights/components", "resourceGroup": "$rg", "resourceName": "$res", + "resourceUri": "/subscriptions/$sub/resourceGroups/$rg/providers/microsoft.insights/components/$res", "timeGrain": "auto", "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -1026,7 +909,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -1034,6 +920,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1101,23 +989,16 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -1133,12 +1014,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -1150,7 +1028,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -1158,6 +1039,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisWidth": 50, @@ -1241,23 +1124,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1273,12 +1149,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -1290,7 +1163,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -1298,6 +1174,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1389,23 +1267,16 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -1422,13 +1293,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Server Exceptions", @@ -1436,15 +1303,6 @@ "subscriptions": [] }, { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -1461,13 +1319,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Dependency failures", @@ -1480,7 +1334,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -1488,6 +1345,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMax": -6, @@ -1555,23 +1414,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1587,12 +1439,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Processor", @@ -1600,15 +1449,6 @@ "subscriptions": [] }, { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1624,13 +1464,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Process CPU", @@ -1642,7 +1478,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -1650,6 +1489,8 @@ "mode": "continuous-BlPu" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1775,23 +1616,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1807,12 +1641,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Page load network connect time", @@ -1820,15 +1651,6 @@ "subscriptions": [] }, { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1844,13 +1666,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Client processing time", @@ -1858,15 +1676,6 @@ "subscriptions": [] }, { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1882,13 +1691,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Send request time", @@ -1896,15 +1701,6 @@ "subscriptions": [] }, { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -1920,13 +1716,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "hide": false, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "Receiving response time", @@ -1938,13 +1730,18 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, @@ -1979,8 +1776,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2010,23 +1806,16 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -2042,12 +1831,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -2059,7 +1845,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -2067,6 +1856,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -2100,8 +1891,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2131,23 +1921,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -2163,12 +1946,9 @@ "timeGrains": [], "top": "100" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -2180,7 +1960,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -2188,6 +1971,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, @@ -2223,8 +2008,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2254,23 +2038,16 @@ "legend": { "calcs": ["mean"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Average", @@ -2286,12 +2063,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -2303,7 +2077,10 @@ "type": "timeseries" }, { - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "fieldConfig": { "defaults": { "color": { @@ -2311,6 +2088,8 @@ "mode": "fixed" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, @@ -2346,8 +2125,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2377,23 +2155,16 @@ "legend": { "calcs": ["sum"], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { - "mode": "single" + "mode": "single", + "sort": "none" } }, "targets": [ { - "appInsights": { - "dimension": [], - "metricName": "select", - "timeGrain": "auto" - }, - "azureLogAnalytics": { - "query": "//change this example to create your own time series query\n
//the table to query (e.g. Usage, Heartbeat, Perf)\n| where $__timeFilter(TimeGenerated) //this is a macro used to show the full chart’s time range, choose the datetime column here\n| summarize count() by , bin(TimeGenerated, $__interval) //change “group by column” to a column in your table, such as “Computer”. The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.\n| order by TimeGenerated asc", - "resultFormat": "time_series" - }, "azureMonitor": { "aggOptions": [], "aggregation": "Count", @@ -2409,12 +2180,9 @@ "timeGrains": [], "top": "50" }, - "azureResourceGraph": { - "resultFormat": "table" - }, - "insightsAnalytics": { - "query": "", - "resultFormat": "time_series" + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" }, "queryType": "Azure Monitor", "refId": "A", @@ -2427,14 +2195,14 @@ } ], "refresh": "", - "schemaVersion": 32, + "revision": 1, + "schemaVersion": 38, + "style": "dark", "tags": [], "templating": { "list": [ { "current": {}, - "description": null, - "error": null, "hide": 0, "includeAll": false, "label": "Datasource", @@ -2449,32 +2217,39 @@ "type": "datasource" }, { - "allValue": null, "current": {}, - "datasource": "${ds}", - "definition": "Subscriptions()", - "description": null, - "error": null, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", "hide": 0, "includeAll": false, "label": "Subscription", "multi": false, "name": "sub", "options": [], - "query": "Subscriptions()", + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, "refresh": 1, "regex": "", "skipUrlSync": false, - "sort": 5, + "sort": 0, "type": "query" }, { - "allValue": null, "current": {}, - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "definition": "", - "description": null, - "error": null, "hide": 0, "includeAll": false, "label": "Resource Group", @@ -2482,26 +2257,28 @@ "name": "rg", "options": [], "query": { - "azureResourceGraph": { - "query": "resources\r\n| where [\"type\"] =~ \"Microsoft.Insights/components\"\r\n| distinct resourceGroup" + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" }, - "queryType": "Azure Resource Graph", + "queryType": "Azure Resource Groups", "refId": "A", - "subscriptions": ["$sub"] + "subscription": "$sub" }, "refresh": 1, "regex": "", "skipUrlSync": false, - "sort": 5, + "sort": 0, "type": "query" }, { - "allValue": null, "current": {}, - "datasource": "${ds}", + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, "definition": "", - "description": null, - "error": null, "hide": 2, "includeAll": false, "label": "Namespace", @@ -2509,26 +2286,30 @@ "name": "ns", "options": [], "query": { - "azureResourceGraph": { - "query": "resources\r\n| where [\"type\"] =~ \"Microsoft.Insights/components\" and resourceGroup =~ \"$rg\"\r\n| distinct [\"type\"]" + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" }, - "queryType": "Azure Resource Graph", + "queryType": "Azure Namespaces", "refId": "A", - "subscriptions": ["$sub"] + "resourceGroup": "$rg", + "subscription": "$sub" }, "refresh": 1, - "regex": "", + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", "skipUrlSync": false, - "sort": 5, + "sort": 0, "type": "query" }, { - "allValue": null, "current": {}, - "datasource": "${ds}", - "definition": "", - "description": null, - "error": null, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", "hide": 0, "includeAll": false, "label": "Resource", @@ -2545,38 +2326,7 @@ "refresh": 1, "regex": "", "skipUrlSync": false, - "sort": 5, - "type": "query" - }, - { - "current": {}, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "definition": "resources\n| project tenantId", - "hide": 2, - "includeAll": false, - "label": "tenantId", - "multi": false, - "name": "tenant", - "options": [], - "query": { - "azureLogAnalytics": { - "query": "", - "resource": "" - }, - "azureResourceGraph": { - "query": "Resources\r\n|project tenantId" - }, - "queryType": "Azure Resource Graph", - "refId": "A", - "subscriptions": ["$sub"] - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, + "sort": 0, "type": "query" } ] @@ -2587,7 +2337,7 @@ }, "timepicker": {}, "timezone": "", - "uid": "Yo38mcvnz", - "title": "Azure / Insights / Applications", - "version": 10 + "title": "Azure / Insights / Applications - Overview", + "uid": "Azure-AppInsights-Overview", + "version": 83 } diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureDependencies.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureDependencies.json new file mode 100644 index 00000000000..eaac78827c4 --- /dev/null +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureDependencies.json @@ -0,0 +1,1595 @@ +{ + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.0.3" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "The dashboard provides insights of dependency failures through Application Insights.", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Failures"], + "targetBlank": true, + "title": "Azure Application Insights Failures Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 89, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "# Failures - Dependencies", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 81, + "panels": [], + "title": "Application Insights - Failures - Dependencies", + "type": "row" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 64, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "semi-dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "failedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "FailedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 13, + "x": 0, + "y": 3 + }, + "id": 80, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "dependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where \"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code)\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| summarize FailedCount=sumif(itemCount, success == false) by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Failed Dependencies (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": false, + "title": "Filter Result code", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${dependency:queryparam}&var-dependency_result_code=${__data.fields[\"Result Code\"]}" + } + ], + "mappings": [], + "min": 0, + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "custom.width", + "value": 584 + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Result Code" + }, + "properties": [ + { + "id": "custom.width", + "value": 252 + }, + { + "id": "links", + "value": [ + { + "title": "Filter result code", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${dependency:queryparam}&var-dependency_result_code=${__data.fields[\"Result Code\"]}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 11, + "x": 13, + "y": 3 + }, + "id": 84, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "dependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where success == false\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| summarize Count=sum(itemCount) by [\"Result Code\"]=resultCode\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top response codes (count)", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 62, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 13, + "x": 0, + "y": 13 + }, + "id": 83, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n// calculate average request duration for all requests\n| summarize Count = count() by bin(timestamp, $__interval)\n| order by timestamp asc\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 22, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 1, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "sum_itemCount 404" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sum_itemCount 500" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResultCode 404" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 11, + "x": 13, + "y": 13 + }, + "id": 82, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.0.8.1", + "targets": [ + { + "azureLogAnalytics": { + "query": "dependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where \"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code)\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| summarize ResultCode = sum(itemCount) by resultCode, bin(timestamp, $__interval)\n| sort by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Response codes (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "links": [ + { + "title": "Reset to All dependencies and All result codes", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-dependency=All&var-dependency_result_code=All" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 19 + }, + "id": 85, + "interval": "60s", + "links": [ + { + "title": "Reset to All Failed Dependencies and All result codes", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-dependency=All&var-dependency_result_code=All" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "dependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| summarize failedCount=sumif(itemCount, success == false)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "All Failed dependencies (Count)", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Failed dependencies matching result code ${dependency_result_code:text} and dependency ${dependency:text}", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "failedCount" + }, + "properties": [ + { + "id": "links" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 19 + }, + "id": 77, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "dependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| summarize failedCount=sumif(itemCount, success == false)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Failed dependencies matching result code and dependency", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on a dependency name to filter dashboard.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": true, + "title": "Show list of sample transactions", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"},{\"property\":\"resultCode\",\"filters\":[${dependency_result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Dependency name" + }, + "properties": [ + { + "id": "custom.width", + "value": 161 + }, + { + "id": "links", + "value": [ + { + "title": "Show list of matching dependencies", + "url": "d/Azure-AppInsights-Failures-Dependencies/?orgId=1&${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${dependency_result_code:queryparam}&var-dependency=${__data.fields[\"Dependency name\"]}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Failed count" + }, + "properties": [ + { + "id": "custom.hidden", + "value": false + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge", + "valueDisplayMode": "text" + } + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open dependencies in explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}, {\"property\":\"resultCode\",\"filters\":[${dependency_result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "target" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "name" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + }, + { + "id": "filterable", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Impacted users" + }, + "properties": [ + { + "id": "links" + }, + { + "id": "custom.width", + "value": 130 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total count" + }, + "properties": [ + { + "id": "links" + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "text", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 8, + "x": 0, + "y": 22 + }, + "id": 87, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Count" + } + ] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let m = dependencies\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| project itemCount, duration, typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0]), name, type, target, user_Id, success, resultCode;\nm\n| summarize [\"Failed count\"]=sumif(itemCount, success == false and (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))), [\"Impacted users\"]=dcountif(user_Id, success == false and (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))), [\"Total count\"]=sum(itemCount)\n| project [\"Dependency name\"]=\"All\", [\"Failed count\"], [\"Impacted users\"], [\"Total count\"]\n| union(\nm\n| summarize [\"Failed count\"]=sumif(itemCount, success == false and (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))), [\"Impacted users\"]=dcountif(user_Id, success == false and (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))), [\"Total count\"]=sum(itemCount) by typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0]), name, target, type\n| where [\"Failed count\"] > 0\n| sort by [\"Failed count\"] desc\n| project [\"Dependency name\"]=strcat(typeTransform, \": \", name , \" \", targetTransform), [\"Failed count\"], [\"Total count\"], [\"Impacted users\"], type, target, name)\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top Dependencies by Avg Duration", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on an OperationID or Dependency name to view the trace details in explorer.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ResponseTime" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Dependency Name" + }, + "properties": [ + { + "id": "custom.width", + "value": 300 + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open dependencies in explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}, {\"property\":\"resultCode\",\"filters\":[${dependency_result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "custom.width", + "value": 211 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "mappings", + "value": [ + { + "options": { + "200": { + "color": "dark-green", + "index": 0 + } + }, + "type": "value" + }, + { + "options": { + "from": 201, + "result": { + "color": "dark-orange", + "index": 1 + }, + "to": 399 + }, + "type": "range" + }, + { + "options": { + "from": 400, + "result": { + "color": "dark-red", + "index": 2 + }, + "to": 999 + }, + "type": "range" + } + ] + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "OperationID" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Trace Details", + "url": "/explore?left={\r\n\t\"datasource\": \"${ds}\",\r\n\t\"queries\": [{\r\n\t\t\"azureTraces\": {\r\n\r\n\t\t\t\"operationId\": \"${__data.fields.OperationID}\",\r\n\r\n\t\t\t\"resources\": [\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\r\r\n\r\n\t\t\t\"resultFormat\": \"trace\"\r\n\r\n\r\n\r\n\r\n\t\t},\r\n\t\t\"datasource\": \"${ds}\",\r\n\t\t\"refId\": \"A\",\r\n\r\n\t\t\"queryType\": \"Azure Traces\"\r\n\t}],\r\n\t\"range\": {\r\n\t\t\"from\": \"${__from}\",\r\n\t\t\"to\": \"${__to}\"\r\n\t}\r\n}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "target" + }, + "properties": [ + { + "id": "custom.width", + "value": 251 + }, + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "name" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Score" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 16, + "x": 8, + "y": 22 + }, + "id": 88, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let min_length_8 = (s: string) {\n let len = strlen(s);\n case(len == 1, strcat(s, s, s, s, s, s, s, s),\n len == 2 or len == 3, strcat(s, s, s, s),\n len == 4 or len == 5 or len == 6 or len == 7, strcat(s, s),\n s)\n};\nlet ai_hash = (s: string) {\n abs(toint(__hash_djb2(min_length_8(s))))\n};\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp) and (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))\n| extend typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(typeTransform, \": \", name, \" \", targetTransform)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency)) and isnotempty(operation_Id)\n| where (\"All\" in ($dependency_result_code) or resultCode in ($dependency_result_code))\n| project [\"Dependency Name\"], target, ResponseCode = resultCode, ResponseTime = duration, OperationID = operation_Id, type, name, Score=ai_hash(operation_Id)\n| top 20 by Score asc\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 Dependencies matching $dependency by Relevance", + "transformations": [], + "type": "table" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": ["Azure-AppInsights-Failures"], + "templating": { + "list": [ + { + "current": {}, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Resource Group", + "multi": false, + "name": "rg", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" + }, + "queryType": "Azure Resource Groups", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 2, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "ns", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "queryType": "Azure Namespaces", + "refId": "A", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", + "hide": 0, + "includeAll": false, + "label": "Resource", + "multi": false, + "name": "res", + "options": [], + "query": "ResourceNames($sub, $rg, $ns)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Dependency", + "multi": true, + "name": "dependency", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "dependencies\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\" and success == false\r\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\r\n| project [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target), success\r\n| summarize count() by [\"Dependency Name\"]\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Result Code", + "multi": true, + "name": "dependency_result_code", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "dependencies\r\n// additional filters can be applied here\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where success == false\r\n| summarize _count=sum(itemCount) by resultCode\r\n| sort by _count desc", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Azure / Insights / Applications - Failures - 2. Dependencies", + "uid": "Azure-AppInsights-Failures-Dependencies", + "version": 48 +} diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureExceptions.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureExceptions.json new file mode 100644 index 00000000000..3c578e5207d --- /dev/null +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureExceptions.json @@ -0,0 +1,1278 @@ +{ + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.0.3" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "The dashboard provides insights of exceptions through Application Insights.", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Failures"], + "targetBlank": true, + "title": "Application Insights Failures Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 97, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "# Failures - Exceptions", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 89, + "panels": [], + "title": "Application Insights - Failures - Exceptions", + "type": "row" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 64, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "semi-dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "failedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "FailedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 13, + "x": 0, + "y": 3 + }, + "id": 91, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "${res} | Users", + "url": "https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${sub}/resourceGroups/${rg}/providers/microsoft.insights/components/${res}/segmentationUsers" + } + ], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "\nexceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where (\"All\" in ($exception_type) or type in ($exception_type))\n| summarize FailedCount=sum(itemCount) by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Exceptions (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.width", + "value": 257 + }, + { + "id": "links", + "value": [ + { + "targetBlank": false, + "title": "Filter by exception type", + "url": "/d/Azure-AppInsights-Failures-Exceptions/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${exception:queryparam}&var-exception_type=${__data.fields.type}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 13, + "w": 11, + "x": 13, + "y": 3 + }, + "id": 90, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nexceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| summarize Count=sum(itemCount) by type\n| top 10 by Count desc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 10 exception types (count)", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 62, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 13, + "x": 0, + "y": 10 + }, + "id": 92, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "${res} | Users", + "url": "https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${sub}/resourceGroups/${rg}/providers/microsoft.insights/components/${res}/segmentationUsers" + } + ], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "requests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n// calculate average request duration for all requests\n| summarize Count = count() by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 16 + }, + "id": 93, + "interval": "60s", + "links": [ + { + "title": "Reset to All Failed exceptions", + "url": "/d/Azure-AppInsights-Failures-Exceptions/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-exception_type=All&var-exception=All" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "exceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| summarize failedCount=sum(itemCount)\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "All Exceptions (Count)", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 16 + }, + "id": 94, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "exceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($exception) or problemId in ($exception))\n| where (\"All\" in ($exception_type) or type in ($exception_type))\n| summarize failedCount=sum(itemCount)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Number of exceptions matching exception type $exception_type and exception $exception", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": true, + "title": "Show list of sample transactions", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"problemId\",\"filters\":[\"${__data.fields.Exception}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"exceptions\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Dependency name" + }, + "properties": [ + { + "id": "custom.width", + "value": 161 + }, + { + "id": "links", + "value": [ + { + "title": "Show list of matching dependencies", + "url": "d/Azure-AppInsights-Failures-Exceptions/?orgId=1&${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${__value.time}&${result_code:queryparam}&var-exception=${__data.fields.Exception}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.hidden", + "value": false + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge", + "valueDisplayMode": "text" + } + }, + { + "id": "links", + "value": [] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "impactedUsers" + }, + "properties": [ + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Exception" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": false, + "title": "Filter dashboards to Exception", + "url": "/d/Azure-AppInsights-Failures-Exceptions/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${exception_type:queryparam}&var-exception=${__data.fields.Exception}" + } + ] + }, + { + "id": "color", + "value": { + "fixedColor": "text", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 8, + "x": 0, + "y": 19 + }, + "id": 95, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Count" + } + ] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let m = exceptions\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($exception_type) or type in ($exception_type))\n| project itemCount, user_Id, problemId;\nm\n| summarize Count=sum(itemCount), impactedUsers=dcount(user_Id)\n| project Exception=\"All\", Count, impactedUsers\n| union(\nm\n| summarize Count=sum(itemCount), impactedUsers=dcount(user_Id) by problemId\n| sort by Count desc\n| project Exception=problemId, Count, impactedUsers)\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top Exceptions by Count", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "The resource path for this panel uses multiple template variables which requires modifying the dashboard JSON directly. If you would like to do something similar please go to Settings > JSON Model. Edit as you'd like in your new copy by going to Settings > Save as.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ResponseTime" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Exception" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open dependencies in explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"problemId\",\"filters\":[\"${__data.fields.Exception}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"exceptions\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "OperationID" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Trace Details", + "url": "/explore?left={\r\n\t\"datasource\": \"${ds}\",\r\n\t\"queries\": [{\r\n\t\t\"azureTraces\": {\r\n\r\n\t\t\t\"operationId\": \"${__data.fields.OperationID}\",\r\n\r\n\t\t\t\"resources\": [\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\r\r\n\r\n\t\t\t\"resultFormat\": \"trace\"\r\n\r\n\r\n\r\n\r\n\t\t},\r\n\t\t\"datasource\": \"${ds}\",\r\n\t\t\"refId\": \"A\",\r\n\r\n\t\t\"queryType\": \"Azure Traces\"\r\n\t}],\r\n\t\"range\": {\r\n\t\t\"from\": \"${__from}\",\r\n\t\t\"to\": \"${__to}\"\r\n\t}\r\n}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Score" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 16, + "x": 8, + "y": 19 + }, + "id": 96, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let min_length_8 = (s: string) {\n let len = strlen(s);\n case(len == 1, strcat(s, s, s, s, s, s, s, s),\n len == 2 or len == 3, strcat(s, s, s, s),\n len == 4 or len == 5 or len == 6 or len == 7, strcat(s, s),\n s)\n};\nlet ai_hash = (s: string) {\n abs(toint(__hash_djb2(min_length_8(s))))\n};\n\nexceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where (\"All\" in ($exception_type) or type in ($exception_type))\n| where (\"All\" in ($exception) or problemId in ($exception))\n| where isnotempty(operation_Id)\n| project Exception=problemId, OperationID=operation_Id, Score=ai_hash(operation_Id)\n| top 20 by Score asc\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 exceptions level matching $exception by Relevance", + "transformations": [], + "type": "table" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": ["Azure-AppInsights-Failures"], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Azure Monitor", + "value": "Azure Monitor" + }, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Resource Group", + "multi": false, + "name": "rg", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" + }, + "queryType": "Azure Resource Groups", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 2, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "ns", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "queryType": "Azure Namespaces", + "refId": "A", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", + "hide": 0, + "includeAll": false, + "label": "Resource", + "multi": false, + "name": "res", + "options": [], + "query": "ResourceNames($sub, $rg, $ns)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Exception Type", + "multi": true, + "name": "exception_type", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "exceptions\r\n| search \"*\"\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| summarize count() by type\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Exception", + "multi": true, + "name": "exception", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "exceptions\r\n| search \"*\"\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where (\"All\" in ($exception_type) or type in ($exception_type))\r\n| summarize count() by problemId\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Azure / Insights / Applications - Failures - 3. Exceptions", + "uid": "Azure-AppInsights-Failures-Exceptions", + "version": 37 +} diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureOperations.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureOperations.json new file mode 100644 index 00000000000..9bcdc18a70a --- /dev/null +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsFailureOperations.json @@ -0,0 +1,1753 @@ +{ + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.0.3" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "The dashboard provides insights of operation failures through Application Insights.", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Failures"], + "targetBlank": true, + "title": "Azure Application Insights Failures", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 87, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "# Failures - Operations", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 68, + "panels": [], + "title": "Application Insights - Failures", + "type": "row" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 64, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "semi-dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "failedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "FailedCount" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 13, + "x": 0, + "y": 3 + }, + "id": 69, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "${res} | Users", + "url": "https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${sub}/resourceGroups/${rg}/providers/microsoft.insights/components/${res}/segmentationUsers" + } + ], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n| summarize FailedCount=sumif(itemCount, success == false) by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Failed Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on a result code to filter this dashboard.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": false, + "title": "Filter Result code", + "url": "/d/Azure-AppInsights-Failures-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${operation_name:queryparam}&var-result_code=${__data.fields[\"Result Code\"]}" + } + ], + "mappings": [], + "min": 0, + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "custom.width", + "value": 584 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Result Code" + }, + "properties": [ + { + "id": "custom.width", + "value": 252 + }, + { + "id": "links", + "value": [ + { + "title": "Filter result code", + "url": "/d/Azure-AppInsights-Failures-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${operation_name:queryparam}&var-result_code=${__data.fields[\"Result Code\"]}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 11, + "x": 13, + "y": 3 + }, + "id": 72, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where success == false\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| summarize Count=sum(itemCount) by [\"Result Code\"]=resultCode\n| top 5 by Count desc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 5 response codes", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on an type to open the exceptions dashboard.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.width", + "value": 257 + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Exceptions Dashboard", + "url": "/d/Azure-AppInsights-Failures-Exceptions?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-exception_type=${__data.fields.type}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 11, + "x": 13, + "y": 9 + }, + "id": 73, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nexceptions\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| summarize Count=sum(itemCount) by type\n| top 5 by Count desc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 5 exception types", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 22, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 1, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "sum_itemCount 404" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sum_itemCount 500" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResultCode 404" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 13, + "x": 0, + "y": 13 + }, + "id": 79, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.0.8.1", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n| where client_Type != \"Browser\"\n| where success == false\n| summarize ResultCode = sum(itemCount) by resultCode, bin(timestamp, $__interval)\n| sort by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Response codes (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.width", + "value": 264 + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Dependencies Dashboard", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 11, + "x": 13, + "y": 16 + }, + "id": 74, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where success == false\n| summarize Count=sum(itemCount) by type\n| top 5 by Count desc\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 5 failed dependencies", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 62, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 13, + "x": 0, + "y": 18 + }, + "id": 70, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n// calculate average request duration for all requests\n| summarize Count = count() by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "links": [ + { + "title": "Reset to All Operations and All Result codes", + "url": "/d/Azure-AppInsights-Failures-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-result_code=All${result_code:queryparam}&var-operation_name=All" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 24 + }, + "id": 78, + "interval": "60s", + "links": [ + { + "title": "Reset to All Operation Names and All Result codes", + "url": "/d/Azure-AppInsights-Failures-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-result_code=All${result_code:queryparam}&var-operation_name=All" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n| where client_Type != \"Browser\"\n| summarize failedCount=sumif(itemCount, success == false)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "All Failed Operations (Count) matching Result code $result_code", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "failedCount" + }, + "properties": [ + { + "id": "links" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 24 + }, + "id": 86, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "requests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n| where client_Type != \"Browser\"\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| summarize failedCount=sumif(itemCount, success == false)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Number of failed transactions matching $operation_name", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "uid": "${ds}", + "type": "grafana-azure-monitor-datasource" + }, + "description": "Click on the Operation name to filter dashboard.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "links": [ + { + "title": "View transactions with Operation name", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields.operation_Name}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ], + "noValue": "--" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Failed count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "View transactions with Operation Name", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields[\"Operation name\"]}\"],\"operation\":\"eq\"}, {\"property\":\"resultCode\",\"filters\":[${result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "lcd", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "text", + "mode": "fixed" + } + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "View transactions with Operation name", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields[\"Operation name\"]}\"],\"operation\":\"eq\"}, {\"property\":\"resultCode\",\"filters\":[${result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Operation name" + }, + "properties": [ + { + "id": "custom.width", + "value": 184 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Impacted users" + }, + "properties": [ + { + "id": "custom.width", + "value": 130 + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Operation name" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Filter dashboard to this failing operation", + "url": "/d/Azure-AppInsights-Failures-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&var-operation_name=${__data.fields[\"Operation name\"]}&${result_code:queryparam}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 13, + "w": 8, + "x": 0, + "y": 27 + }, + "id": 71, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "showHeader": true, + "cellHeight": "sm", + "footer": { + "show": false, + "reducer": ["sum"], + "countRows": false, + "fields": "" + }, + "sortBy": [ + { + "desc": true, + "displayName": "failedCount" + } + ] + }, + "pluginVersion": "10.2.0-pre", + "targets": [ + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "azureLogAnalytics": { + "query": "let dataset =\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\";\ndataset\n| summarize\n [\"Failed count\"]=sumif(itemCount, success == 'False' and (\"All\" in ($result_code) or resultCode in ($result_code))),\n [\"Impacted users\"]=dcountif(user_Id, success == 'False' and (\"All\" in ($result_code) or resultCode in ($result_code))),\n [\"Total count\"]=sum(itemCount)\n| project [\"Operation name\"]=\"All\", [\"Failed count\"], [\"Impacted users\"], [\"Total count\"]\n| union (dataset| summarize\n [\"Failed count\"]=sumif(itemCount, success == 'False' and (\"All\" in ($result_code) or resultCode in ($result_code))),\n [\"Impacted users\"]=dcountif(user_Id, success == 'False' and (\"All\" in ($result_code) or resultCode in ($result_code))),\n [\"Total count\"]=sum(itemCount)\n by [\"Operation name\"]=operation_Name\n| where [\"Failed count\"] > 0\n| top 10 by [\"Failed count\"] desc)\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table", + "dashboardTime": false + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 10 Failed Operation Name List", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on the OperationID or Name to view trace details in explorer.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Response Time" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Name" + }, + "properties": [ + { + "id": "custom.width", + "value": 173 + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open explorer with this name", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields.Name}\"],\"operation\":\"eq\"}, {\"property\":\"resultCode\",\"filters\":[${result_code:doublequote}],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Response Code" + }, + "properties": [ + { + "id": "mappings", + "value": [ + { + "options": { + "200": { + "color": "dark-green", + "index": 0 + } + }, + "type": "value" + }, + { + "options": { + "from": 201, + "result": { + "color": "dark-orange", + "index": 1 + }, + "to": 399 + }, + "type": "range" + }, + { + "options": { + "from": 400, + "result": { + "color": "dark-red", + "index": 2 + }, + "to": 999 + }, + "type": "range" + } + ] + }, + { + "id": "links" + }, + { + "id": "custom.width", + "value": 211 + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "OperationID" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Show Trace Details", + "url": "/explore?left={\r\n\t\"datasource\": \"${ds}\",\r\n\t\"queries\": [{\r\n\t\t\"azureTraces\": {\r\n\r\n\t\t\t\"operationId\": \"${__data.fields.OperationID}\",\r\n\r\n\t\t\t\"resources\": [\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\r\r\n\r\n\t\t\t\"resultFormat\": \"trace\"\r\n\r\n\r\n\r\n\r\n\t\t},\r\n\t\t\"datasource\": \"${ds}\",\r\n\t\t\"refId\": \"A\",\r\n\r\n\t\t\"queryType\": \"Azure Traces\"\r\n\t}],\r\n\t\"range\": {\r\n\t\t\"from\": \"${__from}\",\r\n\t\t\"to\": \"${__to}\"\r\n\t}\r\n}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Score" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 13, + "w": 16, + "x": 8, + "y": 27 + }, + "id": 75, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let min_length_8 = (s: string) {\n let len = strlen(s);\n case(len == 1, strcat(s, s, s, s, s, s, s, s),\n len == 2 or len == 3, strcat(s, s, s, s),\n len == 4 or len == 5 or len == 6 or len == 7, strcat(s, s),\n s)\n};\nlet ai_hash = (s: string) {\n abs(toint(__hash_djb2(min_length_8(s))))\n};\n\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where \"All\" in ($operation_name) or operation_Name in ($operation_name)\n| where \"All\" in ($result_code) or resultCode in ($result_code)\n| where success == 'False'\n| project Name = operation_Name, [\"Response Code\"] = resultCode, [\"Response Time\"] = duration, OperationID = operation_Id, Score=ai_hash(operation_Id)\n| top 20 by Score asc\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 Sample Failed Operations matching $operation_name by relevance", + "transformations": [], + "type": "table" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": ["Azure-AppInsights-Failures"], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Azure Monitor", + "value": "Azure Monitor" + }, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Resource Group", + "multi": false, + "name": "rg", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" + }, + "queryType": "Azure Resource Groups", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 2, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "ns", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "queryType": "Azure Namespaces", + "refId": "A", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", + "hide": 0, + "includeAll": false, + "label": "Resource", + "multi": false, + "name": "res", + "options": [], + "query": "ResourceNames($sub, $rg, $ns)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Result Code", + "multi": true, + "name": "result_code", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "requests\r\n// additional filters can be applied here\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where success == false\r\n| summarize Count=sum(itemCount) by resultCode\r\n| sort by Count desc", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Operation Names", + "multi": true, + "name": "operation_name", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "requests\r\n// additional filters can be applied here\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where \"All\" in ($result_code) or resultCode in ($result_code)\r\n| summarize count=sumif(itemCount, success == false) by operation_Name", + "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Azure / Insights / Applications - Failures - 1. Operations", + "uid": "Azure-AppInsights-Failures-Operations", + "version": 127 +} diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfDependencies.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfDependencies.json new file mode 100644 index 00000000000..bdda13917d5 --- /dev/null +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfDependencies.json @@ -0,0 +1,1828 @@ +{ + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "panel", + "id": "barchart", + "name": "Bar chart", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.0.3" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "heatmap", + "name": "Heatmap", + "version": "" + }, + { + "type": "panel", + "id": "histogram", + "name": "Histogram", + "version": "" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "description": "The dashboard provides insights of Azure Apps via different metrics for app monitoring through Application Insights.", + "editable": true, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Perf"], + "targetBlank": true, + "title": "Azure Application Insights Performance Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 93, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "# Performance Dependencies", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 83, + "panels": [], + "title": "Application Insights - Performance - Dependencies", + "type": "row" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge", + "valueDisplayMode": "text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open on Explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Duration_95th" + }, + "properties": [ + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "AVG_Duration" + }, + "properties": [ + { + "id": "links" + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 82, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nset truncationmaxrecords=10000;set truncationmaxsize=67108864;set truncationmaxrecords=10000;set truncationmaxsize=67108864;\r\ndependencies\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\r\n| summarize Count=sum(itemCount), AVG_Duration=sum(duration * itemCount)/sum(itemCount), Duration_95th=percentile(duration,95) by type\r\n| sort by Count desc\r\n| take 3", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A" + } + ], + "title": "Top 3 Dependencies", + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 64, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "semi-dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "P95" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-yellow", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "MAX" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 13, + "x": 0, + "y": 8 + }, + "id": 80, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average dependency duration for all dependencies\n| summarize AVG = avg(duration), P95 = percentiles(duration, 95), MAX = max(duration) by bin(timestamp, $__interval)\n| project timestamp, AVG = AVG/1000, P95 = P95/1000, MAX = MAX/1000\n| order by timestamp asc\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Dependencies Response Time (sec)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "fillOpacity": 46, + "gradientMode": "scheme", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1 + }, + "displayName": "Request Count", + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 80 + }, + { + "color": "green", + "value": 90 + }, + { + "color": "light-green", + "value": 100 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": ["Request Count"], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 11, + "x": 13, + "y": 8 + }, + "id": 81, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "bucketOffset": 0, + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| extend ResponseTime = duration/1000\n| project timestamp, ResponseTime\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Distribution of Server Dependency Response Time (ms)", + "transformations": [], + "type": "histogram" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 62, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 13, + "x": 0, + "y": 18 + }, + "id": 84, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| summarize Count = count() by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 11, + "x": 13, + "y": 18 + }, + "id": 85, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "calculate": true, + "calculation": {}, + "cellGap": 2, + "cellValues": {}, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Greens", + "steps": 128 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true, + "showLegend": true + }, + "rowsFrame": { + "layout": "auto" + }, + "showValue": "never", + "tooltip": { + "show": true, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "short" + } + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| extend ResponseTime = duration/1000\n| project timestamp, ResponseTime\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Count of Requests by Server Response Time (sec)", + "transformations": [], + "type": "heatmap" + }, + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 27 + }, + "id": 92, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "Click on a bar on the chart below to set the minimum and maximum duration. To reset the zoom, change the Minimum Duration and Maximum duration variables.", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on a bar on the chart below to set the minimum and maximum duration. To reset the zoom, change the Minimum Duration and Maximum duration variables.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": true, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "min": 0 + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Set Minimum Duration (Current: $min_duration}", + "url": "/d/Azure-AppInsights-Perf-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${dependency:queryparam}&${max_duration:queryparam}&var-min_duration=${__data.fields[\"Duration (ms)\"]}" + }, + { + "title": "Set Maximum Duration (Current: $max_duration)", + "url": "/d/Azure-AppInsights-Perf-Dependencies/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${dependency:queryparam}&${min_duration:queryparam}&var-max_duration=${__data.fields[\"Duration (ms)\"]}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Duration (ms)" + }, + "properties": [ + { + "id": "links" + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 91, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": true, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "never", + "stacking": "none", + "tooltip": { + "mode": "multi", + "sort": "none" + }, + "xField": "Duration (ms)", + "xTickLabelRotation": 0, + "xTickLabelSpacing": 100 + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\n// distribution of dependencies by logarithmic duration buckets\nlet numberOfBuckets = 100;\n// filter to a subset of dependencies\n\nlet dataset = dependencies\n| where client_Type != \"Browser\"\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n| extend value=duration\n| project itemCount, value;\n// calculate the maximum duration for all dependencies\nlet maxValue=toscalar(dataset | summarize max(value));\n// calculate the logarithmic base that determines the start of each bucket\n// use the max duration to ensure the scale spans all possible durations in the data set\nlet bucketBase = pow(maxValue, 1/todouble(numberOfBuckets));\n// define a table with an index for each bucket to allow for buckets with 0 dependencies\nlet bucketSlots=range bucketSlot from 0 to numberOfBuckets - 1 step 1;\n// map dependency counts to the correct bucket and apply to the scale by joining with the complete set of buckets\nbucketSlots | join kind=leftouter (dataset\n// any durations under 1ms are rounded up to 1 ms\n// calls with durations under 1ms can be viewed in more detail using the linear scale\n| extend adjustedValue = iff(value<1, 1.0, value)\n// calculate the bucket slot for each dependency by applying logarithmic scale\n| extend bucketSlotRaw = tolong(bin(log(adjustedValue)/log(bucketBase), 1))\n// calculate the dependency count by duration bucket (rounded to whole number)\n| summarize count_=sum(itemCount) by bucketSlot=iff(bucketSlotRaw > numberOfBuckets - 1, numberOfBuckets - 1, bucketSlotRaw)) on bucketSlot\n| order by bucketSlot asc\n// calculate the real duration value for each bucket based on both the index and the bucket base (rounded to whole number)\n| project\n [\"Duration (ms)\"]=floor(pow(bucketBase, bucketSlot), 1),\n counts=iff(isnull(count_), 0, count_)\n| summarize Count=sum(counts) by [\"Duration (ms)\"]\n| where ['Duration (ms)'] >= todouble(minDuration)\n| order by [\"Duration (ms)\"] asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Dependency count by Duration (ms)", + "transformations": [], + "type": "barchart" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "links": [ + { + "title": "", + "url": "/d/Azure-AppInsights-Perf-Dependencies/?orgId=1&${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${__value.time}&${dependency:queryparam}" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 39 + }, + "id": 86, + "interval": "60s", + "links": [ + { + "title": "Reset dependency to 'All'", + "url": "/d/Azure-AppInsights-Perf-Dependencies/?${__all_variables}" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n| where $__timeFilter(timestamp)\n// additional filters can be applied here\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| count\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "$dependency Dependencies (count)", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red" + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open on failures dashboard", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${__all_variables}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 39 + }, + "id": 87, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "Open on failures dashboard", + "url": "/d/Azure-AppInsights-Failures-Dependencies/?${__all_variables}" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n| where success == false\n| count\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Number of failed dependencies matching $dependency", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on a dependency name to filter dashboard.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": true, + "title": "Show list of sample transactions", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "#EAB839", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Avg" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "custom.width", + "value": 164 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Dependency name" + }, + "properties": [ + { + "id": "custom.width", + "value": 161 + }, + { + "id": "links", + "value": [ + { + "title": "Show list of matching dependencies", + "url": "d/Azure-AppInsights-Perf-Dependencies/?orgId=1&${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${__value.time}&${min_duration:queryparam}&${max_duration:queryparam}&var-dependency=${__data.fields[\"Dependency name\"]}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "custom.hidden", + "value": false + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge", + "valueDisplayMode": "text" + } + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open dependencies in explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "target" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "name" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + }, + { + "id": "filterable", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 8, + "x": 0, + "y": 42 + }, + "id": 88, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Count" + } + ] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "set truncationmaxrecords=10000;set truncationmaxsize=67108864; \nlet m = dependencies\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\" \n| project itemCount, duration, typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0]), name, type, target;\nm\n| summarize Count=sum(itemCount), Avg=sum(itemCount * duration) / sum(itemCount)\n| project [\"Dependency name\"]=\"All\", Avg, Count\n| union(\nm\n| summarize Count=sum(itemCount), Avg=sum(itemCount * duration) / sum(itemCount) by typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0]), name, target, type\n| sort by Avg desc\n| project [\"Dependency name\"]=strcat(typeTransform, \": \", name , \" \", targetTransform), Avg, Count, type, target, name)\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top Dependencies by Avg Duration", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on the OperationID or dependency name to open the trace details in explorer", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ResponseTime" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Dependency Name" + }, + "properties": [ + { + "id": "custom.width", + "value": 300 + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open dependencies in explorer", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"type\",\"filters\":[\"${__data.fields.type}\"],\"operation\":\"eq\"}, {\"property\":\"name\",\"filters\":[\"${__data.fields.name}\"],\"operation\":\"eq\"}, {\"property\":\"target\",\"filters\":[\"${__data.fields.target}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"dependencies\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "custom.width", + "value": 211 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "mappings", + "value": [ + { + "options": { + "200": { + "color": "dark-green", + "index": 0 + } + }, + "type": "value" + }, + { + "options": { + "from": 201, + "result": { + "color": "dark-orange", + "index": 1 + }, + "to": 399 + }, + "type": "range" + }, + { + "options": { + "from": 400, + "result": { + "color": "dark-red", + "index": 2 + }, + "to": 999 + }, + "type": "range" + } + ] + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "OperationID" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Trace Details", + "url": "/explore?left={\r\n\t\"datasource\": \"${ds}\",\r\n\t\"queries\": [{\r\n\t\t\"azureTraces\": {\r\n\r\n\t\t\t\"operationId\": \"${__data.fields.OperationID}\",\r\n\r\n\t\t\t\"resources\": [\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\r\r\n\r\n\t\t\t\"resultFormat\": \"trace\"\r\n\r\n\r\n\r\n\r\n\t\t},\r\n\t\t\"datasource\": \"${ds}\",\r\n\t\t\"refId\": \"A\",\r\n\r\n\t\t\"queryType\": \"Azure Traces\"\r\n\t}],\r\n\t\"range\": {\r\n\t\t\"from\": \"${__from}\",\r\n\t\t\"to\": \"${__to}\"\r\n\t}\r\n}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "target" + }, + "properties": [ + { + "id": "custom.width", + "value": 251 + }, + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "type" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "name" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Score" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 16, + "x": 8, + "y": 42 + }, + "id": 89, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nlet min_length_8 = (s: string) {\n let len = strlen(s);\n case(len == 1, strcat(s, s, s, s, s, s, s, s),\n len == 2 or len == 3, strcat(s, s, s, s),\n len == 4 or len == 5 or len == 6 or len == 7, strcat(s, s),\n s)\n};\nlet ai_hash = (s: string) {\n abs(toint(__hash_djb2(min_length_8(s))))\n};\n\ndependencies\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| extend typeTransform=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), targetTransform=tostring(split(target, \" | cid-v1\")[0])\n| extend [\"Dependency Name\"] = strcat(typeTransform, \": \", name, \" \", targetTransform)\n| where (\"All\" in ($dependency) or [\"Dependency Name\"] in ($dependency))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n//| where returncode in ($return_code)\n| project [\"Dependency Name\"], target, ResponseCode = resultCode, ResponseTime = duration, OperationID = operation_Id, Score=ai_hash(operation_Id), type, name\n| top 20 by Score asc\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 Dependencies matching $dependency by Relevance", + "transformations": [], + "type": "table" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": ["Azure-AppInsights-Perf"], + "templating": { + "list": [ + { + "current": {}, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Resource Group", + "multi": false, + "name": "rg", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" + }, + "queryType": "Azure Resource Groups", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 2, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "ns", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "queryType": "Azure Namespaces", + "refId": "A", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", + "hide": 0, + "includeAll": false, + "label": "Resource", + "multi": false, + "name": "res", + "options": [], + "query": "ResourceNames($sub, $rg, $ns)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Dependency", + "multi": true, + "name": "dependency", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "dependencies\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\r\n| project [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target)\r\n| summarize count() by [\"Dependency Name\"]\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Minimum Duration (ms)", + "multi": false, + "name": "min_duration", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "dependencies\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\r\n| project [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target), duration\r\n| where ['Dependency Name'] in ($dependency)\r\n| top 1 by duration asc\r\n| project tostring(duration)\r\n\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Maximum Duration (ms)", + "multi": false, + "name": "max_duration", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "dependencies\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| extend type=iff(tolower(type) == \"http (tracked component)\", \"HTTP\", type), target=tostring(split(target, \" | cid-v1\")[0])\r\n| project [\"Dependency Name\"] = strcat(type, \": \", name, \" \", target), duration\r\n| where ['Dependency Name'] in ($dependency)\r\n| top 1 by duration desc\r\n| project tostring(duration)\r\n\r\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Azure / Insights / Applications - Performance - 2. Dependencies", + "uid": "Azure-AppInsights-Perf-Dependencies", + "version": 50 +} diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfOperations.json b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfOperations.json new file mode 100644 index 00000000000..9ef617525fd --- /dev/null +++ b/public/app/plugins/datasource/azuremonitor/dashboards/appInsightsPerfOperations.json @@ -0,0 +1,1654 @@ +{ + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "panel", + "id": "barchart", + "name": "Bar chart", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.0.3" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "heatmap", + "name": "Heatmap", + "version": "" + }, + { + "type": "panel", + "id": "histogram", + "name": "Histogram", + "version": "" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "description": "The dashboard provides insights of Azure Apps via different metrics for app monitoring through Application Insights.", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": ["Azure-AppInsights-Perf"], + "targetBlank": true, + "title": "Azure Application Insights Performance Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 68, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "# Performance - Operations", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 57, + "panels": [], + "title": "Application Insights - Performance - Operations", + "type": "row" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 64, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "semi-dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "P95" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-yellow", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "MAX" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 13, + "x": 0, + "y": 3 + }, + "id": 55, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "${res} | Users", + "url": "https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${sub}/resourceGroups/${rg}/providers/microsoft.insights/components/${res}/segmentationUsers" + } + ], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nrequests// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| summarize AVG = avg(duration), P95 = percentiles(duration, 95), MAX = max(duration) by bin(timestamp, $__interval)\n| project timestamp, AVG = AVG/1000, P95 = P95/1000, MAX = MAX/1000\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Response Time (sec)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "fillOpacity": 46, + "gradientMode": "scheme", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1 + }, + "displayName": "Request Count", + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 80 + }, + { + "color": "green", + "value": 90 + }, + { + "color": "light-green", + "value": 100 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": ["Request Count"], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 11, + "x": 13, + "y": 3 + }, + "id": 61, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "bucketOffset": 0, + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| extend ResponseTime = duration/1000\n| project timestamp, ResponseTime\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Distribution of Server Response Time (ms)", + "transformations": [], + "type": "histogram" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 62, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "users/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Users (Unique)" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "sessions/count_unique" + }, + "properties": [ + { + "id": "displayName", + "value": "Sessions (Unique)" + }, + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 13, + "x": 0, + "y": 13 + }, + "id": 58, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "${res} | Users", + "url": "https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${sub}/resourceGroups/${rg}/providers/microsoft.insights/components/${res}/segmentationUsers" + } + ], + "maxDataPoints": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| summarize Count = count() by bin(timestamp, $__interval)\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Server Requests (count)", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 11, + "x": 13, + "y": 13 + }, + "id": 62, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "calculate": true, + "calculation": {}, + "cellGap": 2, + "cellValues": {}, + "color": { + "exponent": 0.5, + "fill": "dark-orange", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Greens", + "steps": 128 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true, + "showLegend": true + }, + "rowsFrame": { + "layout": "auto" + }, + "showValue": "never", + "tooltip": { + "show": true, + "yHistogram": false + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "short" + } + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n// calculate average request duration for all requests\n| extend ResponseTime = duration/1000\n| project timestamp, ResponseTime\n| order by timestamp asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Count of Requests by Server Response Time (sec)", + "transformations": [], + "type": "heatmap" + }, + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 69, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "Click on a bar on the chart below to set the minimum and maximum duration. To reset the zoom, change the Minimum Duration and Maximum duration variables.", + "mode": "markdown" + }, + "pluginVersion": "10.0.3", + "transparent": true, + "type": "text" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on a bar on the chart below to set the minimum and maximum duration. To reset the zoom, change the Minimum Duration and Maximum duration variables.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 80 + }, + { + "color": "green", + "value": 90 + }, + { + "color": "light-green", + "value": 100 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Duration (ms)" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Set Min Duration (Current: $min_duration)", + "url": "/d/Azure-AppInsights-Perf-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${operation_name:queryparam}&${max_duration:queryparam}&var-min_duration=${__data.fields[\"Duration (ms)\"]}" + }, + { + "title": "Set Max Duration (Current: $max_duration)", + "url": "/d/Azure-AppInsights-Perf-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${operation_name:queryparam}&${min_duration:queryparam}&var-max_duration=${__data.fields[\"Duration (ms)\"]}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 67, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": true, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "never", + "stacking": "none", + "tooltip": { + "mode": "multi", + "sort": "none" + }, + "xField": "Duration (ms)", + "xTickLabelRotation": 0, + "xTickLabelSpacing": 100 + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\n// distribution of requests by logarithmic duration buckets\nlet timeGrain=5m;\nlet numberOfBuckets = 100;\n// filter to a subset of requests\n\nlet dataset = requests\n | where $__timeFilter(timestamp)\n | where client_Type != \"Browser\"\n // additional filters can be applied here\n | where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n | where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n | extend value=duration\n | project itemCount, value;\n// calculate the maximum duration for all requests\nlet maxValue=toscalar(dataset\n | summarize max(value));\n// calculate the logarithmic base that determines the start of each bucket\n// use the max duration to ensure the scale spans all possible durations in the data set\nlet bucketBase = pow(maxValue, 1 / todouble(numberOfBuckets));\n// define a table with an index for each bucket to allow for buckets with 0 requests\nlet bucketSlots=range bucketSlot from 0 to numberOfBuckets - 1 step 1;\n// map request counts to the correct bucket and apply to the scale by joining with the complete set of buckets\nbucketSlots\n| join kind=leftouter (dataset\n // any durations under 1ms are rounded up to 1 ms\n // calls with durations under 1ms can be viewed in more detail using the linear scale\n | extend adjustedValue = iff(value < 1, 1.0, value)\n // calculate the bucket slot for each request by applying logarithmic scale\n | extend bucketSlotRaw = tolong(bin(log(adjustedValue) / log(bucketBase), 1))\n // calculate the request count by duration bucket (rounded to whole number)\n | summarize count_=sum(itemCount) by bucketSlot=iff(bucketSlotRaw > numberOfBuckets - 1, numberOfBuckets - 1, bucketSlotRaw))\n on bucketSlot\n| order by bucketSlot asc\n// calculate the real duration value for each bucket based on both the index and the bucket base (rounded to whole number)\n| project\n [\"Duration (ms)\"]=floor(pow(bucketBase, bucketSlot), 1),\n counts=iff(isnull(count_), 0, count_)\n| where ['Duration (ms)'] >= $min_duration\n| summarize Count=sum(counts) by [\"Duration (ms)\"]\n| order by [\"Duration (ms)\"] asc\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "time_series" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Request Count by Duration (ms)", + "transformations": [], + "type": "barchart" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 32 + }, + "id": 66, + "interval": "60s", + "links": [ + { + "title": "Reset Operation names to 'All'", + "url": "/d/Azure-AppInsights-Perf-Operations/?${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${min_duration:queryparam}&${max_duration:queryparam}&var-operation-name=All" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "requests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n| count\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "All Operations (count)", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Open Failures Dashboard", + "url": "/d/Azure-AppInsights-Failures-Operations/?${__all_variables}", + "targetBlank": true + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 32 + }, + "id": 65, + "interval": "60s", + "links": [ + { + "targetBlank": true, + "title": "Open Failures dashboard", + "url": "/d/Azure-AppInsights-Failures-Operations/?${__all_variables}" + } + ], + "maxDataPoints": 150, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nrequests\n// additional filters can be applied here\n| where $__timeFilter(timestamp)\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n| where success == false\n| count\n\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Number of failed operations matching $operation_name", + "transformations": [], + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on an operation name to filter this dashboard.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "links": [ + { + "targetBlank": true, + "title": "Show list of sample transactions", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields.operation_Name}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ], + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Avg" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "custom.width", + "value": 164 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Max" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "custom.width", + "value": 111 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "operation_Name" + }, + "properties": [ + { + "id": "custom.width", + "value": 161 + }, + { + "id": "links", + "value": [ + { + "targetBlank": false, + "title": "Filter dashboard to this operation", + "url": "/d/Azure-AppInsights-Perf-Operations?orgId=1&${ds:queryparam}&${sub:queryparam}&${rg:queryparam}&${ns:queryparam}&${res:queryparam}&${min_duration:queryparam}&${max_duration:queryparam}&${__value.time}&var-operation_name=${__data.fields.operation_Name}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Count" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Show list of transactions matching operation name ", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields.operation_Name}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge", + "valueDisplayMode": "text" + } + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 8, + "x": 0, + "y": 35 + }, + "id": 59, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Count" + } + ] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "\nlet dataset = requests\n| where $__timeFilter(timestamp)\n| where client_Type != \"Browser\"\n;\ndataset\n| summarize Avg = avg(duration)/1000, Max = max(duration)/1000, Count = count()\n| project operation_Name=\"All\", Avg, Max, Count\n| union(dataset\n| summarize Avg = avg(duration)/1000, Max = max(duration)/1000, Count = count() by operation_Name\n| top 20 by Avg desc\n)\n\n", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 Operation Names by count", + "transformations": [], + "type": "table" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "Click on the OperationID or Name to open the trace details in explore mode.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "noValue": "--", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 0.5 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ResponseTime" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "basic", + "type": "gauge" + } + }, + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + }, + { + "id": "links" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Name" + }, + "properties": [ + { + "id": "custom.width", + "value": 173 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "custom.width", + "value": 211 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "ResponseCode" + }, + "properties": [ + { + "id": "mappings", + "value": [ + { + "options": { + "200": { + "color": "dark-green", + "index": 0 + } + }, + "type": "value" + }, + { + "options": { + "from": 201, + "result": { + "color": "dark-orange", + "index": 1 + }, + "to": 399 + }, + "type": "range" + }, + { + "options": { + "from": 400, + "result": { + "color": "dark-red", + "index": 2 + }, + "to": 999 + }, + "type": "range" + } + ] + }, + { + "id": "links" + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "OperationID" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open Trace Details", + "url": "/explore?left={\r\n\t\"datasource\": \"${ds}\",\r\n\t\"queries\": [{\r\n\t\t\"azureTraces\": {\r\n\r\n\t\t\t\"operationId\": \"${__data.fields.OperationID}\",\r\n\r\n\t\t\t\"resources\": [\"/subscriptions/${sub}/resourceGroups/${rg}/providers/Microsoft.Insights/components/${res}\"],\r\r\n\r\n\t\t\t\"resultFormat\": \"trace\"\r\n\r\n\r\n\r\n\r\n\t\t},\r\n\t\t\"datasource\": \"${ds}\",\r\n\t\t\"refId\": \"A\",\r\n\r\n\t\t\"queryType\": \"Azure Traces\"\r\n\t}],\r\n\t\"range\": {\r\n\t\t\"from\": \"${__from}\",\r\n\t\t\"to\": \"${__to}\"\r\n\t}\r\n}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Name" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Open explorer with this name", + "url": "/explore?left={\"datasource\":\"${ds:raw}\",\"queries\":[{\"refId\":\"A\",\"datasource\":\"${ds:raw}\",\"queryType\":\"Azure Traces\",\"azureTraces\":{\"resultFormat\":\"table\",\"resources\":[\"/subscriptions/${sub}/resourceGroups/${rg}/providers/${ns}/${res}\"],\"filters\":[{\"property\":\"operation_Name\",\"filters\":[\"${__data.fields.Name}\"],\"operation\":\"eq\"}],\"traceTypes\": [\"requests\"]}}],\"range\":{\"from\": \"${__from}\", \"to\":\"${__to}\" }}" + } + ] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Score" + }, + "properties": [ + { + "id": "custom.hidden", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 16, + "x": 8, + "y": 35 + }, + "id": 63, + "interval": "60s", + "links": [], + "maxDataPoints": 150, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": ["sum"], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "10.0.3", + "targets": [ + { + "azureLogAnalytics": { + "query": "let minDuration = iif(isempty(\"$min_duration\"), \"0\", \"$min_duration\");\nlet maxDuration = iif(isempty(\"$max_duration\"), \"0\", \"$max_duration\");\n\nlet min_length_8 = (s: string) {\n let len = strlen(s);\n case(len == 1, strcat(s, s, s, s, s, s, s, s),\n len == 2 or len == 3, strcat(s, s, s, s),\n len == 4 or len == 5 or len == 6 or len == 7, strcat(s, s),\n s)\n};\nlet ai_hash = (s: string) {\n abs(toint(__hash_djb2(min_length_8(s))))\n};\nrequests\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\n| where $__timeFilter(timestamp)\n| where duration >= todouble(minDuration) and duration <= todouble(maxDuration)\n| project Name = operation_Name, ResponseCode = resultCode, ResponseTime = duration, OperationID = operation_Id, Score=ai_hash(operation_Id)\n| top 20 by Score asc", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"], + "resultFormat": "table" + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub", + "subscriptions": [] + } + ], + "title": "Top 20 Sample Operations matching $operation_name by Relevance", + "transformations": [], + "type": "table" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": ["Azure-AppInsights-Perf"], + "templating": { + "list": [ + { + "current": {}, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "SubscriptionsQuery", + "rawQuery": "Subscriptions()" + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Resource Group", + "multi": false, + "name": "rg", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "ResourceGroupsQuery", + "rawQuery": "ResourceGroups($sub)", + "subscription": "$sub" + }, + "queryType": "Azure Resource Groups", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 2, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "ns", + "options": [], + "query": { + "grafanaTemplateVariableFn": { + "kind": "MetricNamespaceQuery", + "rawQuery": "Namespaces($sub, $rg)", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "queryType": "Azure Namespaces", + "refId": "A", + "resourceGroup": "$rg", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "([mM](icrosoft)\\.[iI](nsights)/(components))", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "ResourceNames($sub, $rg, $ns)", + "hide": 0, + "includeAll": false, + "label": "Resource", + "multi": false, + "name": "res", + "options": [], + "query": "ResourceNames($sub, $rg, $ns)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Operation names", + "multi": true, + "name": "operation_name", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "requests\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| summarize count() by operation_Name\r\n", + "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Minimum Duration (ms)", + "multi": false, + "name": "min_duration", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "requests\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\r\n| top 1 by duration asc\r\n| project tostring(duration)\r\n", + "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "allValue": "\"All\"", + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Maximum Duration (ms)", + "multi": false, + "name": "max_duration", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "requests\r\n| where $__timeFilter(timestamp)\r\n| where client_Type != \"Browser\"\r\n| where (\"All\" in ($operation_name) or operation_Name in ($operation_name))\r\n| top 1 by duration\r\n| project tostring(duration)\r\n", + "resource": "/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res", + "resources": ["/subscriptions/$sub/resourceGroups/$rg/providers/$ns/$res"] + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscription": "$sub" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Azure / Insights / Applications - Performance - 1. Operations", + "uid": "Azure-AppInsights-Perf-Operations", + "version": 68 +} diff --git a/public/app/plugins/datasource/azuremonitor/plugin.json b/public/app/plugins/datasource/azuremonitor/plugin.json index 4cc4a4b7505..e9824fb547b 100644 --- a/public/app/plugins/datasource/azuremonitor/plugin.json +++ b/public/app/plugins/datasource/azuremonitor/plugin.json @@ -15,6 +15,31 @@ "name": "Azure / Insights / Applications", "path": "dashboards/appInsights.json" }, + { + "type": "dashboard", + "name": "Azure / Insights / Applications / Performance / Operations", + "path": "dashboards/appInsightsPerfOperations.json" + }, + { + "type": "dashboard", + "name": "Azure / Insights / Applications / Performance / Dependencies", + "path": "dashboards/appInsightsPerfDependencies.json" + }, + { + "type": "dashboard", + "name": "Azure / Insights / Applications / Failures / Operations", + "path": "dashboards/appInsightsFailureOperations.json" + }, + { + "type": "dashboard", + "name": "Azure / Insights / Applications / Failures / Dependencies", + "path": "dashboards/appInsightsFailureDependencies.json" + }, + { + "type": "dashboard", + "name": "Azure / Insights / Applications / Failures / Exceptions", + "path": "dashboards/appInsightsFailureExceptions.json" + }, { "type": "dashboard", "name": "Azure / Insights / Applications Test Availability Geo Map",