Пример настройки модуля

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 хранит полученные метрики в памяти, при рестарте пода все метрики будут утеряны.