首页 > 解决方案 > 来自 Google Cloud Monitoring API 的打印机器类型

问题描述

我正在使用 Node.js 从我的 Google Cloud Compute Engine 实例中检索指标,使用这个

我可以创建具有以下结果的时间序列:

{
    "points": [...],
    "metric": {
        "labels": {
            "instance_name": "instance-1"
        },
        "type": "compute.googleapis.com/instance/cpu/usage_time"
    },
    "resource": {
        "labels": {
            "instance_id": "3123123123123412",
            "zone": "europe-west1-d",
            "project_id": "..."
        },
        "type": "gce_instance"
    },
    "metricKind": "DELTA",
    "valueType": "DOUBLE",
    "metadata": null
},

问题是它不打印机器类型(例如 n1-standard-1)和/或数量 vCPU 等。是否可以将请求更改为所有打印机器类型信息?

标签: javascriptnode.jsgoogle-cloud-platformmonitoringstackdriver

解决方案


Stackdriver 指标响应将取决于任何给定受监控资源上的可用字段。在这种情况下,您的请求将获取资源可用的所有信息:、和。gce_instance project_idinstance_idzone

compute.googleapis.com/instance/cpu/* 指标类型是在管理程序级别而不是在实例内部采用的,因此它缺少更多详细信息。如果您想获取有关实例本身的信息,您可以在您的实例上安装 Stackdriver Monitoring Agent,并将您的指标类型更改为代理 cpu 指标agent.googleapis.com/cpu/*

在这种情况下,除了其他标签之外,更改指标类型和维护usage_time将返回。我相信它看起来像这样:cpu_numbercpu_state

{
    "points": [...],
    "metric": {
        "labels": {
            "instance_name": "[INSTANCE_NAME]"
        },
        "type": "agent.googleapis.com/cpu/usage_time"
    },
    "resource": {
        "labels": {
            "instance_id": "[INSTANCE_ID]",
            "zone": "[ZONE]",
            "project_id": "[PROJECT_ID]",
            "cpu_number": "[CPU_NUMBER]",
            "cpu_state": "[CPU_STATE]"
        },
        "type": "gce_instance"
    },
    "metricKind": "CUMULATIVE",
    "valueType": "INT64",
    "metadata": null
},

安装代理可以让您访问其他几个指标类型、资源及其资源标签。虽然我不相信机器类型是直接可用的,但您应该能够获得其余信息。


推荐阅读