Python Runtime指标采集

一、背景

        最近在复盘Python的相关内容,到了监控相关部分发现,例如像Golang采集Runtime相关指标,我们可以使用Golang的Promethues客户端SDK进行采集metrics指标。

        这些指标就包括了程序的CPU利用率、内存使用率、内存使用字节数、协程数量、GC耗时、GC发生的时间、STW耗时、GC的频率等等, 这些指标统称为Golang Runtime指标。

        那么由此来看,Python应该理论上有类似的监控指标工具的Exporter或者SDK才对。但是很不幸,Python这么大的生态,我把全网都翻了一遍,竟然没有开源成熟的工具对Python Runtime指标进行暴露的exporter或者类似的工具。 搜索的都是商业APM软件,倒是可以支持对Python程序的Runtime相关指标进行监控。

        真的好奇怪,难道是我孤陋寡闻了,还是搜索姿势不对? 

        有了解和熟悉的朋友,可以在评论区留言指导,感谢各位老铁!

二、解决方案

1、解决思路

        没办法,上线Python程序没监控说实在的心里不踏实。诸如内存泄露、文件句柄泄露或者CPU使用率过高等等,没有一个监控实在是虚得很。

        所以除了像物理机部署需要node_exporter或者容器部署,需要进行容器监控采集的指标以外。程序本身的Runtime指标也是不可或缺的一环。 例如GC情况、堆内存情况、文件句柄等等,都是很关键的性能指标。

        自己利用psutil模块,开源了一版Python Runtime metrics exporter包,适配了Django、Flask框架,同时针对线上我们采用uwsgi进行高性能部署, 也是无缝衔接。

        配置上已经绘制好的Grafana面板,导入grafana json面板文件即可, 轻松使用Prometheus进行指标采集,最后统一展示在Grafana运维监控面板,配置相关告警,能够让我们对整个应用的监控状态和运行状态了如指掌。 终于可以安心的睡个安稳觉了!

        Grafana效果如下图:

2、开源项目: prometheus-runtime-exporter

        开源项目地址与文档:  https://github.com/dream-mo/prometheus-runtime-exporter

        pip安装: 

pip install prometheus-runtime-exporter

        方便使用,pip安装一把梭, 适配Django、Flask, 或者自己本身单个HTTP服务都是没问题的,思路也很简单,暴露出一个/metrics接口即可。

        欢迎大家使用,有问题可以提issues, 有帮助的帮忙点赞Star ^_^

相关推荐

  1. Telegraf--采集指定信息

    2024-06-15 19:18:01       21 阅读
  2. 【PostgreSQL的指标采集工具--pgmetrics】

    2024-06-15 19:18:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 19:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 19:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 19:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 19:18:01       18 阅读

热门阅读

  1. OpenCV之cv::Scalar

    2024-06-15 19:18:01       7 阅读
  2. python显示神经网络训练时的1batch数据

    2024-06-15 19:18:01       7 阅读
  3. 运维监控系统

    2024-06-15 19:18:01       7 阅读
  4. ArrayList<Integer>()转为int[]的几种方式

    2024-06-15 19:18:01       7 阅读
  5. c++_0基础_讲解5 判断语句

    2024-06-15 19:18:01       8 阅读
  6. 算法训练营day23补签

    2024-06-15 19:18:01       6 阅读
  7. ISO七层模型 tcp/ip

    2024-06-15 19:18:01       8 阅读
  8. 2022C语言二级真题

    2024-06-15 19:18:01       9 阅读
  9. TCP协议参数设置&说明

    2024-06-15 19:18:01       6 阅读