首页
/ Prometheus Python客户端库快速入门指南

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指标会自动生成两个子指标:

  1. request_processing_seconds_count:记录函数被调用的总次数
  2. request_processing_seconds_sum:记录函数执行的总耗时

这些指标可以用于计算:

  • 请求速率(使用Prometheus的rate函数)
  • 平均延迟时间(sum除以count)

额外功能

在Linux系统上,该库还会自动暴露一些进程级别的指标,包括:

  • CPU使用情况
  • 内存占用
  • 其他进程相关信息

这些指标无需额外配置即可获取。

进阶使用

除了Summary,该库还支持其他类型的指标:

  1. Counter:只增不减的计数器,适合记录如请求总数等
  2. Gauge:可增可减的仪表盘,适合记录如当前内存使用量等
  3. Histogram:与Summary类似,但可以配置分位点

最佳实践

  1. 为指标命名时使用有意义的名称和单位
  2. 为指标添加适当的标签(labels)以便于筛选
  3. 避免创建过多的指标,这会影响性能
  4. 考虑指标的基数问题,避免使用高基数的标签值

总结

prometheus/client_python库提供了简单易用的接口来暴露应用指标,只需几行代码就能让你的Python应用具备监控能力。通过合理使用各种指标类型,你可以全面监控应用的各项性能指标。