0

我正在尝试获取单个 GCP 计算 vm 实例的总正常运行时间,包括重新启动。我看过多篇文章,而不是一篇使用 MQL 的文章。

例如:在过去 24 小时内,如果实例未运行 1 小时,我希望 mql 查询返回 23 小时

在下面的快照中,该图的代码片段表示最大正常运行时间,但不考虑重新启动。我尝试使用带有 max 的辅助聚合器,但查询仍然没有报告确切的值。

如果您对如何通过 MQL 获取过去 1 天的总正常运行时间信息有任何想法,那将非常有帮助。任何指针都非常感谢。谢谢你。

fetch gce_instance
| metric 'compute.googleapis.com/instance/uptime_total'
| group_by 1d, [value_uptime_total_max: max(value.uptime_total)]
| every 1d

在此处输入图像描述

4

2 回答 2

1

您可以尝试使用该uptime指标:

fetch gce_instance
| metric 'compute.googleapis.com/instance/uptime'
| filter (metric.instance_name == 'instance-1')
| align delta(1d)
| every 1d
| group_by [], [value_uptime_mean: mean(value.uptime)]

所以你会得到一个类似于这个的图表:

在此处输入图像描述

于 2021-04-14T19:27:50.600 回答
0

GCP 计算 VM 指标 instace/uptime , instance/uptime_total 不可靠。而是通过正常运行时间检查跟踪正常运行时间并使用以下 MQL 查询给出历史正常运行时间的准确值。

请将 30d 替换为适当的值 1d , 1h

fetch uptime_url
| metric 'monitoring.googleapis.com/uptime_check/check_passed'
| filter (metric.check_id == 'dev-uptime-test')
| group_by 30d,
    [value_check_passed_fraction_true: fraction_true(value.check_passed)]
| every 30d | mean 
于 2021-04-20T11:32:52.573 回答