使用基于日志的指标和正则表达式创建分布指标

Create Distribution Metric with Logs-Based Metrics and Regex

我正在尝试创建从某些日志的字符串中提取的指标。

我正在创建一个新的分发日志指标。我正在应用过滤器来获取正确的日志。过滤器正在运行,我可以预览它。

然后我正在为我的指标输入字段名称。这里没有问题,因为我可以在建议值中找到它。

现在该字段向我返回一个带有一些查询参数的字符串。我想将这些查询参数之一的值转换为度量。为此,我添加了一个正则表达式。

我的字符串如下所示:https://blabla.com/Name=Foo&Value=123&Version=14 这是我的正则表达式 Version=([^&]*)

按照建议,我尝试了以下正则表达式 Version=([0-9]+)。输出是一样的。

但该指标不起作用。打开 Metrics Explorer 时出现以下消息:

Only numeric metric data can be drawn as a line chart. the data provided cannot be drawn

我在这里遗漏了什么吗?

#edit1

我尝试了一些更简单的方法。我有一个只返回值的字段。例如 "348" 如果我正在查看日志。我尝试使用以下正则表达式 ([0-9.]+) 基于此字段构建分布指标,但我遇到了同样的问题。输出似乎没有被读取为数字数据。

#edit2

添加一些插图

带有requestSize字段的日志

使用正则表达式设置基于日志的指标

和输出

如@c69 所述,您可以使用热图绘制具有分布值的指标。热图使用颜色来表示分布中的值。使用 heatmaps,您可以在百分位线上划线,并且可以将这些图表配置为仅显示离群值。

如果要使用折线图,必须将直方图转换成数值。执行此转换的一种方法是绘制分布的特定百分位数。

计算分布指标的百分位数,算法取决于桶计数、桶宽度和直方图的形状:

  • 第 50、95 和 99 个百分位值始终不同。 但是,它们可能会在相同的范围内显示不同的百分位数 桶.

  • 百分位数不是根据测量结果生成的,因为这些值不可用。

  • 桶的宽度决定了计算的百分位数与测量值之间的最大误差。

  • 直方图中的样本数很重要。例如,如果此数字小于 20,则第 95 和第 99 个百分位数始终在同一个桶中。

  • 对于任何分布指标,您可以使用云监控API来 确定用于该指标的桶模型。由于此模型带有时间戳,因此服务可以更改存储桶模型。

有关 charting distribution metrics 的更多信息,请参阅 link。