V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chesha1
V2EX  ›  Kubernetes

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

  •  
  •   chesha1 · 55 天前 · 1528 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果不改 Prometheus 的配置文件,还要能自动监控新加入的微服务(这个微服务的代码里已经有 Prometheus 的 client ),是不是一定需要一个外来的服务发现组件,比如 consul

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

    请问业界比较通行,比较简单的做法是什么?
    13 条回复    2024-02-21 18:15:40 +08:00
    corvofeng
        1
    corvofeng  
       55 天前
    随便找了一篇

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

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

    自己写个服务,通过 http-sd 的协议暴露 metrics endpoint 给 prometheus ,数据来源可以是注册中心、cmdb 等等。。
    funky
        10
    funky  
       54 天前
    不需要你的 service 是一个文件你只需要动态改变文件就行了
    edwinyzhang
        11
    edwinyzhang  
       54 天前
    写一个收集 client 发送的指标的 web 服务会比较灵活,收集到指标后推送给 pushgateway (如果数据量不大的话
    cloud107202
        12
    cloud107202  
       54 天前   ❤️ 2
    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
        13
    BQsummer  
       54 天前
    prometheus 支持从 k8s 拉取数据, 比如拉取 pod 信息:
    kubernetes_sd_configs:
    - role: pod
    kubeconfig_file: ""
    ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   965 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:49 · PVG 05:49 · LAX 14:49 · JFK 17:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.