用python和redis开发高性能监控平台及框架升级过程

简介:

关于python应用监控平台的话题


最近的更新:

http://rfyiamcool.blog.51cto.com/1030776/1429847


先说明,这不是人人业务的监控框架,是我在以前公司参与的一个项目。。。

刚入行的时候,对于监控方面,用的是nagios和cacti。 两个都很强大的监控平台,可扩展性也都很不错。要是想用一个平台实现报警和性能信息的展示的话,他俩都需要加点东西。两个的合体可以考虑zabbix。操作和理解都挺简单的。唯一让人不爽的是存在myql里面,国外有个老外可以改到我钟爱的mongodb里面,但是我看不懂,也没有操作成功。。。 php  这个真不会。。。

后来到了大公司后,才发现他们的监控用的多种多样。。。比如业务数据的收集,他们用的更多的是ganglia、graphite之类的产品。监控的话,更多的是自己开发,或者是针对业务对开源的产品二次开发。  基本是这两种。。。

我从去年开始接触公司监控平台的项目,说来做监控平台有段时日啦。

我们的框架一改再改。。。。 我把平台的升级过程和原因给大家说下。


源地址 :  http://rfyiamcool.blog.51cto.com/1030776/1272629


最开始监控的框架:


用gevent撑起并发,redis的mq通信,bottle做的web,mysql做的库,微信做的报警。


085805799.jpg

后期为了扩展做了队列系统,防止行为的堵塞和超多任务进程崩溃。。。存储方面用了mongodb。 考虑到微信接口的不稳定,又加了邮件告警。

源地址 :  http://rfyiamcool.blog.51cto.com/1030776/1272629

121238580.jpg

首先把监控任务的大队列的分离,不做进程间的queue通信了。现把redis独立做队列,并做了监控点的健康状态,分布式的监控点也多了几个,可以写成多进程,也可以是部署到服务器上。

源地址 :  http://rfyiamcool.blog.51cto.com/1030776/1272629

微信的接口时常的出问题和发信的次数,所以用了多个接口进行轮训并状态检测。。。

125242745.jpg

对于被动模式的监控,该项目中只是在websocket应用过。。。

130549536.jpg

小总结:

           首先要确认监控的需求,简单实现页面管理监控items,展现数据。 后期要从各方面改进性能   比如分布式集群的方式  有两种   1  监控点去 被监控点 取数据,在大量主机的情况下可能会慢,可以用队列来解决,也可以用gearman这样的任务派发系统来解决。。。  2   被监控点把数据主动给监控点。这个方法够简单,对于master来说压力也很小,但是缺点也很明显,告警的逻辑方面有点复杂。。。 在这种情况下,master要主动和client的mq进行通信,证明他是活着的,他要是怪了,那把告警的优先度升高。剩下的监控业务和系统信息 如 内存 硬盘啥的,就根据pub过来的信息,进行对比,然后自己通过api接口发微信和邮件。 方式多种多样。。。。  

我们根据需求选择适合自己的业务的监控方式,进行开发。



 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1272629 ,如需转载请自行联系原作者


相关文章
|
7月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
10月前
|
API C++ 开发者
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
1042 20
|
6月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
752 7
|
7月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
8月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
10月前
|
人工智能 并行计算 开发者
CUDA重大更新:原生Python可直接编写高性能GPU程序
NVIDIA在2025年GTC大会上宣布CUDA并行计算平台正式支持原生Python编程,消除了Python开发者进入GPU加速领域的技术壁垒。这一突破通过重新设计CUDA开发模型,引入CUDA Core、cuPyNumeric、NVMath Python等核心组件,实现了Python与GPU加速的深度集成。开发者可直接用Python语法进行高性能并行计算,显著降低门槛,扩展CUDA生态,推动人工智能、科学计算等领域创新。此更新标志着CUDA向更包容的语言生态系统转型,未来还将支持Rust、Julia等语言。
705 3
CUDA重大更新:原生Python可直接编写高性能GPU程序
|
9月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
1099 1
|
9月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
697 0
|
9月前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
10月前
|
数据采集 存储 NoSQL
分布式爬虫去重:Python + Redis实现高效URL去重
分布式爬虫去重:Python + Redis实现高效URL去重

推荐镜像

更多