Пример настройки модуля
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: prometheus-pushgateway
spec:
version: 1
enabled: true
settings:
instances:
- first
- second
- another
Адрес PushGateway (из контейнера пода): http://first.kube-prometheus-pushgateway:9091
.
Отправка метрики
Пример отправки метрики через curl:
echo "test_metric{env="dev"} 3.14" | curl --data-binary @- http://first.kube-prometheus-pushgateway:9091/metrics/job/myapp
Через 30 секунд (после скрейпа данных) метрики будут доступны в Prometheus. Пример:
test_metric{container="prometheus-pushgateway", env="dev", exported_job="myapp",
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:
curl -X DELETE http://first.kube-prometheus-pushgateway:9091/metrics/job/myapp/instance/10.244.1.155:9091
Так как PushGateway хранит полученные метрики в памяти, при рестарте пода все метрики будут утеряны.