我们有一些看起来像这样的stackdriver日志条目:
{
insertId: "xyz"
jsonPayload: {
countOfApples: 100
// other stuff
}
// other stuff
}
我们希望能够建立一个基于对数的指标,该指标可以告诉我们过去10分钟(或任何调整期)内看到的苹果总数,但到目前为止,我一直无法找到一种方法尽管阅读了文档,还是这样做的。
尝试1:
过滤指定countOfApples
的那些日志条目,并创建一个以countOfApples
为标签的 Counter 指标。
完成此操作后,我可以根据countOfApples
高于或低于某个值来过滤。我看不到基于此值进行聚合的方法。所有聚合选项似乎都适用于在对齐期间与过滤器匹配的日志条目的数量
尝试2:
过滤那些指定了countOfApples
的日志条目,并创建一个 distribution 度量标准,并将“字段名称”设置为jsonPayload.CountOfApples
这似乎越来越近了,因为我现在可以在指标浏览器中看到苹果计数,但是我找不到正确的Aligner / Reducers组合来只给我这段时间内的苹果总数?选择Aligner:delta和Reducer:sum会导致错误消息:
此聚合不会为折线图生成有效的数据类型 类型。单击此处将aligner转换为sum,reducer转换为99th 百分位数
是否可以仅在每个对齐期间监视所有这些值的总和?
答案 0 :(得分:1)
从2019/05/03开始,无法根据日志中存储的值创建计数器。将值放入标签中只会将它们显示为字符串,这使您可以筛选但不能基于这些值执行汇总。根据{{3}},计数器度量标准对日志条目进行计数,而不是对那些日志条目中的值进行计数。您已经注意到,分配指标上没有足够的操作来执行您想要的操作。
目前,最好的选择是根据这些日志值编写自己的自定义指标。您可以通过documentation并编写一些代码来处理来自Pub / Sub和exporting your logs to Cloud Pub/Sub的日志来执行此操作。另外,您可以尝试使用tail
插件和send custom metrics将Stackdriver monitoring agent配置为提取值。
如果您只需要绘制图形并浏览这些值(而不是例如使用它们来发出警报),则可以尝试send them as custom metrics。