登录
首页 >  Golang >  Go问答

Prometheus 使用 Marathon/Mesos 进行实时端口服务发现

来源:stackoverflow

时间:2024-03-11 16:03:23 308浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《Prometheus 使用 Marathon/Mesos 进行实时端口服务发现》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

经过几天的谷歌搜索,我一直找不到这个问题的答案。我有一个在 marathon/mesos 中运行的服务。我有一个 prometheus 集群抓取指标。我的 marathon 指标端口配置如下所示:

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

仅配置了样板 marathon-sd 配置的 prometheus 成功找到了该目标,但随后它侦听以下指标: __address__ = [nodeip]:31301;因此它使用服务端口监听主机的 ip,而不是动态分配的主机端口,而服务端口仅对 marathon-lb 重要。

我知道 marathon 将容器中的环境变量 $port0 定义为主机端口,但是我不知道如何从 prometheus sd 配置访问它,也不知道如何访问 marathon 动态配置的其他字段像 endpoints。有没有人有什么建议?我不能/不想分配静态 hostport 因为我的容器比集群中的物理节点多,这就是容器编排的要点。


解决方案


它是 known bug in Prometheus:它使用 servicePort Marathon 应用定义属性,而不是 hostPort 属性。这是fixed in the v2.6.0

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>