9

我想使用 cloudwatch 洞察力来可视化主机随时间变化的平均延迟的多线图。每个主机一行。

此统计查询提取延迟并按主机将其聚合到 10 分钟的存储桶中,但它不会生成任何可视化。

stats avg(latencyMS) by bin(10m), host

bin(10m) | host | avg(latencyMS)
0m       |    1 |           120
0m       |    2 |           220
10m      |    1 |           130
10m      |    2 |           230

文档将此称为常见错误,但未提供任何替代方法。

以下查询不会生成可视化,因为它包含多个分组字段。

stats avg(myfield1) by bin(5m), myfield4

aws 文档

实验上,如果每条记录有多个键,cloudwatch 将生成一个多线图。将生成折线图的查询必须返回如下结果:

bin(10m) | host-1 avg(latencyMS) | host-2 avg(latencyMS)
0m       |    120                |                   220
10m      |    130                |                   230

我不知道如何编写一个可以输出的查询。

4

1 回答 1

9

解析每个主机的单个消息,然后计算它们的统计信息。

例如,要获得来自PID=11PID=13的进程的响应的平均延迟。

parse @message /\[PID:11\].* duration=(?<pid_11_latency>\S+)/
| parse @message /\[PID:13\].* duration=(?<pid_13_latency>\S+)/
| display @timestamp, pid_11_latency, pid_13_latency
| stats avg(pid_11_latency), avg(pid_13_latency) by bin(10m)
| sort @timestamp desc
| limit 20

11正则表达式分别提取具有 id和13to 参数的进程的持续时间,pid_11_latency并按pid_13_latency顺序填充null没有匹配的地方。

您可以通过创建匹配正则表达式来构建此示例,该表达式从您关心的主机的消息中提取指标。

于 2020-03-05T08:09:26.273 回答