Prometheus 监控自定义指标需要服务发现吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FlashEcho
V2EX    Kubernetes

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

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

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

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

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

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

    自己写个服务,通过 http-sd 的协议暴露 metrics endpoint 给 prometheus ,数据来源可以是注册中心、cmdb 等等。。
    funky
        10
    funky  
       2024-02-21 11:12:20 +08:00
    不需要你的 service 是一个文件你只需要动态改变文件就行了
    edwinyzhang
        11
    edwinyzhang  
       2024-02-21 11:45:08 +08:00
    写一个收集 client 发送的指标的 web 服务会比较灵活,收集到指标后推送给 pushgateway (如果数据量不大的话
    cloud107202
        12
    cloud107202  
       2024-02-21 11:59:42 +08:00   3
    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  
       2024-02-21 18:15:40 +08:00
    prometheus 支持从 8s 拉取数据, 比如拉取 pod 信息:
    kubernetes_sd_configs:
    - role: pod
    kubeconfig_file: ""
    ...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3182 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:17 PVG 19:17 LAX 03:17 JFK 06:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86