基于Stackdriver Logs的指标-对齐期间的总和

Ste*_*t_R 5 google-cloud-platform stackdriver google-cloud-stackdriver

我们有一些stackdriver日志条目,如下所示:

{
  insertId:  "xyz"  
  jsonPayload: {
    countOfApples:  100   
    // other stuff
    }
  // other stuff
}
Run Code Online (Sandbox Code Playgroud)

我们希望能够建立一个基于对数的指标,该指标可以告诉我们过去10分钟(或任何调整期)内看到的苹果总数,但是到目前为止,我一直找不到找到这种方法的方法。尽管阅读了文档。

尝试1:

过滤指定的那些日志条目,countOfApples并创建一个带有标签的“ 计数器”指标countOfApples

完成此操作后,我可以根据高于或低于特定值进行过滤countOfApples。我看不到基于此值进行汇总的方法。所有聚合选项似乎都适用于在对齐期间与过滤器匹配的日志条目数

尝试2:

筛选指定位置的那些日志条目,countOfApples并创建一个“字段名称”设置为的分配指标jsonPayload.CountOfApples

这似乎越来越近了,因为我现在可以在指标浏览器中看到苹果计数,但是我找不到正确的Aligner / Reducers组合来只给我这段时间内的苹果总数?选择Aligner:delta和Reducer:sum会导致错误消息:

此聚合不会为折线图类型产生有效的数据类型。单击此处将aligner转换为sum,reducer转换为99%

是否可以仅监视每个对齐周期中所有这些值的总和?

小智 4

截至 2019 年 5 月 3 日,无法根据日志中存储的值创建计数器指标。将值放入标签中只是将它们公开为字符串,这使您可以过滤但不能根据这些值执行聚合。根据文档,计数器指标对日志条目进行计数,而不是对这些日志条目中的值进行计数。正如您所注意到的,分布指标上没有足够的可用操作来执行您想要的操作。

目前,您最好的选择是根据这些日志值编写自己的自定义指标。您可以通过将日志导出到 Cloud Pub/Sub并编写一些代码来处理来自 Pub/Sub 的日志并发送自定义指标来实现此目的。或者,您可以尝试配置Stackdriver 监控代理以使用插件提取值tail,并将它们作为自定义指标发送

如果您只需要绘制图表并探索这些值(而不是使用它们来发出警报),您可以尝试Cloud Datalab

  • 我遇到了这个完全相同的问题。过去几年是否添加了此功能?拥有这个似乎很合乎逻辑。 (3认同)