Я не смог найти ответ на этот вопрос после нескольких дней поиска в 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
, потому что у меня больше контейнеров, чем физических кластеров в кластере, как и точка с оркестровкой контейнера.