监控简介
监视工具捕获,分析和显示Web应用程序执行信息。每个应用程序在Web堆栈的所有层都可能出现问题。监控工具通过展示帮助开发人员和运营团队响应并修复问题。
捕获和分析有关生产环境的数据对于主动处理Web应用程序的稳定性,性能和错误至关重要。
监视和日志记录的目的非常相似,它们有助于诊断应用程序的问题并帮助调试。主要差异为日志基于事件触发,而监视是被动的背景数据集合。
例如发生错误时,通过异常处理程序中的代码显式记录该事件。同时,监视代理程序对代码进行检测,并且不仅收集有关已记录异常的数据,还收集有关函数和方法性能的数据。
操作系统和网络的监控关注: CPU、内存和磁盘利用率,网络带宽和延迟
应用程序级别监视包含几个方面。 基于应用程序是重读,重写还是受到快速波动的影响而有所不同。涉及应用程序警告和错误(500级HTTP错误)、应用代码性能、模板渲染时间、浏览器渲染应用程序的时间、数据库查询性能等。
开源监控项目
错误跟踪
最初只是一个Python监控项目,但现在可以用于任何编程语言。
图片.png
度量
是一个node.js网络守护程序,它监听指标并聚合它们以便转移到另一服务(如Graphite)。
存储时间序列数据,并通过Django Web应用程序在图形中显示它们。
图片.png
是一个用Ruby编写的开源监控框架,但适用于任何编程语言Web应用程序。
Vimeo的Graph Explorer是一个基于Graphite的仪表板,具有附加功能和平滑的设计。
基于客户端插件的监控系统,可以将监控流量发送到Munin节点,在那里可以分析和可视化数据。请注意,此项目是用Perl编写的,因此必须在收集数据的节点上安装Perl 5。
用户监控
测量来自最终用户浏览器的Web应用程序的性能,并将该数据发送回服务器以进行收集。