[雪峰磁针石博客]python应用性能监控工具简介

本文涉及的产品
云拨测,每月3000次拨测额度
简介:

监控简介

监视工具捕获,分析和显示Web应用程序执行信息。每个应用程序在Web堆栈的所有层都可能出现问题。监控工具通过展示帮助开发人员和运营团队响应并修复问题。

捕获和分析有关生产环境的数据对于主动处理Web应用程序的稳定性,性能和错误至关重要。

监视和日志记录的目的非常相似,它们有助于诊断应用程序的问题并帮助调试。主要差异为日志基于事件触发,而监视是被动的背景数据集合。

例如发生错误时,通过异常处理程序中的代码显式记录该事件。同时,监视代理程序对代码进行检测,并且不仅收集有关已记录异常的数据,还收集有关函数和方法性能的数据。

操作系统和网络的监控关注: CPU、内存和磁盘利用率,网络带宽和延迟

应用程序级别监视包含几个方面。 基于应用程序是重读,重写还是受到快速波动的影响而有所不同。涉及应用程序警告和错误(500级HTTP错误)、应用代码性能、模板渲染时间、浏览器渲染应用程序的时间、数据库查询性能等。

开源监控项目

错误跟踪

最初只是一个Python监控项目,但现在可以用于任何编程语言。

1000
图片.png

度量

是一个node.js网络守护程序,它监听指标并聚合它们以便转移到另一服务(如Graphite)。

存储时间序列数据,并通过Django Web应用程序在图形中显示它们。

968
图片.png

是一个用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框架应用程序。

The Virtues of Monitoring

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

参考资料

相关文章
|
7天前
|
Python
python增量赋值运算的应用
Python中的增量赋值运算符用于便捷地执行算术操作,如`+=`, `-=`等,它们分别代表加法、减法、乘法、除法、取模、整除和幂运算。
10 1
|
12天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
17 1
|
23天前
|
开发者 Python 容器
深入理解Python迭代器:迭代机制的核心与应用
本文介绍了Python迭代器的核心概念、工作原理和应用场景。迭代器是遍历容器类型数据结构(如列表、元组、字典和集合)的对象,遵循迭代器协议,具有记忆遍历位置和一次性特点。通过实现迭代器协议,开发者能为自定义类型定义迭代行为,实现高效处理大量数据和与其他迭代工具协同工作。迭代器与可迭代对象的区别在于,可迭代对象实现`__iter__()`方法,返回迭代器,而迭代器实现`__next__()`方法,用于逐个访问元素。理解并运用迭代器能提升Python代码的性能和可读性。
|
18天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
7天前
|
机器学习/深度学习 人工智能 算法
图像处理与分析:Python中的计算机视觉应用
【4月更文挑战第12天】Python在计算机视觉领域广泛应用,得益于其丰富的库(如OpenCV、Pillow、Scikit-image)和跨平台特性。图像处理基本流程包括获取、预处理、特征提取、分类识别及重建生成。示例代码展示了面部和物体检测,以及使用GAN进行图像生成。
|
10天前
|
缓存 监控 算法
优化Python代码性能的10个技巧
提高Python代码性能是每个开发者都需要关注的重要问题。本文将介绍10个实用的技巧,帮助你优化Python代码,提升程序的运行效率和性能表现。无论是避免内存泄漏、减少函数调用次数,还是使用适当的数据结构,都能在不同场景下发挥作用,使你的Python应用更加高效稳定。
|
1天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
3天前
|
API 调度 开发者
深入理解Python异步编程:从Asyncio到实战应用
在现代软件开发中,异步编程技术已成为提升应用性能和响应速度的关键策略。本文将通过实例讲解Python中的异步编程核心库Asyncio的基本概念、关键功能以及其在Web开发中的应用。我们不仅将理论与实践结合,还将展示如何通过实际代码示例解决常见的并发问题,帮助开发者更有效地利用Python进行异步编程。
|
4天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
5天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。

热门文章

最新文章