Пример настройки модуля
1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4 name: prometheus-pushgateway
5spec:
6 version: 1
7 enabled: true
8 settings:
9 instances:
10 - first
11 - second
12 - another
Адрес PushGateway (из контейнера пода): http://first.kube-prometheus-pushgateway:9091
.
Отправка метрики
Пример отправки метрики через curl:
1echo "test_metric{env="dev"} 3.14" | curl --data-binary @- http://first.kube-prometheus-pushgateway:9091/metrics/job/myapp
Через 30 секунд (после скрейпа данных) метрики будут доступны в Prometheus. Пример:
1test_metric{container="prometheus-pushgateway", env="dev", exported_job="myapp",
2 instance="10.244.1.155:9091", job="prometheus-pushgateway", pushgateway="prometheus-pushgateway", tier="cluster"} 3.14
Название job (в примере — myapp
) будет доступно в Prometheus в лейбле exported_job
, а не job
(так как лейбл job
уже занят в Prometheus, он переименовывается при приеме метрики от PushGateway).
Возможно, вам потребуется получить список всех имеющихся job для выбора уникального названия (чтобы не испортить существующие графики и алерты). Получить список всех имеющихся job можно следующим запросом: count({__name__=~".+"}) by (job)
.
Удаление метрик
Пример удаления всех метрик группы {instance="10.244.1.155:9091",job="myapp"}
через curl:
1curl -X DELETE http://first.kube-prometheus-pushgateway:9091/metrics/job/myapp/instance/10.244.1.155:9091
Так как PushGateway хранит полученные метрики в памяти, при рестарте пода все метрики будут утеряны.