NewRelic性能监控(一)概述2018-04-12琅琊学者本系列文章基于公司使用NewRelic的经验。把自己在工作中学到的知识分享给大家,希望能帮助到有需要的朋友。越来越多的软件产品作为服务发布。当应用程序启动时,我们希望能够对产品进行持续监控。在客户发现问题之前,我们可以感知系统的运行状态、健康状态和性能,从而快速响应系统故障,为客户提供持续的优质服务。NewRelic的产品为这个问题提供了完整的解决方案。NewRelic提供端到端的监控能力,包括从前端页面性能到后台服务器响应速度的非常详细的监控数据。NewRelic的监控平台由NewRelic的监控产品组成,涵盖了Web产品的整个技术栈。下图显示了它的产品构成。图1:NewRelic的产品构成NewRelic监控类别浏览器端监控(CustomerExperience)浏览器端监控收集被监控产品在用户使用过程中产生的各种数据,如页面访问数据、页面加载性能、页面渲染速度和更多的。在此类别中,NewRelic提供三个组件。NewRelicBrowser面向产品终端用户,在前端采集软件产品的用户体验数据,并提供会话跟踪、JavaScript错误捕获、浏览器类型检测、用户地理信息收集等能力,让我们更深入了解产品在Web端的表现。NewRelicSynthetics一般用于测试环境。本产品使用NewRelic分布在不同地理位置的服务器,通过定制的页面访问和检测代码来测试产品在不同地区的性能,以发现问题。NewRelicMobile的移动端产品提供手机APP使用监控数据。服务器端监控(APM)服务器端监控用于收集服务器端Web应用程序的性能数据。该数据可以与客户数据相关联,从而可以分析完整的交易性能。其原理是使用插入服务器程序的代理来收集数据,并将其汇集到NewRelic遍布全球的数据中心。目前支持多达七种编程语言,包括uby、Java、Node.js、PHP、.NET、Python、Go等,涵盖了市面上绝大部分的Web应用。基础设施监控(Infrastructure)基础设施监控是一个比较新的产品,它实际上是之前ServerMonitor的升级换代产品。本产品使用运行在服务器上的监控进程,定期收集系统性能数据,并上报给NewRelic服务器。收集的数据非常详细,包括CPU使用率、磁盘IO和使用率、网络吞吐量、活跃进程及其各自的CPU使用率等。NewRelic的数据分析功能统一的数据分析平台(Insight)在所有数据之上,NewRelic提供统一的数据分析平台。用户可以利用该平台综合分析前端、服务器端、基础设施端的数据,定位系统瓶颈,排查错误。平台还提供了自己的查询语言NRQL,支持自定义网页展示组件,达到数据可视化的目的,让用户更直观的了解被监控产品的状态。数据整合(Integration)NewRelic支持自定义数据的采集,允许用户添加自己的属性并用于数据分析。同时,NewRelic还提供与AWS、MSAzure等云平台的数据集成能力。用户可以在统一的平台上进行多维度的数据分析,寻找有价值的信息。DashboardUI:NewRelic提供了简单易用的DashboardUI,可以很好的展示所有的监控数据,用户可以非常直观的查看各种性能曲线。RESTAPINewRelic提供了完善的API帮助客户查询和添加数据,使得平台对运维人员非常友好。总结在我们的使用过程中,NewRelic的完备功能满足了我们各方面的需求。总体来说是一款非常不错的监控产品。在后续的文章中,我会介绍每个产品具体的功能特点,让大家有更深入的了解。
