[雪峰磁针石博客]python应用性能监控工具简介
监控简介
监视工具捕获,分析和显示Web应用程序执行信息。每个应用程序在Web堆栈的所有层都可能出现问题。监控工具通过展示帮助开发人员和运营团队响应并修复问题。
捕获和分析有关生产环境的数据对于主动处理Web应用程序的稳定性,性能和错误至关重要。
监视和日志记录的目的非常相似,它们有助于诊断应用程序的问题并帮助调试。主要差异为日志基于事件触发,而监视是被动的背景数据集合。
例如发生错误时,通过异常处理程序中的代码显式记录该事件。同时,监视代理程序对代码进行检测,并且不仅收集有关已记录异常的数据,还收集有关函数和方法性能的数据。
操作系统和网络的监控关注: CPU、内存和磁盘利用率,网络带宽和延迟
应用程序级别监视包含几个方面。 基于应用程序是重读,重写还是受到快速波动的影响而有所不同。涉及应用程序警告和错误(500级HTTP错误)、应用代码性能、模板渲染时间、浏览器渲染应用程序的时间、数据库查询性能等。
开源监控项目
错误跟踪
最初只是一个Python监控项目,但现在可以用于任何编程语言。
度量
是一个node.js网络守护程序,它监听指标并聚合它们以便转移到另一服务(如Graphite)。
存储时间序列数据,并通过Django Web应用程序在图形中显示它们。
是一个用Ruby编写的开源监控框架,但适用于任何编程语言Web应用程序。
Vimeo的Graph Explorer是一个基于Graphite的仪表板,具有附加功能和平滑的设计。
基于客户端插件的监控系统,可以将监控流量发送到Munin节点,在那里可以分析和可视化数据。请注意,此项目是用Perl编写的,因此必须在收集数据的节点上安装Perl 5。
用户监控
测量来自最终用户浏览器的Web应用程序的性能,并将该数据发送回服务器以进行收集。
本文最新版本地址 https://china-testing.github.io/python_monitor.html
第三方监控服务
第三方监控软件没有部署和操作软件的负担。但是,托管监控成本不低,应用程序数据有危险,因此这些服务并不适合每个项目。
错误跟踪
用于服务器端和客户端,用于捕获和报告异常。 pyrollbar代码库为Python Web应用程序提供了快速集成。还有一些常见Web框架的具体说明,例如Django和Pyramid。
是开源工具的托管版本,用于货币化并支持二次开发。
应用程序性能监控(APM)
提供应用程序和数据库监控以及用于捕获和分析堆栈中其他devleoper工具(如Twilio)的数据的插件。
专为django而建。 Opbeat将性能指标,发布跟踪和错误记录结合到一个简单的服务中。
监控Django和Flask应用程序的性能,自动检测视图,SQL查询,模板等。
状态页面
Web应用程序的正常运行时间和响应指标可视化。
简单的设置状态页面,用于监控应用程序的运行时间。
事件管理
如果应用程序存在稳定性,性能或正常运行时间问题,PagerDuty会向指定人员或组发出警报。
监控资源
How to Add Hosted Monitoring to Flask Web Applications及[How to Monitor Bottle Web Applications]
(https://www.fullstackpython.com/blog/monitor-python-web-applications.html)系列文章,介绍如何将托管监控添加到主要的Python Web框架应用程序。
Effortless Monitoring with collectd, Graphite, and Docker
Practical Guide to StatsD/Graphite Monitoring是一个详细的指南,其中包含用于监控基础架构的代码示例。
"10 Things They Forgot to Monitor
描述了超出磁盘和内存使用等标准。
四个Linux服务器监控工具 Four Linux server monitoring tools
如何设计有用的监控和图形可视化 How to design useful monitoring and graphing visualizations
5 years of metrics and monitoring
是一个很好的演示,突出了可视化。线图通常不是最佳解决方案,而且它们被过度使用。
Collector Highlight Series有一篇关于StatsD
的文章,解释了如何安装它以及它是如何工作的。
survey on monitoring tools有一些关于开发人员和运营人员在其环境中使用的数据和图表。
Ryan Frantz写了一篇关于Solving Monitoring
的好文章,其中新的定义是基于当今复杂系统的监控手段,以及该实践应如何发展。
监控学习清单
查看下面的软件即服务和开源监控工具。第三方服务往往更容易设置和托管数据。开源项目为您提供了更多控制权,但您需要为监控准备其他服务器。
我的建议是在试用期内安装New Relic的免费选项,以了解它如何与您的应用配合使用。它将使您对应用程序级监视工具的功能有所了解。
作为您的应用程序比例,请查看如何使用Graphite设置其中一个开源监视项目,例如StatsD。这两个项目的组合将为您提供对您正在收集和可视化的系统指标的细粒度控制。
python监控库参考:https://github.com/china-testing/python-api-tesing#%E7%9B%91%E6%8E%A7
参考资料
- 讨论 钉钉群21745728 qq群144081101 567351477
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- Monitoring

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
剑指offer——第一章(C++实现)
写在前面的话 面试官会关注边界条件、特殊输入(如nullptr指针、空字符串等)以及错误处理。 题目1:把一个字符串转换成整数 边界条件: 1)考虑到输入的字符串中有非数字字符和正负号 2)要考虑到最大的正整数和最小的负整数以及溢出 3)考虑到当输入的字符串不能转换成整数时,应该如何做错误处理。 实现代码: #include <iostream> #include<string> int StrToInt(std::string input) { int len = input.length(), str_index=0; int positive_num = 0, negative_num = 0; if (len == 0) return 0; long long answer = 0; //去除字符串前置空格 while (input[str_index] == ' ') str_index++; //正负号判断 if (input[str_index] == '+') { positive_num++; str_index++; } else if (...
-
下一篇
[雪峰磁针石博客]python 3.7极速入门教程1安装:Linux(Ubuntu 18.04)及Windows上安装Anaconda
安装 Linux安装 Anaconda是最受欢迎的python数据科学和机器学习平台,用于大规模数据处理,预测分析和科学计算。Anaconda发行版附带了1,000多个数据包,conda命令行工具和Anaconda Navigator的桌面图形用户界面。一般而言,使用Anaconda比直接使用官方的python更好用。 本教程将指导您完成在Ubuntu 18.04上下载和安装Anaconda Python Distribution。通常也适合多数其他Linux。 下载Anaconda https://www.anaconda.com/download/#linux 在撰写本文时,Anaconda的最新稳定版本是5.3版本。 图片.png 请选择64-Bit (x86) Installer 进行下载,尽量不要用python2.7,很多库已经不提供python2.7支持。 点击链接就会进行下载,同时会弹出信息收集框,直接关闭就好。 图片.png 安装Anaconda $ sudo sh Anaconda3-5.3.0-Linux-x86_64.sh [sudo] andrew 的密码: W...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19