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 ^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698819.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音 根据sec uid获取个人详细信息(性别、年龄、属地、关注数、粉丝数、简介等)

本文带来用户的secuid获取用户信息以及其他基本信息: 话不多说看效果: 第一步输入用户sec_uid 根据secuid获取到用户基本信息: 可以支持接口批量转换,欢迎咨询

什么是NLP-自然语言处理

什么是NLP-自然语言处理 什么是NLP开通NLP新建项目创建模型 什么是NLP NPL是面向算法小白用户的行业自适应标注、训练和服务平台。该产品支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、短文本匹配、商品评价解析等 NLP 定制化算法能力,用户无需拥…

NPN和PNP三极管开关

当使用三极管当电子开关时,对于控制端输入信号,若要求高电平导通时,使用NPN型三极管;若要求低电平导通时,使用PNP三极管。还有在控制电源线路中,一般使用NPN三极管控制负极,PNP三极管控制正极。…

【Excel技巧】Excel打开密码的两种设置方法!

excel文件打开密码可以再打开文件时输入密码查看文件内容,这样就可以保护文件内容不被任何人查看了,今天分享excel打开密码的两种设置方法给大家。 方法一: 点击excel中的【文件】功能,找到【信息】-【保护工作表】-【用密码进行…

C++九州控制地址结构else 陈述

else如同英文字义,九州qa98錪cc否则的意思,通常放在if的后面,若if的条件为真,就执行if底下大括弧围起来的程式区块,若为假,就执行else底下大括弧围起来的程式区块。 形式如下: 这个概念用于二选…

postman教程-19-mock测试

上一小节我们学习了Postman接口参数化方法,本小节我们讲解一下Postman mock测试的方法。 一、什么叫mock测试 mock测试就是在测试过程中,对某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便于测试的一种测试方法&#xff0c…

点阵LCD和按键输入同五金结构无关,怎么实现

1、问题的提出 当有显示屏和按钮输入时,我们就要考虑结构设计,屏的开窗位置和按钮的开孔位置,必须告诉结构人员才能完成设计。见下图: 上图有5个按钮,它们在PCB上的摆放位置,会影响结构设计。如果只是修改…

python如何安装各种库(保姆级教程)_python安装库

使用Python爬虫时需要安装各种依赖库。安装一共有四种方法: 一、使用pip命令在线安装 二、在pycharm中在线安装 三、使用库的安装包本地安装 四、安装anaconda—anaconda中包含一般使用的所有库 一:pip安装 此步骤需要提前安装好python环境和pip。…

【ARFoundation自学04】AR Tracked Image 图像追踪识别与对应类的调用

图像识别是很常用的AR功能!AR foundation 可以帮助我们轻松实现! 1.安装插件 首先还是在资源包中导入ARfoundation 。然后搭建基本的AR ARFoundation框架! 2.创建AR session 和XR origin结构! 3.然后在XR Origin 物体身上添加A…

开放式耳机怎么选性价比高?2024五大新晋爆卖机型精选!

​喜欢户外活动的朋友们,你们都是懂得享受生活的达人吧!想象一下,在户外活动时,如果能有一副既适合场景又提供超棒音乐体验的耳机,那该多完美啊!这时候,开放式耳机就闪亮登场了!它的…

小小手表实现全球音视频通话!小寻手表×菊风这样做!

现阶段,儿童手表几乎成了孩子上学的标配,已逐渐发展为家长和孩子沟通的工具与桥梁,而音视频通话也成为了儿童手表中不可或缺的功能。 作为儿童手表市场的领航者,小寻手表在2023年交出了全球出货量第2名、产品覆盖全球1800城市的优…

[图解]建模相关的基础知识-08

1 00:00:01,650 --> 00:00:04,950 如果说,A乘BB乘A的话 2 00:00:06,350 --> 00:00:07,140 意味着什么 3 00:00:07,560 --> 00:00:08,420 A就等于B了 4 00:00:09,500 --> 00:00:10,680 只有两个相等 5 00:00:10,690 --> 00:00:13,360 它们的笛卡尔…

【基于 PyTorch 的 Python 深度学习】8 注意力机制(3):Transformer(下)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了 vision Transformer 和 Swin Transformer…

WeTrade 在印度尼西亚井里汶成功举办研讨会

端午安康!在这欢乐的假日里,WeTrade和各位投资者分享一则喜事!如果有意参加的,可以联系小编! 5 月底,我们在印度尼西亚井里汶成功举办了一场精彩研讨会,聚集了来自印度尼西亚各地交易社区的100多名交易者。 此次研讨会由经验丰富…

互联网政务应用指那些?怎么过等保?

随着互联网技术的快速发展,互联网已经跟大家的生活分不开了,已经成为了大家获取信息交流互动的重要渠道了。因此为了提高用户体验,跟上时代潮流,政府开通了不少互联网政务应用,作为政府服务社会、联系群众的重要窗口。…

从文本文件中读取博客数据并将其提取到文件中

通常情况下我们可以使用 Python 中的文件操作来实现这个任务。下面是一个简单的示例,演示了如何从一个文本文件中读取博客数据,并将其提取到另一个文件中。 假设你的博客数据文件(例如 blog_data.txt)的格式 1、问题背景 我们需…

3D模型如何快速渲染效果图?

3D模型快速渲染效果图的关键在于优化渲染过程,减少不必要的计算量,并充分利用软件和硬件的性能。那么,3D模型如何实现快速渲染效果图呢? 一、优化模型与材质 1.优化模型文件:尽量减少模型面数,因为模型面数越多&#…

独具魅力的 App UI 风格才能称之为优秀

独具特色的App UI 长什么样!看这里

【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版7(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言绘制进度条UI控制关卡进度测试按配置表使用关卡进度变化源码结束语 前言 本节主要实现关卡进度条的功能 绘制进度条UI 控制关卡进度测试 新增ProgressPanel代码,控制关卡进度 public class ProgressPanel : Mon…

(css)el-tabs滚动按钮浮动问题

(css)el-tabs滚动按钮浮动问题 修改前: 修改后: 思路:找到相应元素,降低层级 css写法: ::v-deep .el-tabs__nav {z-index: 1; }