谷歌云在Python中获取指标

问题描述 投票:0回答:1

您好,我是谷歌云的新手,

我想获取网络接收和发送的实例或CPU使用率的值,Python中最新的值,就像这样

cpu-usage

networking

阅读文档后我似乎无法弄清楚。

这是我尝试过的一些代码的示例

from google.cloud import monitoring_v3
from google.oauth2 import service_account
import datetime

# Configurar as credenciais
credentials = service_account.Credentials.from_service_account_file(
    's.json'
)

# Configurar a consulta
client = monitoring_v3.MetricServiceClient(credentials=credentials)
project_id = '00000000000'
start_time = datetime.datetime.utcnow() - datetime.timedelta(minutes=60)
end_time = datetime.datetime.utcnow()

query = (
    f'fetch '
    f'compute.googleapis.com/instance/network/sent_bytes_count, '
    f'compute.googleapis.com/instance/network/received_bytes_count '
    f'where '
    f'resource.type = "gce_instance" and '
    f'resource.label.instance_name = "your-instance-name" '
    f'and metric.type = "compute.googleapis.com/instance/network/sent_bytes_count" '
    f'or metric.type = "compute.googleapis.com/instance/network/received_bytes_count" '
    f'and timestamp >= "{start_time.isoformat()}Z" and timestamp <= "{end_time.isoformat()}Z" '
    f'order by value desc '
    f'limit 5 '
    f'align_rate()'
)

# Executar a consulta
results = client.list_time_series(
    request={
        "name": client.project_path(project_id),
        "filter": query,
        "interval_start_time": start_time,
        "interval_end_time": end_time,
        "view": monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
    }
)

# Imprimir os resultados
for result in results:
    print(f"{result.metric.labels['instance_name']}:")
    for point in result.points:
        value = point.value.double_value
        if 'sent' in result.metric.type:
            print(f"    Bytes enviados: {value}")
        else:
            print(f"    Bytes recebidos: {value}")

错误

     35 query = (
     36     f'fetch '
     37     f'compute.googleapis.com/instance/network/sent_bytes_count, '
   (...)
     47     f'align_rate()'
     48 )
     50 # Executar a consulta
     51 results = client.list_time_series(
     52     request={
---> 53         "name": client.project_path(project_id),
     54         "filter": query,
     55         "interval_start_time": start_time,
     56         "interval_end_time": end_time,
     57         "view": monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
     58     }
     59 )
     61 # Imprimir os resultados
     62 for result in results:

AttributeError: 'MetricServiceClient' object has no attribute 'project_path'

帮助将不胜感激

python-3.x google-app-engine google-cloud-platform
1个回答
0
投票

根据要求,名称应采用以下格式:

“名称”:f“项目/{project_id}”

© www.soinside.com 2019 - 2024. All rights reserved.