google-cloud-platformgoogle-cloud-monitoringmonitoring-query-language

How to get uptime total and percentage of GCP compute vm instance through MQL?


I am trying to get total uptime of a single GCP compute vm instance inclusive of restarts. I've seen multiple posts not one with using MQL.

Eg: In the past 24 hours if instance is not running for 1hr , i expect the mql query to return 23 hrs

In the below snap, code snippet the graph reqpresents the max uptime but doesn't consider the restarts . I've tried using secondary aggregator with max but still query doesn't report the exact value.

If you have any idea on how to get information of total uptime in the past 1 day through MQL that would be very helpful. Any pointers are much appreciated. Thank you.

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

enter image description here


Solution

  • Using sliding in the group_by and sum aggregator for the calculation.

    fetch gce_instance
    | metric 'compute.googleapis.com/instance/uptime_total'
    | filter (metric.instance_name = "the instance name you need")
    | group_by [], sliding(1d), [value_uptime_total_sum: sum(value.uptime_total)]