文章目录
- pull 模式——prometheus 主动 pull 数据
pull 模式——prometheus 主动 pull 数据
- 安装 client
pip3 install prometheus-client
- prometheus 配置上报数据的 job
- job_name: 'test_report_metrics'static_configs:- targets: ['localhost:9600']honor_labels: true
重启 prometheus,进入 Targets,看到新监控的节点。
- 创建一个 python 项目,内容如下:
import random
import time
from prometheus_client import Counter, start_http_server, Gaugefrom prometheus.test import REQUEST_TIME# 定义它需要2个参数,第一个是metrics的名字,第二个是metrics的描述信息
c = Counter('cc', 'A Counter')
g = Gauge('gg', 'A Gauge')@REQUEST_TIME.time()
def report_metrics(t):# counter,只增不减c.inc()# gauge,任意值g.set(random.random())time.sleep(1)if __name__ == '__main__':start_http_server(9600)while True:report_metrics(random.Random())
暴露端口 9600,并注册到 prometheus,即通过 pull 方式上报指标到 prometheus。
- 访问 http://localhost:9600/metrics 查看上报指标
执行上面的 python 项目,前往 http://localhost:9600/metrics 查看上报指标
注:
- 关于 Python client用法与原理可参考:https://yuerblog.cc/2019/01/03/prometheus-client-usage-and-principle/
- Python client 官方文档:https://pypi.org/project/prometheus-client/