日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用python測試prometheus的實現_python

作者:quietguoguo ? 更新時間: 2022-04-15 編程語言

為了更直觀的了解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)
? ? # Generate some requests.
? ? while True:
? ? ? ? process_request (random.random ( ))

在后臺運行client

pytho3 prometheus_python_client.py 8080 &

此時可以訪問本機的8080端口,可以看到相應的metric

curl 127.0.0.1:8080/metrics

得到如圖所示結果

為了能監控到這個端口為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中所配置的相一致。

原文鏈接:https://blog.51cto.com/quietguoguo/4982239

欄目分類
最近更新