Передача этикеток из контейнера / зондов в оповещения о прометеях - PullRequest
0 голосов
/ 12 ноября 2018

Я хотел бы использовать шаблоны для облегчения чтения предупреждений.По сути, у меня есть такое предупреждение:

alertname = "service_1 имеет 3 контейнера, развернутых по dvvmclust1 (1 ожидается на узел)" *
... 08:53:46, 2018-11-12
... метки
....... severity = "критический"
....... имя_узла = "dvvmclust1"
....... монитор ="docker-swarm-host"
....... com_docker_swarm_service_name = "qgis"

Какой Ил хотел бы определить следующим образом:

alert: ${{ labels.com_docker_swarm_service_name }}  has ${{ value }} containers deployed over ${{ labels.node_name }} (1 expected per node)
expr: whatever > 1
for: 30m
labels:
    severity: critical
annotations:
  description:  ${{ labels.com_docker_swarm_service_name }}  has ${{ value }} containers deployed over ${{ labels.node_name }}. You are not expected to have more that 1 at once per node. Please consider redeploying the service among the available nodes or restarting failed nodes.
  summary: ${{ labels.com_docker_swarm_service_name }}   has ${{ value }} containers deployed over ${{ labels.node_name }} (1 expected per node)

Я думаю, что я понимаю, что эти ярлыки не будут доступны из таблицы ".labels", пока я не использовал "relbel_configs" таким образом:

relabel_configs
  - source_labels: [__com_docker_swarm_service_name__]
    target_label: __com_docker_swarm_service_name

Хотя, когда я смотрю наОбнаружение служб из API-интерфейса Prometheus. Я не вижу свои метки из «обнаруженных меток», хотя вижу их (и многие другие), когда смотрю ( например ) метрики cAdvisor:

   container_last_seen{architecture="x86_64",com_docker_swarm_service_name="CGI_osm",instance="10.0.0.17:8080",job="cadvisor",name="CGI_osm.2.s2s3fsxs7sts2qvzmy4l1izse",node_name="dvvmclust4",service_description="carto OSM",service_name="OSM",service_version="latest",summary="Provides the latest release of OSM"...}

(некоторые метки были добавлены мной из файла docker-compose)

Поэтому мой вопрос: как я могу использовать метки (и связанные с ними значения!),такие как 'сервикeName 'и' nodeName ', из моих контейнеров, через cAdvisor или node_exporter, и до самого оповещения, определенного в prometheus?

...