Запросить API мониторинга GCP для текущего запроса postgres подключений? - PullRequest
0 голосов
/ 04 августа 2020

Мы видим postgres подключений в консоли GCP, поэтому предполагаем, что их можно запросить через API мониторинга. Консоль дает нам этот запрос MQL:

fetch cloudsql_database
| metric 'cloudsql.googleapis.com/database/postgresql/num_backends'
| filter (resource.database_id == 'my-project-id:my-database-id')
| group_by 1m, [value_num_backends_mean: mean(value.num_backends)]
| every 1m

API мониторинга https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/query

говорит, что параметр query является обязательным, и запрос находится в формат языка запросов мониторинга. Однако, когда я «попробую этот API» и пытаюсь установить запрос на то, что я получил из указанной выше консоли, я получаю сообщение об ошибке «Обнаружен неожиданный символ» для символа |. Как правильно отформатировать запрос, чтобы получить желаемый результат? Я просмотрел документацию Получение данных с помощью timeSeries.query , и в ней не упоминается необходимость экранирования таких символов.

1 Ответ

1 голос
/ 07 августа 2020

Итак, MQL больше предназначен для запросов в обозревателе показателей мониторинга, а API мониторинга использует другой язык для фильтрации. Что-то вроде

resource.type = "the_resource_type"
resource.labels.a_label_for_the_resource_type = "label_value"

И это то, что вы бы использовали для запросов с API вместо MQL.

Exa будет выглядеть примерно так:

metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
    metric.labels.instance_name = "my-instance-name"

https://cloud.google.com/monitoring/api/v3/filters

Вы также можете изучить использование списка временных рядов в качестве другого возможного метода API, так как для этого не требуется MQL.

...