python开发prometheus exporter
当Prometheus自带的exporter无法满足实际需求时,需要我们自定义开发监控项安装prometheus_clientpip install prometheus_client简单示例import timefrom prometheus_client import Gauge,start_http_serverg = Gauge('custom_test_metric', 'Descrip
·
Prometheus提供4种类型Metrics:Counter, Gauge, Summary和Histogram
- Counter可以增长,并且在程序重启的时候会被重设为0,常被用于任务个数,总处理时间,错误个数等只增不减的指标。
- Gauge与Counter类似,唯一不同的是Gauge数值可以减少,常被用于温度、利用率等指标。
- Summary/Histogram概念比较复杂,对于我来说目前没有使用场景,暂无了解。
当Prometheus自带的exporter无法满足实际需求时,需要我们自定义开发监控项
参考
Prometheus-使用python开发exporter
prometheus自定义监控指标——实战
python Django 实现自定义prometheus export
一、简单的示例
1、安装prometheus_client
pip install prometheus_client
2、简单示例
import time
from prometheus_client import Gauge,start_http_server
#custom_test_metric{ labelkey1="labelvalue1",labelkey2="labelvalue2" } 123.0
#指标名:custom_test_metric 标签:labelkey1,labelkey2
g = Gauge('custom_test_metric', 'Description of gauge', ['labelkey1','labelkey2'])
if __name__ == '__main__':
start_http_server(8006) # 8006端口启动
while True:
#将上一次的值去除
g.clear()
#设置标签以及监控数据的值
g.labels(labelkey1="labelvalue1",labelkey2="labelvalue2").set("123")
time.sleep(10)
3、访问ip:8086端口,custom_test_metric{labelkey1="labelvalue1",labelkey2="labelvalue2"} 123.0
4、如果要返回多个指标,新增Gauge实例再传值即可
import time
from prometheus_client import Gauge,start_http_server
g = Gauge('custom_test_metric', 'Description of gauge', ['labelkey1','labelkey2'])
h = Gauge('custom_test_metric2', 'Description of gauge', ['labelkey1','labelkey2'])
if __name__ == '__main__':
start_http_server(8006) # 8006端口启动
while True:
g.labels(labelkey1="labelvalue1",labelkey2="labelvalue2").set("123")
h.labels(labelkey1="labelvalue1", labelkey2="labelvalue2").set("124")
time.sleep(10)
再访问端口,可以看到有新增的指标了
5、在prometheus中配置自定义的exporter
vim /usr/local/prometheus/prometheus.yml
增加一个job_name
- job_name: 'exporter-python'
static_configs:
- targets: ['10.0.0.107:8006']
然后重启prometheus
systemctl restart prometheus.service
访问prometheus查询页面进行查询,可以查到我们刚才自定义的两个指标
更多推荐
所有评论(0)