• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

python开发prometheus exporter

prometheus 小爱 3个月前 (08-05) 60次浏览 已收录 0个评论 扫描二维码

普罗米修斯监控指标分为四个类型:

  • Counter
    用于记录只会增加不会减少的指标类型,并且在程序重启的时候会被重设为0。
    比如:采集http请求总数,cpu使用时间
  • Gauge
    用于记录可增可减的指标。
    比如:采集可用内存大小
  • Histogram
    在指定分布范围内记录(如http request bytes)大小或者事件发生的次数。
  • Summary
    Summary和Histogram非常类型相似,都可以统计事件发生的次数或者大小,以及其分布情况。不同的是,它直接存储了分位数数据,而不是根据统计区间计算出来的。

python开发exporter可以参考https://github.com/prometheus/client_python

使用客户端自带的http_server实现

# coding=utf-8
from prometheus_client import start_http_server # ,Summary,Counter,Gauge,Histogram,CollectorRegistry
from prometheus_client.core import REGISTRY,GaugeMetricFamily #,CounterMetricFamily
import time

class MemCollector(object):
  def collect(self):
    with open('/proc/meminfo') as fd:
      for line in fd:
        if line.startswith('MemTotal'):
          mem = float(line.split()[1].strip())
          break
    mem = float('%.2f' % (mem / 1024.0))
    # 方式一
    yield GaugeMetricFamily('mem_info_one','This is the Memory info one',value=mem)
    # 方式二
    g = GaugeMetricFamily('mem_info_two','This is the Memory info two',labels=['total'])
    g.add_metric(['size'],mem)
    yield g

REGISTRY.register(MemCollector())

if __name__ == '__main__':
  start_http_server(8000)
  while True: time.sleep(1)

小爱博客 , 版权所有
转载请注明原文链接:python开发prometheus exporter
喜欢 (0)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址