New Relic性能监控(一)概览
2018-04-12 琅琊书生本系列文章基于公司使用New Relic的经验,鉴于国内较少有这方面的文章,因此把我工作中了解到的知识分享给大家,希望可以给需要的朋友带来帮助。
越来越多的软件产品正在以服务的方式发布。当应用上线后,我们希望对产品有持续的监控,在客户发现问题之前,能够感知系统的运行状态,健康状况,性能表现,以便快速应对系统故障,为客户提供持续不断的优质服务。New Relic的产品为解决这一问题提供了完整的解决方案。New Relic提供了端到端的监控能力,从前端页面性能,到后台服务端的响应速度,都有非常详尽的监控数据。
New Relic的监控平台组成
New Relic的监控产品覆盖了Web产品的整个技术栈。下图为其产品组成。
图 1: New Relic的产品组成
New Relic监控类别
-
浏览器端监控(Customer Experience)
浏览器端监控收集被监控产品在用户的使用过程中产生的各种数据,如页面访问数据,页面加载性能,页面渲染速度等等。在这一类别中,New Relic提供了三个组件。
- New Relic Browser
面向产品最终用户,收集软件产品在前端的用户体验数据,并且提供了会话跟踪,JavaScript错误捕获,浏览器类型检测,用户地理信息收集等能力,使得我们能够详细了解产品在Web端的表现。
- New Relic Synthetics
一般用在测试环境。该产品利用New Relic分布在不同地理位置的服务器,通过自定义的页面访问和检测代码,测试产品在不同地区访问的表现,以便发现问题。
- New Relic Mobile
手机端产品,提供了手机APP使用监控数据。
- New Relic Browser
-
服务端监控(APM)
服务端监控是用来收集Web应用在服务器端的性能数据。该数据和客户端数据能够关联起来,使得分析完整的事物性能成为可能。其原理是利用插入到服务端程序的代理,来收集数据并汇集到New Relic位于全球各地的数据中心。目前支持多达七种编程语言,包括uby,Java, Node.js,PHP,.NET,Python, Go等,很好的覆盖了市面上大部分的Web应用。
-
基础架构监控(Infrastructure)
基础架构监控是一个比较新的产品,其实际上是此前的服务器监控(Server Monitor)的升级替代产品。该产品利用运行在服务器上的监控进程,定期收集系统的性能数据,并汇报至New Relic服务器。所收集的数据极为详尽,包括CPU使用,磁盘IO及使用率,网络吞吐量,活动进程以及各自的CPU占用率等等。
New Relic的数据分析功能
-
统一的数据分析平台(Insight)
在所有的数据之上,New Relic提供了一个统一的数据分析平台。用户可以利用该平台综合分析来自前端,服务端和基础架构端的数据,定位系统瓶颈,排查错误。该平台还提供了自己的查询语言NRQL,并且支持自定义的网页展示组件,达到数据可视化的目的,让用户能更直观的了解被监控产品的状况。
-
数据集成(Integration)
New Relic支持收集自定义的数据,使得用户可以添加自己的属性并用于数据分析之中。同时,New Relic也提供了与云平台的数据集成能力,比如AWS,MS Azure等。用户可以在统一的平台里从多个维度分析数据,寻找有价值的信息。
-
仪表盘(Dashboard UI)
New Relic提供了易用的Dashboard UI,使得所有的监控数据能够很好的展示出来,用户能够非常直观的查看各种性能曲线。
-
REST API
New Relic提供了完整的API帮助客户查询和添加数据,使得该平台对运维人员非常友好。
总结
在我们使用过程中,New Relic的完整功能满足了我们各方面的需求,总体来讲是一款非常优秀的监控产品。在后续的文章中,我将分别介绍各产品的具体功能特性,以使得大家能有更深入的了解。