在 Google Cloud Monitoring 中创建堆叠面积分布百分位数图

在 Google Cloud Monitoring 中创建堆叠面积分布百分位数图

我使用存储在 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]

生成的图表堆叠正确,但使用的插值与使用基本编辑器的百分位对齐器时不同。不过,这些值似乎大致正确。

相关内容