问题描述
我们的网站在 Google App Engine 上运行,我们已经设置了监控和正常运行时间警报。
我们希望能够将站点正常运行时间报告为百分比,如果可以从 6 个位置中的任何一个访问站点,则考虑该站点:
- 如果位置 A 无法访问该站点,但位置 B、C、D、E 和 F 可以。该网站已启动。
- 如果位置 A、B、C、D 和 E 无法访问该站点,但位置 F 可以。该网站已启动。
- 如果位置 A、B、C、D、E 和 F 无法访问该站点。该网站已关闭。
目前百分比计算是:(1 - 失败检查的总数)/(检查的总数)。不幸的是,这意味着正常运行时间会受到无法访问该站点的单个位置的影响。
是否可以获得我们所追求的正常运行时间计算?
解决方法
您可以为此创建一个 uptime chart。
如果您按应用对数据进行分组,并将聚合器设置为 fraction true
,则仅当所有正常运行时间检查失败时,图形才会达到零。
查询看起来像这样(这是针对 VM 实例的):
fetch gce_instance
| metric 'monitoring.googleapis.com/uptime_check/check_passed'
| filter (metric.check_id == 'uptime-1')
| group_by 1m,[value_check_passed_count_true: count_true(value.check_passed)]
| every 1m