Устранение ошибки DEADLINE_EXCEEDED
Статья создана
Обновлена 1 октября 2024 г.
Описание проблемы
При попытке выполнить curl-запрос следующего вида:
curl "https://monitoring.api.cloud.yandex.net/monitoring/v2/prometheusMetrics/?folderId=folder_id&service=managed-kubernetes" -H "Authorization: Bearer ${IAM_TOKEN}" -H "Content-Type: application/json" -i
возникает сообщение об ошибке:
{"code":504,"message":"Metabase: [cloud-prod-sas] Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 0.807915461s, ... cause=null}"}
Решение
Причина такой ошибки заключается в большом количестве метрик, из-за чего запрос не успевает отработать. Рекомендуем выгружать метрики, используя селекторы, чтобы снизить объем данных:
scrape_configs:
- job_name: 'yc-monitoring-export'
metrics_path: '/monitoring/v2/prometheusMetrics'
params:
folderId:
- 'b1gXXXXXXXXXXXXXXXXX'
service:
- 'managed-kubernetes'
selectors:
- 'namespace=...'
bearer_token: ...
Примечание
Сам параметр selectors
для метрик подов можно фильтровать по пространству имен или маске имени пода, например pod=part-of-name*
. Подробнее пишем в документации языка запросов.