Google Cloud在Python中获取指标

pgpifvop  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(53)

你好,我是新来的谷歌云,
我想获取一个示例或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'


如果你能帮忙,

moiiocjp

moiiocjp1#

在request中,对于python,name应该采用以下格式:
“name”:f“项目/{project_id}”

相关问题