开发者

使用python测试prometheus的实现

开发者 https://www.devze.com 2022-12-10 11:00 出处:网络 作者: quietguoguo
为了更直观的了解prometheus如何工作,本文使用prometheus的python库来做一些相应的测试。

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

python库的github地址是https://github.com/prometheus

根据提示,使用pip安装prometheus_client

pip3 install prometheus_client

然后根据文档中的示例文件并简单修改,运行一个client

文件命名为prometheus_python_client.py

from prometheus_client import start_http_server, Summary
import random
import time
import sys

# 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__':
  try:
    if sys.argv[1].isdigit():
      port = sys.argv[1]
    else:
      port = 8080
  except:
    port = 8080

  # Start up the server to expose the metrics.
  start_http_server (8080)
  # Generatwww.cppcns.come some requests.
  while True:
    process_request (LyUTYrBrandom.random ( ))

在后台运行client

pytho3 prometheus_python_client.py 8080 &

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

curl 127.0.0.1:LyUTYrB8080/metrics

得到如图所示结果

使用python测试prometheus的实现

为了能监控到这个端口为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:
   - t编程客栈argets: ['localhost:8080']
    labels:
     group: 'python-client-grouhttp://www.cppcns.comp'

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

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

使用python测试prometheus的实现

到此这篇关于使用python测试prometheus的实现的文章就介绍到这了,更多相关python测试prometheus内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号