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

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

关于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 ,如需转载请自行联系原作者


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3天前
|
数据处理 Python
4个Python推导式开发技巧
4个Python推导式开发技巧
|
3天前
|
数据可视化 前端开发 JavaScript
利用Python开发七普数据在线可视化看板
利用Python开发七普数据在线可视化看板
|
2天前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
21 1
|
3天前
|
SQL 关系型数据库 数据库
纯Python轻松开发在线留言板
纯Python轻松开发在线留言板
|
3天前
|
数据采集 Python
100行Python代码轻松开发个人博客
100行Python代码轻松开发个人博客
|
1天前
|
Android开发 Swift iOS开发
探索Android和iOS开发的差异性与互补性深入浅出Python装饰器
【8月更文挑战第30天】在移动应用开发的广阔天地中,Android和iOS两大平台以其独特的魅力和技术架构引领潮流。本文将深入探讨这两个平台的开发环境、编程语言和用户界面设计等方面的不同之处,并揭示它们之间的互补性。通过比较分析,我们将发现每个平台的核心优势,以及如何将这些优势融合到跨平台开发策略中,为开发者提供全面的视角和实用的建议。
|
2天前
|
开发框架 Java 数据管理
我使用Python开发网站的3个主要框架库,强烈推荐
我使用Python开发网站的3个主要框架库,强烈推荐
|
2天前
|
机器学习/深度学习 人工智能 算法
为什么ChatGPT等AI大模型都是基于Python开发?
为什么ChatGPT等AI大模型都是基于Python开发?
|
2天前
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现
|
2天前
|
Web App开发 JavaScript 前端开发
探索Node.js后端开发之旅深入浅出Python装饰器
【8月更文挑战第29天】在数字化时代,掌握一门后端编程语言变得尤为重要。Node.js作为一种基于JavaScript的服务端平台,因其高性能、轻量级的特性而广受欢迎。本文将引导读者了解Node.js的基本概念、核心模块以及如何利用它来构建一个简易的Web服务器。通过本文的学习,你将获得使用Node.js进行后端开发的初步技能,并理解其在现代Web开发中的应用价值。
下一篇
云函数