使用python测试prometheus

Posted quietguoguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python测试prometheus相关的知识,希望对你有一定的参考价值。

为了更直观的了解prometheus如何工作,本文使用prometheus的python库来做一些相应的测试。

python库的github地址是

https://github.com/prometheus/client_python

根据提示,使用pip安装prometheus_client

pip3 install prometheus_client

然后根据文档中的示例文件运行一个client

文件命名为prometheus_python_client.py

from prometheus_client import start_http_server, Summary
import random
import time

# Create a metric to track time spent and requests made.
REQUEST_TIME = Summary(request_processing_seconds, Time spent processing request)

# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
"""A dummy function that takes some time."""
time.sleep(t)

if __name__ == __main__:
# Start up the server to expose the metrics.
start_http_server(8080)
# Generate some requests.
while True:
process_request(random.random())

在后台运行client

pytho3 prometheus_python_client.py &

此时可以访问本机的8080端口,可以看到相应的metric

curl 127.0.0.1:8080/metrics

得到如图所示结果

使用python测试prometheus_python

为了能监控到这个端口为8080的目标,需要在prometheus的配置文件prometheus.yml进行一些修改

在scrape_configs块部分加上一个新的job

scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to /metrics
# scheme defaults to http.
static_configs:
- targets: ["localhost:9090"]
- job_name: python-client
scrape_interval: 5s
static_configs:
- targets: [localhost:8080]
labels:
group: python-client-group

重启prometheus,并访问其web页面,在Expression中输入一个python client的metric并执行

可以看到对应的结果正如在scrape_configs中所配置的相一致。

使用python测试prometheus_github_02



以上是关于使用python测试prometheus的主要内容,如果未能解决你的问题,请参考以下文章

使用Python和Flask编写Prometheus监控

超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控

Prometheus学习系列之Prometheus 查询说明

k8s实践17:监控利器prometheus helm方式部署配置测试

小白也能轻松上手的Prometheus教程

无需kubectl!快速使用Prometheus监控Etcd