prometheus-exporter开发看这一篇就够了

本文介绍了Node Exporter的工作原理,包括其如何通过注册收集指标并响应HTTP请求。此外,还探讨了自定义Exporter的开发过程及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分析node_exporter

  • 前面的 scrape describe Collect 是struct类型的成员函数,这⼏个函数并没有直接在这个go里被调用,而是MustRegister注册进去了它们。

  • http.Handle里的prometheus.Handler 将上⼀部2个Mustregister的注册 关联进⼊http.handle. 也就进⼀步注册进入了httpserver-listerner

  • http.lister是组赛程序,只有启动后被curl的时候 才会执行。并且由于之前经过2步的注册,跟exporter的成员函数简历了关联(其实是指针关联) 所以,每次被curl的时候所有上面的成员函数都会被调用//例如上⾯的up.set(1) 就是只有被curl的时候才会被调用,成员函数是作为生成metrics的入口

二、 自定义exporter

需要有这三个部分:

1)自身是HTTP 服务器,可以响应 从外发过来的 HTTP GET 请求

2)自身需要运行在后台,并可以定期触发 抓取本地的监控数据

3)返回给prometheus_server 的内容是需要符合prometheus规定的metrics类型(Key-Value)

注:key-value -> prometheus(TS) 需要接受 values( float int ) 不可以 return string * 否则会是空值

exporter-prometheus 5s GET => exporter Handler-> handler-lister 

开发的过程中 要特别注意

各种文件句柄等等资源的 完整回收,因为⼀个非常被频繁调用的后台程序中 ⼀旦循环中出现资源泄漏那么后果是很严重的(之前其实就遇到过⼀次 资源没有正确回收 导致每⼀次promethue_server访问过来 都造成僵尸进程 最终服务器被拖垮的窘境 …囧
所以 如果企业中运维开发的实力不够过硬,还是尽量建议大家 使用现成的社区exporters, 配合自行开发pushgateway脚本 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值