Как получить метрику https/backend_request_count балансировщика нагрузки в GCP с помощью python?

# #python #google-cloud-platform #google-cloud-networking

Вопрос:

Я хочу получить метрику https/backend_request_count.

https://cloud.google.com/monitoring/api/metrics_gcp?hl=ja#loadbalancing/https/backend_request_count

Возможно ли это получить с помощью python?

Ответ №1:

Да, это возможно. Я проследил за этим документом метрики чтения и отфильтровал его с помощью backend_request_count.

То, что я сделал, чтобы получить фильтр, — это последовал за backend_request_count облачных метрик Google и создал фильтр.

Строки «тип метрики» в этой таблице должны иметь префикс loadbalancing.googleapis.com/. Этот префикс был опущен из записей в таблице.

Следуя приведенным выше инструкциям, фильтр будет выглядеть следующим образом:

 metric.type = "loadbalancing.googleapis.com/https/backend_request_count"
 

Применяя этот фильтр в коде, код будет выглядеть следующим образом:

 from google.cloud import monitoring_v3
import time

client = monitoring_v3.MetricServiceClient()
## Don't forget to replace this dummy project_id with your actual project_id ##
project_name = f"projects/your-project-id-here" 
interval = monitoring_v3.TimeInterval()

now = time.time()
seconds = int(now)
nanos = int((now - seconds) * 10 ** 9)
interval = monitoring_v3.TimeInterval(
    {
        "end_time": {"seconds": seconds, "nanos": nanos},
        "start_time": {"seconds": (seconds - 1200), "nanos": nanos},
    }
)

results = client.list_time_series(
    request={
        "name": project_name,
        "filter": 'metric.type = "loadbalancing.googleapis.com/https/backend_request_count"', 
        "interval": interval,
        "view": monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
    }
)
for result in results:
    print(result)
 

Это приведет к ответу Listtimeseries, вот фрагмент ответа приведенного выше кода.

введите описание изображения здесь