如何从AWS Log Group提取指标并在AWS Dashboard图表组件中可视化
提取AWS日志组中的successes和successes_after_retry并生成Dashboard图表
步骤1:创建CloudWatch Metric Filter
针对你的日志格式,先创建能匹配目标日志并提取数值的Metric Filter:
- 过滤模式(筛选包含
Delivery Metrics的日志事件,同时定位到metrics下的两个目标字段):
这个模式会精准命中所有包含投递指标的日志,同时确保{ $.message = "Delivery Metrics" && $.metrics.successes = * && $.metrics.successes_after_retry = * }successes和successes_after_retry字段存在且有数值。
步骤2:配置指标转换(Metric Transformations)
创建Filter时需添加两个指标转换规则,分别提取两个字段的数值:
- 提取successes数值:
- 命名空间:自定义统一命名空间,比如
DeliveryMetrics - 指标名称:
TotalSuccesses - 值:
$.metrics.successes - 默认值:
0(处理字段缺失的异常情况)
- 命名空间:自定义统一命名空间,比如
- 提取successes_after_retry数值:
- 命名空间:同样用
DeliveryMetrics(保持一致方便后续聚合) - 指标名称:
TotalSuccessesAfterRetry - 值:
$.metrics.successes_after_retry - 默认值:
0
- 命名空间:同样用
步骤3:在CloudWatch Dashboard创建图表
- 进入CloudWatch Dashboard,添加新图表组件(推荐折线图或柱状图)
- 在指标选择器中,找到
DeliveryMetrics命名空间下的两个指标 - 对每个指标设置统计方式为
Sum,周期按需选择(比如1分钟、5分钟) - 若需展示两个指标的总和,可在图表中添加Math表达式:
其中SUM([m1, m2])m1对应TotalSuccesses,m2对应TotalSuccessesAfterRetry,即可直接展示两者的累加值。
注意事项
- 确保日志字段名和过滤模式里的完全一致(比如
successes_after_retry的下划线不要写错) - 若日志中使用中文引号,需同步调整过滤模式里的引号格式(你的示例日志中
message用英文单引号,保持现有模式即可)
内容的提问来源于stack exchange,提问作者sage poudel
相关产品推荐
相关产品推荐

