Prometheus Python客户端库快速入门指南
2025-07-09 00:47:04作者:胡易黎Nicole
概述
Prometheus是一个开源的监控系统和时间序列数据库,而prometheus/client_python是其官方提供的Python客户端库。本文将带你快速了解如何使用这个库来监控你的Python应用。
环境准备
首先需要安装prometheus-client库,可以通过以下命令安装:
pip install prometheus-client
基础使用示例
下面我们通过一个简单的例子来展示如何使用这个库:
from prometheus_client import start_http_server, Summary
import random
import time
# 创建一个Summary指标来跟踪请求处理时间和次数
REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')
# 使用装饰器来测量函数执行时间
@REQUEST_TIME.time()
def process_request(t):
"""模拟一个耗时处理的函数"""
time.sleep(t)
if __name__ == '__main__':
# 启动HTTP服务器暴露指标数据
start_http_server(8000)
# 模拟持续处理请求
while True:
process_request(random.random())
指标说明
运行上述代码后,访问本地的8000端口可以看到暴露的指标。使用Summary指标会自动生成两个子指标:
request_processing_seconds_count
:记录函数被调用的总次数request_processing_seconds_sum
:记录函数执行的总耗时
这些指标可以用于计算:
- 请求速率(使用Prometheus的rate函数)
- 平均延迟时间(sum除以count)
额外功能
在Linux系统上,该库还会自动暴露一些进程级别的指标,包括:
- CPU使用情况
- 内存占用
- 其他进程相关信息
这些指标无需额外配置即可获取。
进阶使用
除了Summary,该库还支持其他类型的指标:
- Counter:只增不减的计数器,适合记录如请求总数等
- Gauge:可增可减的仪表盘,适合记录如当前内存使用量等
- Histogram:与Summary类似,但可以配置分位点
最佳实践
- 为指标命名时使用有意义的名称和单位
- 为指标添加适当的标签(labels)以便于筛选
- 避免创建过多的指标,这会影响性能
- 考虑指标的基数问题,避免使用高基数的标签值
总结
prometheus/client_python库提供了简单易用的接口来暴露应用指标,只需几行代码就能让你的Python应用具备监控能力。通过合理使用各种指标类型,你可以全面监控应用的各项性能指标。