经过几天的谷歌搜索,我一直找不到答案。我在马拉松比赛中有一项服务。我有一个普罗米修斯集群刮削指标。我的端口配置如下所示:
{
"containerPort": 8081,
"hostPort": 0,
"servicePort": 31301,
"protocol": "tcp",
"labels": {
"metrics": "/metrics"
}
}
prometheus只配置了一个样板文件marathonsd config,它成功地找到了这个目标,但它随后会侦听以下对象的度量: __address__ = [NodeIP]:31301
; 因此,它使用服务端口监听主机的ip,而不是动态分配的主机端口,而服务端口只对marathon-lb重要。
我知道马拉松定义了环境变量 $PORT0
但是,在作为主机端口的容器中,我不知道如何从prometheus sd config访问它,也不知道如何访问由marathon等动态配置的其他字段 Endpoints
. 有人有什么建议吗?我不能/不想分配一个静态 hostPort
因为我拥有的容器比集群中的物理节点还要多,这在某种程度上和容器编排有关。
1条答案
按热度按时间8yparm6h1#
这是普罗米修斯的一个已知错误:它使用
servicePort
marathon应用程序定义属性而不是hostPort
一个。它在v2.6.0中是固定的。