prometheusclient_python:Python 应用的监控指标采集方案

prometheus/client_python:Python 应用的监控指标采集方案

Python 应用在运行时会产生各种数据,CPU 占用、内存使用、请求响应时间等。把这些数据采集起来,才能判断系统是否健康。prometheus/client_python 就是做这个的,它是 Prometheus 官方维护的 Python 客户端,目前在 GitHub 上有 4,322 颗星。

它的作用很明确:在 Python 程序里定义和暴露各种指标,让 Prometheus 服务器来抓取。指标类型包括计数器、仪表盘、直方图和摘要四种,覆盖了日常监控的大部分需求。

安装只需要一行命令:pip install prometheus-client。装完之后在代码里引入,定义指标,启动一个 HTTP 服务暴露数据,Prometheus 就能按配置的时间间隔来拉取。

这个库的优势在于生态成熟。它是 Prometheus 官方项目,接口稳定,文档齐全。大多数 Python 框架都有对应的集成方案,Flask、Django、FastAPI 都能直接接进去。社区里也有不少现成的中间件,不需要从零写采集逻辑。

正文顶部截图

能采集什么指标

这个库支持四种指标类型:

计数器(Counter):只增不减,适合记录请求总数、错误次数这类数据。

仪表盘(Gauge):可增可减,适合记录当前内存占用、连接数、队列长度等瞬时状态。

直方图(Histogram):把数据分桶统计,适合记录请求延迟分布。可以算 P50、P95、P99 这类百分位数据。

摘要(Summary):类似直方图,但会额外计算滑动时间窗口内的百分位值。

这四种类型基本覆盖了业务监控和技术监控的绝大部分场景。

怎么用

最简单的用法是在代码里定义指标,然后暴露一个端点:

from prometheus_client import Counter, start_http_server

c = Counter('requests_total', 'Total requests')

start_http_server(8000)

然后在业务逻辑里调用 c.inc() 来增加计数。Prometheus 服务器配置好抓取目标后,就能定期从这个端点拉取数据。

对于 Web 应用,通常不需要自己启动 HTTP 服务。Flask 和 Django 都有现成的扩展,直接注册中间件就行。FastAPI 也有 Starlette 中间件可以用。

README区域截图

适用场景

这个项目适合以下情况:

已经在用 Prometheus 做监控的团队,Python 服务需要接入指标采集。这是最直接的使用场景。

需要给 Python 应用加监控但还没选定方案的团队。Prometheus 生态成熟,社区支持好,文档也完善,是个稳妥的选择。

做 DevOps 或 SRE 工作的人。指标数据是排查问题的基础,有现成的工具总比从零造轮子强。

一点局限

这个库只管指标采集和暴露,不负责存储和告警。完整的监控方案还需要 Prometheus 服务器和 Grafana 这类可视化工具。如果你只需要单个应用的简单监控,上整套方案可能有些重。

不过监控本身就是基础设施的一部分。前期投入一点成本搭好框架,后面维护起来反而省事。

prometheus/client_python 是个小而精的工具,解决了一个明确的问题:让 Python 应用能输出 Prometheus 格式的监控数据。代码成熟稳定,社区活跃,如果你在用 Python 做服务端开发,值得了解一下。

posted @ 2026-06-22 07:08  小飞技术快餐  阅读(11)  评论(0)    收藏  举报