Prometheus 监控自定义指标需要服务发现吗?

78 天前
 chesha1
如果不改 Prometheus 的配置文件,还要能自动监控新加入的微服务(这个微服务的代码里已经有 Prometheus 的 client ),是不是一定需要一个外来的服务发现组件,比如 consul

看了一下 Prometheus 的文档,也没说怎么做比较好

请问业界比较通行,比较简单的做法是什么?
1635 次点击
所在节点    Kubernetes
13 条回复
corvofeng
78 天前
随便找了一篇

https://alexandre-vazquez.com/kubernetes-service-discovery-for-prometheus/

大意是你指定好 exporter 的 service name ,告诉 prometheus ,prometheus 会按照对应 service 的 endpoint 去采集的
bazbaozhilv
78 天前
自定义监控项直接配置 node exporter 不就行了吗,然后如何后续有大批量的节点,还是建议上 consul ,然后用 py 脚本批量增加或删除会省时省力
runinhard
78 天前
俺记得 svc 的注解里定义好 path 和端口,prometheus 会自动定时采集的啊,应该是不需要单独整服务发展的
mccken
78 天前
业界通常做法就是在 k8s 中做
RedisMasterNode
78 天前
业界通常做法就是在 k8s 中做
chocotan
78 天前
Cola98
78 天前
说一个 k8s 的做法,Prometheus 里面有 PodMonitor 和 ServiceMonitor ,你 consul 只需要做好 label ,弄好 PodMonitor 或者 ServiceMonitor 就可以了
chocotan
78 天前
@chocotan
我们是有很多各种类型的指标,比如各种类型的中间件、应用(物理机、虚拟机、容器都有)
各种 target 通过资源管理控制台聚合在一起,管理控制台提供服务发现的 http api 给 promethues
zu1y
78 天前
https://prometheus.io/docs/prometheus/latest/http_sd/

自己写个服务,通过 http-sd 的协议暴露 metrics endpoint 给 prometheus ,数据来源可以是注册中心、cmdb 等等。。
funky
78 天前
不需要你的 service 是一个文件你只需要动态改变文件就行了
edwinyzhang
78 天前
写一个收集 client 发送的指标的 web 服务会比较灵活,收集到指标后推送给 pushgateway (如果数据量不大的话
cloud107202
78 天前
https://github.com/prometheus-operator/kube-prometheus

没一个人说明白。。。。 利用 kubernetes 的 operator 机制,监听到带特定 meta 的 svc 描述,operator 会自动抓取和拉取监控数据

service.yaml 开头形如下面这坨

apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8080"
prometheus.io/scheme: http
prometheus.io/scrape: "true"


综述:
1. 如果是自有服务,按前面说的来定义 service meta 部分
2. 如果是非 kubernetes 托管的外部服务,比如中间件,一般是部署对应的 exporter 服务。然后自定义一组同上的 service + 指向具体 IP 的 endpoint.
BQsummer
78 天前
prometheus 支持从 k8s 拉取数据, 比如拉取 pod 信息:
kubernetes_sd_configs:
- role: pod
kubeconfig_file: ""
...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016989

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX