prometheus

30 commands

30 shown

Запрос к Prometheus через curl Разовый PromQL запрос из командной строки curl -sG 'http://prometheus:9090/api/v1/query' --data-urlencode 'query=up' | jq . #prometheus#monitoring Instant query через promtool Выполнить instant PromQL запрос через promtool promtool query instant http://prometheus:9090 'up{job="kubelet"}' #prometheus#monitoring#debug Range query через curl Запросить Prometheus за диапазон времени через HTTP API curl -sG 'http://prometheus:9090/api/v1/query_range' --data-urlencode 'query=rate(http_requests_total[5m])' --data-urlencode 'start=2024-01-01T00:00:00Z' --data-urlencode 'end=2024-01-01T01:00:00Z' --data-urlencode 'step=60s' | jq . #prometheus#monitoring Проверить правила алертов Проверить синтаксис файлов правил алертов/записи promtool check rules rules.yml #prometheus#monitoring Заглушить алерт Создать silence для подавления оповещений при обслуживании amtool silence add --alertmanager.url=http://alertmanager:9093 alertname=<name> --duration=2h --comment='Maintenance' #alertmanager#monitoring Список silences Все активные silences в Alertmanager amtool silence query --alertmanager.url=http://alertmanager:9093 #alertmanager#monitoring Завершить silence Немедленно завершить активный silence amtool silence expire <id> --alertmanager.url=http://alertmanager:9093 #alertmanager#monitoring Проверить конфиг Alertmanager Проверить корректность конфигурации Alertmanager amtool check-config alertmanager.yml #alertmanager#monitoring Активные алерты Все срабатывающие алерты в Alertmanager amtool alert query --alertmanager.url=http://alertmanager:9093 #alertmanager#monitoring Перезагрузить конфиг Prometheus Горячая перезагрузка конфигурации без перезапуска curl -X POST http://prometheus:9090/-/reload #prometheus#monitoring Мгновенный запрос вектора Выполнить мгновенный PromQL-запрос через HTTP API curl -sG 'http://prometheus:9090/api/v1/query' --data-urlencode 'query=up' | jq '.data.result' #prometheus#monitoring Range-запрос для графика Получить данные временного ряда для метрики rate за диапазон curl -sG 'http://prometheus:9090/api/v1/query_range' --data-urlencode 'query=rate(http_requests_total[5m])' --data-urlencode 'start=1h' --data-urlencode 'end=now' --data-urlencode 'step=60' #prometheus#monitoring Топ N серий по значению PromQL: топ 10 подов по скорости использования CPU topk(10, sum by (pod) (rate(container_cpu_usage_seconds_total[5m]))) #prometheus#monitoring Правило алерта на диск PromQL: алерт когда / диск занят более чем на 85% 100 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100) > 85 #prometheus#monitoring Перезагрузить конфиг Prometheus Горячая перезагрузка конфига и правил без перезапуска curl -X POST http://prometheus:9090/-/reload #prometheus Активные алерты Показать только активные алерты с именем и важностью curl -s http://prometheus:9090/api/v1/alerts | jq '.data.alerts[] | select(.state=="firing") | {name: .labels.alertname, severity: .labels.severity}' #prometheus#monitoring Список всех метрик Подсчитать метрики и показать первые 20 curl -s http://prometheus:9090/api/v1/label/__name__/values | jq '.data | length, .[0:20]' #prometheus#debug Мощность серий по job PromQL: подсчитать активные серии сгруппированные по job count by (job) ({__name__=~".+"}) #prometheus#monitoring Заглушить алерт Создать тишину в Alertmanager на 2 часа amtool silence add alertname=HighMemory --duration=2h --comment='Investigating' #prometheus#monitoring Статус TSDB Просмотр TSDB head: чанки и активные серии curl -s http://prometheus:9090/api/v1/status/tsdb | jq '{head_chunks: .data.headStats.numChunks, series: .data.headStats.numSeries}' #prometheus#monitoring 95-й перцентиль задержки из гистограммы p95 задержки по job; note: всегда агрегируйте _bucket по le перед histogram_quantile histogram_quantile(0.95, sum by(le,job)(rate(http_request_duration_seconds_bucket[5m]))) #prometheus#performance#observability#monitoring Прогноз заполнения диска алерт, когда линейный тренд за 6ч прогнозирует заполнение диска в ближайшие 4ч predict_linear(node_filesystem_avail_bytes{mountpoint="/"}[6h], 4*3600) < 0 #prometheus#disk#monitoring#troubleshooting Обнаружение пропавшей цели через absent срабатывает, когда нет ни одной серии; ловит job, полностью исчезнувший из discovery absent(up{job="node"} == 1) #prometheus#monitoring#troubleshooting#observability Переписать метку через label_replace извлечь/создать новую метку через regex-группу; полезно для join и аккуратных дашбордов label_replace(node_uname_info, "host", "$1", "nodename", "(.+)") #prometheus#observability#monitoring Максимум посекундного rate за окно подзапрос: пиковый 5m rate с шагом 1 минута за последний час; выявляет всплески max_over_time(rate(node_network_receive_bytes_total[5m])[1h:1m]) #prometheus#performance#network#observability Агрегация с сохранением всех меток кроме instance without() сохраняет все метки кроме instance; чище, чем перечислять много меток в by() sum without(instance) (rate(http_requests_total{code=~"5.."}[5m])) #prometheus#observability#monitoring Recording rule для дорогого отношения предвычисляет коэффициент ошибок SLO, чтобы дашборды и алерты работали быстро groups: - name: slo rules: - record: job:request_errors:ratio5m expr: sum by(job)(rate(http_requests_total{code=~"5.."}[5m])) / sum by(job)(rate(http_requests_total[5m])) #prometheus#gitops#observability#performance Проверка правил и конфига через promtool проверка перед reload; запускайте в CI, чтобы поймать битые expr/yaml до деплоя promtool check rules rules.yml && promtool check config prometheus.yml #prometheus#ci#gitops#troubleshooting Мгновенный запрос из CLI выполнить PromQL без браузера; удобно для скриптовых top-N расследований promtool query instant http://localhost:9090 'topk(5, sum by(pod)(rate(container_cpu_usage_seconds_total[5m])))' #prometheus#debug#troubleshooting#performance Поиск виновников кардинальности в TSDB показывает метрики и пары меток с высокой кардинальностью; первый шаг при росте памяти promtool tsdb analyze /prometheus --limit 20 #prometheus#performance#troubleshooting#observability
no commands match