AWS CloudWatch Logs 指标破碎图

len*_*len 6 amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs amazon-cloudwatch-metrics

我们为 CloudWatch 日志组配置了指标过滤器,该组为我们的某个流程收集数据。

最初,我们只有一个与日志组的日志流关联的 ec2 实例。从日志中检索到的数据很好地显示在图表中。

但是,我们希望有多个实例连接到同一日志流或日志组。当我们为日志组配置另一个实例时,图表变得损坏:

断图

根据我们的观察,看起来只有当这些点是从最新实例派生的连续数据时,这些点才会连接。否则,它只是表明了一个观点。

显示的所有数据仍然正确。只是它们并没有全部连接起来。有没有办法让所有点都连接起来?

Wil*_*ill 6

这可能是最近添加的功能,但实际上有一种方法可以强制 CloudWatch 图中不连续数据点之间的连接:您可以使用metric math。有一个“FILL”表达式可以填充时间序列中的空白。

您可以使用“编辑图表”UI 中的“数学表达式”按钮添加指标数学表达式:

云观察_差距

红线代表一些间歇性数据点,“FILL”表达式为您提供了如何填充间隙的三个选项:

  • 标量将用常量值填充间隙(蓝线,间隙设置为 0)。

  • LINEAR将在间隙(橙色线)两侧的两点之间执行线性插值。

  • REPEAT将重复最后接收到的数据点,直到新的数据点到达(绿线)。

一旦您对间隙填充行为感到满意,您可以取消选中表中原始指标的行,以在显示图表时将其隐藏。


Unk*_*nts 3

这就是 CloudWatch 图表传达数据点不连续这一事实的方式。无法强制数据点之间的连接。

-- 更新于 2022 年 5 月 31 日 --

上面仍然是正确答案。无法仅用一条线将数据点之间存在间隙连接起来。如果该行中有间隙,则意味着该时间戳的数据不存在。如果您使用图表测量的事件从未发生或者发布指标时出现问题,则可能会发生这种情况。这两种情况都是有效的。

但是,CloudWatch 在 2018 年 4 月推出了指标数学功能,指标数学支持的功能之一是(有关如何使用它的信息,请参阅FILL答案的下面的答案)。

FILL 不仅仅是连接线条以使图表变得漂亮。它实际上会插入缺失值并将它们插入到图表中(仅图表,而不是实际的数据存储)。这隐藏了上述丢失数据的情况。这可能没问题,但也可能导致问题和不可预测的行为,具体取决于用例。我建议仔细使用 FILL 函数,并始终在图表上(在标题或图例中)清楚地表明图表中使用了 FILL。