如果在 Google Cloud 中收到相同值超过 1 小时,则会发出警报

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

我在谷歌云中创建了一个函数,每 10 分钟触发一次并向 postgresql 数据库发送查询。它返回一个值。然后我使用 MQL 查询创建了一个警报策略:

fetch cloud_function
| metric 'logging.googleapis.com/user/FUNCTION-NAME'
| align delta(10m)
| group_by [], [value_mean: mean(value.NAME)]
| absent_for (1h)

我感兴趣的是当没有值或值在超过 1 小时的时间内保持不变时收到警报。上面的查询没有发送警报,即使它在超过 12 小时内具有相同的值。也许我的印象是absent_for也说明了价值是相同的。

如何更改我的查询,以便在该值在超过 1 小时的时间内保持不变时能够收到通知?

编辑 2023 年 11 月 10 日 我将查询更改为:

{
    fetch cloud_function
    | metric 'logging.googleapis.com/user/FUNCTION-NAME'
    | group_by [], mean(val())
    | align next_younger(10m)
    ;
    fetch cloud_function
    | metric 'logging.googleapis.com/user/FUNCTION-NAME'
    | group_by [], mean(val())
    | align next_older(10m)
}
| outer_join 0,0
| sub
| condition gt(val(), 0)

但现在我面临的问题是显示的最新值是-800K,这不允许触发条件。当前值后面的值是正确的,仅显示差异(2、5、0 等)。所以现在即使我在图表上得到 0 值,也不会触发警报。

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

我终于找到了解决方案:

fetch cloud_function
| { t_0:
      metric 'logging.googleapis.com/user/FUNCTION-NAME'
      | align delta()
      | group_by 10m, [value_Collector_mean: mean(value.Height)]

  ; t_1:
      metric 'logging.googleapis.com/user/FUNCTION-NAME'
      | align delta()
      | group_by 20m,
          [value_BTC_current_db_max_block_height_mean:
             mean(value.Height)] }
| join
| value t_0 - t_1
| condition eq(val(),0)

我将重新测试条件设置为 30 分钟,以免每次等于 0 时都得到它。希望这对其他人有帮助。

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