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, Gauge
from 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/