New Relic性能监控(一)概览
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的完整功能满足了我们各方面的需求,总体来讲是一款非常优秀的监控产品。在后续的文章中,我将分别介绍各产品的具体功能特性,以使得大家能有更深入的了解。
New Relic性能监控(一)概览的更多相关文章
- 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具
上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...
- Go 程序的性能监控与分析 pprof
你有没有考虑过,你的goroutines是如何被go的runtime系统调度的?是否尝试理解过为什么在程序中增加了并发,但并没有给它带来更好的性能?go执行跟踪程序可以帮助回答这些疑问,还有其他和其有 ...
- Android网络性能监控方案
阿里云 云原生应用研发平台EMAS 刘宝文(木睿) 背景 移动互联网时代,移动端极大部分业务都需要通过App和Server之间的数据交互来实现,所以大部分App提供的业务功能都需要使用网络请求.如果因 ...
- 应用性能监控:SkyWalking
目录 SkyWalking 简介 SkyWalking 搭建 平台后端(Backend) 平台前端(UI) Java Agent(Java 应用监控) Java Agent 下载 Java 演练项目 ...
- jvm系列(五):tomcat性能调优和性能监控(visualvm)
tomcat服务器优化 1.JDK内存优化 根据服务器物理内容情况配置相关参数优化tomcat性能.当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃.因此一般建议堆的最 ...
- spring拦截器 实现应用之性能监控
package cn.ximi.erp.web.common.interceptors; import cn.ximi.core.common.utils.string.StringUtil; imp ...
- Performance Monitor1:开始性能监控
Performance Monitor是Windows内置的一个可视化监控工具,能够在OS级别上实时记录系统资源的使用情况,通过收集和存储日志数据,在SQL Server发生异常时,能够还原系统当时的 ...
- 前端性能监控方案window.performance 调研(转)
1. 业界案例 目前前端性能监控系统大致为分两类:以GA为代表的代码监控和以webpagetest为代表的工具监控. 代码监控依托于js代码并部署到需监控的页面,手动计算时间差或者使用浏览器的的API ...
- Apache服务器性能监控
Apache服务器性能监控 1.使用自带mod_status模块监控 1)加载mod_status.so 模块 在httpd.conf中打开LoadModule status_module modul ...
随机推荐
- Vue Router:使用 props 将组件和路由解耦
在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性. 可以使用 props 将组件和路由解耦. 一 路由配置(布尔模式): impo ...
- python 列表、字典多排序问题
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/justin051/article/det ...
- Java io基础
1.什么是IO? Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒 ...
- 用jmeter监控服务器资源
jmeter可以监控服务器CPU.内存等性能参数,只需要安装一些插件,比其他方法更简单 1.下载需要的jmeter插件 如图上面两个是jmeter插件,可以再下面的链接中下载: https://jm ...
- Centos 7下Hadoop分布式集群搭建
一.关闭防火墙(直接用root用户) #关闭防火墙 sudo systemctl stop firewalld.service #关闭开机启动 sudo systemctl disable firew ...
- js转换后台接受的日期格式
var html = "--";if(data.createTime!=null&&data.createTime!=""){ Date.pro ...
- SpringBoot(二) -- SpringBoot配置
一.配置文件 SpringBoot可以使用两种类型的配置文件(文件名固定): application.properties application.yml 配置文件的作用就是来修改SpringBoot ...
- TFS版本对应
原文: MSDN Operating systems TFS can be installed on a Windows server or client operating system. TFS ...
- 如何在CentOS 7上安装Node.js和npm
Node.js是一个跨平台的JavaScript运行时环境,允许在服务器端执行JavaScript代码.Node.js主要用于后端,但也作为全栈和前端解决方案而流行. npm,Node软件包管理器的缩 ...
- python学习笔记(7): 面向对象
class Foo: #类中的函数 def bar(self): #功能阐述 print('Bar') pass def hello(self,name): print('i am %s' %name ...