azure - Azure Application Insight 查询以获取成功率
问题描述
对如何在 Azure 仪表板上显示成功率有疑问。如果我有一个表明成功或失败的远程事件 - 这很简单:
customEvents
| where name == "ResponseEvent" and customDimensions.Condition == "test"
| summarize count() by tostring(customDimensions.State) //State could be Success|Failure
| render piechart
但就我而言 - 我有 2 个事件:RequestEvent、SuccessResponseEvent,我想从这两个事件中获得成功率,例如:successRate = 100*successCount/requestCount。
我最终得到了这个加入:
customEvents
| where name == "RequestEvent" and customDimensions.Condition == "test"
| summarize requestCount = count()
| extend joinField = "1"
| join ( customEvents
| where name == "SuccessResponseEvent" and customDimensions.Condition == "test"
| summarize successCount = count()
| extend joinField = "1")
on joinField
| extend successRate = (100 * successCount / requestCount)
//////| extend failureRate = 100 - successRate
| project successRate
| render table
我得到了我需要的值,但我只设法将它显示为表格,而我需要一个饼图。我考虑过添加联合:
let success = view () { print x=toint(80) };
let failure = view () { print x=toint(20) };
union withsource=TableName success, failure
| render piechart
但我没有在我的请求中看到如何做到这一点。
或者使用 let 语句创建变量并尝试计算所有内容并使用 materialize(createRequestRecieved) 连接,但这会导致很多错误,我希望存在一些简单的方法。
问题是:也许有人可以指出我如何实现这一点:计算一个值,也许将其显示为两个值(成功和 100 成功),并以对“渲染饼图”运算符有效的格式排列它们?
第二个问题,不是那么重要:我可以通过一些现有的领域加入他们吗?乳清我正在尝试使用 joinField = tostring(customDimensions.MappingField) 我收到一个错误:确保表达式:customDimensions.MappingField 确实是一个简单的名称
解决方案
如果您要使用饼图,则需要一个字符串图例字段和该图例的每一行的值,因此两个结果的联合应该起作用:
requests
| summarize Success = sumif(itemCount, success == true)
| project Legend = "Success", Value = Success
| union
(requests
| summarize Failed = sumif(itemCount, success == false)
| project Legend = "Failed", Value = Failed )
| render piechart
使用条形图将允许summarize
在一个查询中使用两个子句而无需连接/联合,并且可以提高性能:
requests
| summarize Success = sumif(itemCount, success == true), Failed = sumif(itemCount, success == false)
| project Legend = "Status", Success, Failed
| render barchart
同样,要在同一查询中计算费率:
requests
| summarize Success = sumif(itemCount, success == true), Failed = sumif(itemCount, success == false)
| extend SuccessRate = Success * 1.0 / (Success + Failed)
推荐阅读
- python - 无法在 Python 中使用 __repr__ 打印对象 repr
- typescript - 使用 Typescript 在运行时动态增长对象类型
- google-apps-script - 如何在保持文本样式的同时替换 Google doc 中的单词?
- python-3.x - 如何将同一破折号(情节)应用程序布局的部分调用到网站的各个部分
- python - 当管道 linux 命令时,如何避免管道 python 打印
- .net - 澄清 - 我可以将带有 odp.net 12c 的 .net 应用程序连接到 Oracle 19c 数据库吗?
- javascript - 如何将 mp3 文件从 Java 后端发送到前端并在 Vue.js 前端播放文件
- php - 在结帐重定向到错误的 URL 之前检查并重定向以登录
- python - 如何使用 Tkinter 使用下拉菜单打开文件夹中的文件
- ios - 安装新的 iOS 应用后接收相同的 FCM 令牌