我正在遵循此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分钟,以确保由于延迟而没有显示) )。
似乎在注册资源时遇到了一些问题。根据Google Stackdriver的python教程中的this in-code comment,我进行了一些调查,发现这似乎是一个常见问题。
答案 0 :(得分:0)
结果表明,要正确配置堆栈驱动程序,您需要指定resource ID
。经过调查后,资源ID是运行Google App Engine的实例ID。
series.resource.labels['instance_id'] = '1234567890123456789'
您可以在GCP控制台GAE-> INSTANCE中找到它。 解决这个问题解决了我的问题。