google-cloud-monitoring python-API:没有资源的指标(选择没有资源的指标可能会对性能产生影响。)

时间:2019-06-17 08:49:16

标签: google-cloud-platform stackdriver google-cloud-stackdriver google-cloud-monitoring

我正在遵循此google-cloud-monitoring tutorial,以了解如何使用Python API将数据发送到Google Stackdriver。我只是复制粘贴了python片段教程

from google.cloud import monitoring_v3

import time

client = monitoring_v3.MetricServiceClient()
project = 'todag-239819'  
project_name = client.project_path(project)

series = monitoring_v3.types.TimeSeries()
series.metric.type = 'custom.googleapis.com/my_metric'
series.resource.type = 'gce_instance'
series.resource.labels['instance_id'] = '1234567890123456789'
series.resource.labels['zone'] = 'us-central1-f'
point = series.points.add()
point.value.double_value = 3.14
now = time.time()
point.interval.end_time.seconds = int(now)
point.interval.end_time.nanos = int(
    (now - point.interval.end_time.seconds) * 10**9)
client.create_time_series(project_name, [series])
print('Successfully wrote time series.')

我能够在本地成功执行python代码段

$ python stackdriver/example.py
Successfully wrote time series.

在Stackdriver上,我没有看到有关自定义指标的数据,并且收到以下警告Selecting a metric without a resource may have performance implications.(我等待了30分钟,以确保由于延迟而没有显示) )。

enter image description here

似乎在注册资源时遇到了一些问题。根据Google Stackdriver的python教程中的this in-code comment,我进行了一些调查,发现这似乎是一个常见问题。

1 个答案:

答案 0 :(得分:0)

结果表明,要正确配置堆栈驱动程序,您需要指定resource ID。经过调查后,资源ID是运行Google App Engine的实例ID。

series.resource.labels['instance_id'] = '1234567890123456789'

您可以在GCP控制台GAE-> INSTANCE中找到它。 解决这个问题解决了我的问题。