[雪峰磁针石博客]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

参考资料

相关文章
|
2天前
|
API 数据库 数据安全/隐私保护
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】Django REST framework (DRF) 是用于构建Web API的强力工具,尤其适合Django应用。本文深入讨论DRF面试常见问题,包括视图、序列化、路由、权限控制、分页过滤排序及错误处理。同时,强调了易错点如序列化器验证、权限认证配置、API版本管理、性能优化和响应格式统一,并提供实战代码示例。了解这些知识点有助于在Python面试中展现优秀的Web服务开发能力。
19 1
|
11天前
|
机器学习/深度学习 人工智能 算法
图像处理与分析:Python中的计算机视觉应用
【4月更文挑战第12天】Python在计算机视觉领域广泛应用,得益于其丰富的库(如OpenCV、Pillow、Scikit-image)和跨平台特性。图像处理基本流程包括获取、预处理、特征提取、分类识别及重建生成。示例代码展示了面部和物体检测,以及使用GAN进行图像生成。
|
2天前
|
SQL 中间件 API
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】**Flask是Python的轻量级Web框架,以其简洁API和强大扩展性受欢迎。本文深入探讨了面试中关于Flask的常见问题,包括路由、Jinja2模板、数据库操作、中间件和错误处理。同时,提到了易错点,如路由冲突、模板安全、SQL注入,以及请求上下文管理。通过实例代码展示了如何创建和管理数据库、使用表单以及处理请求。掌握这些知识将有助于在面试中展现Flask技能。**
11 1
Flask框架在Python面试中的应用与实战
|
3天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python构建简单的图像识别应用
本文将介绍如何利用Python语言及其相关库来构建一个简单但功能强大的图像识别应用。通过结合OpenCV和深度学习模型,我们将展示如何实现图像的特征提取和分类,从而实现对图像中物体的自动识别和分类。无需复杂的算法知识,只需一些基本的Python编程技巧,你也可以轻松地创建自己的图像识别应用。
|
4天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
9 1
|
5天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
9 1
|
5天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
10 1
|
6天前
|
数据挖掘 vr&ar Python
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
29 10
|
6天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
6天前
|
机器学习/深度学习 算法
scikit-learn在回归问题中的应用与优化
【4月更文挑战第17天】本文探讨了scikit-learn在回归问题中的应用,介绍了线性回归、岭回归、SVR和决策树回归等算法,并提出优化策略,包括特征选择、超参数调优、交叉验证和集成学习。通过实践案例展示如何处理房价预测问题,强调了根据问题特点选择合适方法的重要性。