参考
python Django 实现自定义prometheus export
prometheus自定义监控指标——实战
前面用脚本的形式起了一个exporter,但是感觉用脚本不是很方便,所以可以放到项目里运行,我这里用的django。
一、基本示例
1、代码示例,注释里有说明
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse,JsonResponse
import json
from django.views import View
import prometheus_client
from prometheus_client import Counter,Gauge
from prometheus_client.core import CollectorRegistry
#CollectorRegistry可以同时注册多个自定义指标并返回给prometheus
#自定义指标必须利用CollectorRegistry进行注册,注册后返回给prometheus
#CollectorRegistry必须提供register,一个指标收集器可以注册多个collectoryregistry
REGISTRY = CollectorRegistry(auto_describe=False)
#定义两个指标并注册到CollectorRegistry实例
g = Gauge('custom_test_metric3', 'Description of gauge3', ['labelkey3','labelkey4'],registry=REGISTRY)
h = Gauge('custom_test_metric4', 'Description of gauge4', ['labelkey3','labelkey4'],registry=REGISTRY)
class Baseline(View):
'''
'''
def get(self,request):
#设置标签值以及指标的value
g.labels(labelkey3="labelvalue3", labelkey4="labelvalue4").set("133")
h.labels(labelkey3="labelvalue3", labelkey4="labelvalue4").set("134")
#返回CollectorRegistry实例中注册指标的信息
return HttpResponse(prometheus_client.generate_latest(REGISTRY),content_type="text/plain")
然后访问接口,我这里是http://10.0.0.107:8000/api/v1/exporter/baseline/
,可以看到有上面定义的指标信息
2、在prometheus中配置自定义的exporter
这里地址为django的项目地址10.0.0.107:8000
,路径metrics_path如果没配置的话默认是/metrics,这里设置为我的接口地址/api/v1/exporter/baseline
#vim /usr/local/prometheus/prometheus.yml
- job_name: 'exporter-django'
metrics_path: '/api/v1/exporter/baseline'
static_configs:
- targets: ['10.0.0.107:8000']
然后重启prometheus
systemctl restart prometheus.service
3、访问prometheus查询页面进行查询,可以查到我们刚才自定义的两个指标custom_test_metric3和custom_test_metric4