FlashEcho

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

  •  
  •   FlashEcho · Feb 20, 2024 · 4111 views
    This topic created in 990 days ago, the information mentioned may be changed or developed.
    如果不改 Prometheus 的配置文件,还要能自动监控新加入的微服务(这个微服务的代码里已经有 Prometheus 的 client ),是不是一定需要一个外来的服务发现组件,比如 consul

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

    请问业界比较通行,比较简单的做法是什么?
    13 replies  •  2024-02-21 18:15:40 +08:00
    corvofeng
    corvofeng
    Feb 20, 2024
    1
    随便找了一篇

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

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

    自己写个服务,通过 http-sd 的协议暴露 metrics endpoint 给 prometheus ,数据来源可以是注册中心、cmdb 等等。。
    funky
    funky
    Feb 21, 2024
    10
    不需要你的 service 是一个文件你只需要动态改变文件就行了
    edwinyzhang
    edwinyzhang
    Feb 21, 2024
    11
    写一个收集 client 发送的指标的 web 服务会比较灵活,收集到指标后推送给 pushgateway (如果数据量不大的话
    cloud107202
    cloud107202
    Feb 21, 2024❤️3
    12
    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
    BQsummer
    Feb 21, 2024
    13
    prometheus 支持从 k8s 拉取数据, 比如拉取 pod 信息:
    kubernetes_sd_configs:
    - role: pod
    kubeconfig_file: ""
    ...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2116 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    ♥ Do have faith in what you're doing.