Python API を使用して Google Stackdriver にデータを送信する方法については、このgoogle-cloud-monitoring チュートリアルに従っています。チュートリアルの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 チュートリアルに関するこのコード内コメントに基づいて、これが一般的な問題のように見えることがわかりました。