Обнаружение службы динамического порта Prometheus с помощью Marathon / Mesos - PullRequest
0 голосов
/ 21 декабря 2018

Я не смог найти ответ на этот вопрос после нескольких дней поиска в Google.У меня есть служба, работающая в Marathon / Mesos.У меня есть метрики очистки кластера Прометея.Моя конфигурация порта метрик Marathon выглядит следующим образом:

{
  "containerPort": 8081,
  "hostPort": 0,
  "servicePort": 31301,
  "protocol": "tcp",
  "labels": {
    "metrics": "/metrics"
  }
}

Prometheus, настроенный только с помощью стандартной конфигурации marathon-sd, успешно находит эту цель, но затем прослушивает метрики на: __address__ = [NodeIP]:31301;поэтому он прослушивает IP-адрес хоста с портом сервиса, а не с динамически назначенным портом хоста, в то время как порт сервиса имеет значение только для Marathon-LB.

Я знаю, что Marathon определяет переменную среды $PORT0 в контейнере как порт хоста, однако я не могу понять, как получить к нему доступ из конфигурации Prometheus SD или как динамически получить доступ к другим полямнастроен марафоном как Endpoints.У кого-нибудь есть предложения?Я не могу / не хочу назначать статический hostPort, потому что у меня больше контейнеров, чем физических кластеров в кластере, как и точка с оркестровкой контейнера.

1 Ответ

0 голосов
/ 27 декабря 2018

Это известная ошибка в Prometheus : она использует свойство определения приложения servicePort Marathon вместо hostPort.Это исправлено в v2.6.0 .

...