Azure App Insights自定义指标Kusto查询可视化优化求助
修正后的Azure App Insights Kusto查询(解决无数据日期显示及成功/失败拆分统计)
针对你提出的两个问题,这里给出修正后的Kusto查询,既能展示指定日期范围内的所有日期(包括无数据的日期),又能分别统计支付成功(1)和失败(0)的次数:
// 生成指定范围的连续日期序列,示例为过去30天,可按需调整时间范围 let date_range = range date from ago(30d) to now() step 1d | project date = format_datetime(date, 'yyyy-MM-dd'); // 提取支付相关指标,按日期和结果值分组统计次数 let payment_data = customMetrics | where name startswith "PaymentSuccess" | extend result = tolong(value) // 将指标值转为整型,确保0/1判断准确 | where result in (0, 1) // 过滤无效值,仅保留成功/失败标记 | summarize count = count() by date = format_datetime(timestamp, 'yyyy-MM-dd'), result; // 左连接连续日期与统计数据,填充无数据日期的0值 date_range | left join payment_data on date | extend result = coalesce(result, -1), // 用-1标记无数据的日期 count = coalesce(count, 0) // 转换为列展示成功/失败次数,适配柱状图需求 | evaluate pivot(result, sum(count), date) | project date, 支付失败 = coalesce(`0`, 0), 支付成功 = coalesce(`1`, 0) | order by date desc | render columnchart
关键逻辑说明:
- 连续日期生成:通过
range函数生成完整的日期序列,解决无数据日期不显示的问题 - 结果拆分统计:提取指标的
value字段作为成功/失败标记,按日期和标记分组统计次数 - 空值填充:左连接后用
coalesce将空统计值替换为0,保证每个日期都有完整的成功/失败数据 - 格式转换:用
pivot将行式统计转为列式,让柱状图可以同时展示两类数据
内容的提问来源于stack exchange,提问作者vmachacek
相关产品推荐
相关产品推荐

