Stackdriver Monitoring警报:我可以使用函数代替常量作为条件阈值吗?

问题描述 投票:0回答:1

我正在使用Stackdriver Monitoring警报,并且使用了Prometheus / Alertmanager有点儿失望,因为我似乎缺乏选择。

例如,我有一个每天发射一个数据点的资源,即某个资源的寿命的纪元秒。我想创建一个警报,将数据点与当前时间进行比较,如果资源太旧,则应触发警报。

在普罗米修斯,它会这样表达:

- alert: TooOldAlert
  expr: sum(time() - datapoint_epoch_second) BY (datapoint_group) > 48 * 60 * 60
  for: 1m
  labels:
    severity: critical

因此,如果数据点的使用期限已超过48小时,则会收到警报。

似乎在Stackdriver Monitoring警报中似乎不存在这样的选项。我也尝试检查API /编程接口,但我也很简短。

TL; DR:Stackdriver Monitoring警报中是否完全存在内置功能?

google-cloud-platform stackdriver
1个回答
0
投票

Stackdriver Alerting does具有内置功能。但是它们与汇总,过滤,比较和创建比率有关。请参阅文档以获取警报策略here。设置它们的示例是here

但是,在这些表达式中没有time()函数可用于获取历元时间。这是擦。

为了将您的年龄警报移植到Stackdriver中,一种方法是更改​​日志“上游”,以便您的服务针对其相对于“现在”的年龄发出日志。在这种情况下,您可以过滤年龄,而无需调用现在的时间。

如果无法更改服务中的日志结构,则可以选择捕获“下游”日志并对其进行转换。一种方法是将该Stackdriver日志下沉到Pub / Sub,并让该事件触发Cloud Function。示例指南为here

© www.soinside.com 2019 - 2024. All rights reserved.