我使用存储在 Google Cloud Logs 中的日志根据 HTTP 响应持续时间创建了一个基于日志的指标。我想要一个显示第 50、第 95 和第 99 百分位的堆叠面积的图表。
我已经阅读了有关各种图表的 Google Cloud Monitoring 文档,虽然我可以将任何单一指标显示为百分位数;但我似乎无法同时将所有三个百分位数堆叠呈现。
什么是可以将 3 个百分位数添加到图表中作为 3 个具有不同对齐方式的独立指标,这似乎对常规折线图很有效,但如果我将图表类型更改为堆叠面积,则每个百分位数都会独立于其他百分位数线对其面积进行着色。
sum
如果我选择带有或delta
对齐的“热图”图表并单击 Metrics explorer 中图表上的“隐藏热图”按钮,我也可以让所有三条线显示出来。
这是可视化分布百分位数的一种非常常见的方法,所以我认为它应该是可能的(可以通过编辑查询方向来包含多个百分位数),所以任何帮助都会受到赞赏。
指标详情:
类型:分销
筛选:logName = "projects/lv-server-1/logs/tail-logs" AND jsonPayload.httpRequest:*
单位:秒
字段名称:jsonPayload.duration
标签:
- “状态,整数,jsonPayload.状态”
- 'content_type,STRING,jsonPayload.resp_headers。“内容类型”'
直方图桶:
- 类型:指数
- 铲斗数量:64
- 指数增长因子:2.0
- 线性刻度:.00005
答案1
阅读监控查询语言文档后,我在 stackoverflow 上找到了看似答案的东西。
union_group_by
允许您一次绘制多个时间序列,这样堆叠面积图就可以正常工作。我搜索了使用示例,并找到了这个堆栈溢出帖子该帖子已于最近发布。
本质上,您可以根据延迟数据创建一个百分位数表,然后将其传递给union_group_by
:
fetch global::logging.googleapis.com/user/my_metrics.response_time | { percentile_from 50 | add [p: "50th percentile"] ; percentile_from 90 | add [p: "90th percentile"] ; percentile_from 95 | add [p: "95th percentile"] } | union_group_by [p]
生成的图表堆叠正确,但使用的插值与使用基本编辑器的百分位对齐器时不同。不过,这些值似乎大致正确。