New Relic 是一个很强大的服务器性能监控工具,New Relic目前专注于SaaS和App性能管理业务,它支持支持agent和API传送数据,能够对部署在本地或在云中的web应用程序进行监控、故障修复、诊断、线程分析以及容量计划。

New Relic APM将你没有发现的问题暴漏出来,帮助团队减少问题解决的时间,从而集中精力写出更多的代码,而不是一直在停留在故障排除。

  • 端对端事务跟踪:跟踪一个关键事务的性能,这个事务贯穿在整个面向服务应用程序环境。
  • 代码级的可见性:深入洞察特定代码段和SQL语句对性能的影响。
  • 关键事务:标记你的最关键的事务,当响应时间、调用、错误率等这些表现不佳的时候可以迅速的发现。
  • X光会话:通过展示事务跟踪长期分析的结果,来获得对一个关键事务性能更深入的了解。

简单工作原理

RPM拥有两种基本的组件:作为应用程序插件运行的代理,以及放置在New Relic数据中心中的服务。代理会收集性能数据,每分钟都会通过HTTPS或者HTTP协议异步地发送给RPM服务,New Relic那里会存储并处理这些数据。

New Relic数据中心会完成以下的工作:数据存储、聚集、修正和可视化。我们可以通过浏览器访问性能数据。 New Relic不提供在本地运行服务的方案,服务只运行在他们的数据中心上。

安装 APM(以java监控Tomcate为例)

  1. 注册一个New Relic账号(https://newrelic.com/signup)。

  2. 登录网站选择APM(Application Performance Management,应用性能管理),选择Get Started,假如已经有了applications,就选择[+Add more],如图:

  1. 选择java 

在这里你还需要一些前置条件才能进行下面的操作:

  • 你要服务器的管理员权限
  • 你需要配置防火墙允许New Relic 代理访问网络(发送数据)。
  • 访问您的Windows Azure管理门户。
  1. 获取自己独有的license_key,如图:

点击按钮就可以看到license_key了。这个license_key每个newrelic账号是唯一的,也是Agent能成功发送数据到服务器的关键。

  1. 下载代理

  1. 将下载的文件解压到应用服务器根目录

我这里是tomcate,所以我解压到我自己的tomcate根目录/usr/local/tomcat/apache-tomcat-7.0.70下

unzip newrelic-java-3.40.0.zip -d /usr/local/tomcat/apache-tomcat-7.0.70/
  1. 修改配置(可以不修改直接使用默认的)

切换到/usr/local/tomcat/apache-tomcat-7.0.70/newrelic目录,在目录中找到newrelic.yml配置文件。license_key选项就是第4步获得的key,主要是修改app_name,修改成自己应用名字。

app_name: Demo APP
  1. 切换到/usr/local/tomcat/apache-tomcat-7.0.70/newrelic 下面运行安装命令
cd /usr/local/tomcat/apache-tomcat-7.0.70/newrelic
java -jar newrelic.jar install

我们可以看到如下提示信息:

root@iZ282d1y91zZ:/usr/local/tomcat/apache-tomcat-7.0.70/newrelic# java -jar newrelic.jar install
***** ( ( o))  New Relic Java Agent Installer***** Installing version 3.40.0 ...* Backed up start script to /usr/local/tomcat/apache-tomcat-7.0.70/bin/catalina.sh.20170721_174419* Added agent switch to start script /usr/local/tomcat/apache-tomcat-7.0.70/bin/catalina.sh* No need to create New Relic configuration file because:A config file already exists: /usr/local/tomcat/apache-tomcat-7.0.70/newrelic/newrelic.yml***** Install successful***** Next steps:
You're almost done! To see performance data for your app:1) Restart your app server
2) Exercise your app
3) Log into http://rpm.newrelic.comWithin two minutes, your app should show up, ready to monitor and troubleshoot.
If app data doesn't appear, check newrelic/logs/newrelic_agent.log for errors.

出现(***** Install successful)表示安装成功,newrelic/logs/newrelic_agent.log是日志地址。

  1. 重启tomcate服务,并查看日志
./catalina.sh stop
./catalina.sh start
tail -f logs/newrelic_agent.log

可以看到,Agent已经成功装数据发往newrelic.com的个人账号。

图表的简单说明

Web transactions time(请求的响应时间图表)

首先需要关注的是请求的响应时间图表,用这个图表可以对请求在服务器端耗时有个整体印象

从图表上可以看到,在这个时间段,请求的平均耗时是7ms,同时可以看到每个请求的java代码和数据库执行时间占据了绝大部分,还有少量的外部服务调用时间(比如第3方Oauth或者API)。另外右上角有一个0.771s的浏览器时间,这个是指用户访问网页,从请求发出,到整个页面完全加载完成(包括图片,css,js等)。

Apdex (Application Performance Index)

从这里可以看到大部分用户是否满意你的应用响应速度:

从图表可以看到,93%的用户非常满意请求响应时间,100%的用户非常满意页面加载完成的时间。我们用的指标是NewRelic默认设置的500ms和7s,你还可以自己进行调整。

Throughput 吞吐量 (每分钟的请求数)

可以看出在这半个小时的区间,平均每分钟有0.333个请求。用这个图表,通过調整时间段,了解整个应用什么时候是高峰,什么时候是低谷,方便将一些批处理,备份等任务放在访问低谷的时间段进行。还有当用户报告无法访问的时候,可以通过查看吞吐量是否有急剧下降,来判断是个例还是整体故障,来确定解决问题的优先级。免费版本的NewRelic,只能查看过去24小时的数据,升级到付费帐号,可以查看所有的历史数据。

Transactions 最耗时的请求列表

根据请求的时间和请求的次数,列出一个最耗时的请求

我们可以根据这个排列顺序,来考虑对于访问量大,同时又耗时的请求进行重点性能优化。

点击具体的请求,还可以看到请求耗时的分布情况:

从图表上可以看到这个请求,在forIndex方法上耗费了比较多的时间,另外在DispatcherServlet上也耗费了一些时间。升级到付费版本,还能查看到具体的sql语句执行情况,如果有slow query,还能显示explain的结果。

Error rate 错误率

Recent events 最近的事件

NewRelic也提供了很多监控的选项,比如ping,内存/存储警报等,可以将报警发送到邮件,或者推送到移动客户端:

对于了解服务器资源和扩容计划很有帮助。顺便说一个实际遇到的事情,发现过某台主机(我们用的云主机)的响应时间就是比其他台要慢50%以上,对比发现这台的CPU和Disk IO都比其他台要弱,后来报告给云主机服务商,通过迁移到了新的物理机解决了。

应用性能分布到各个服务器状态

这里就简单介绍一下它免费版本的少量功能,更多的功能留待大家去玩吧。最后还要提一下最喜欢的scalability report和database report,可以申请试用付费帐号来体验。

删除监控实例

官方文档: https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/remove-applications-servers

  1. 将newrelic.yml配置文件中agent_enabled改成false,或者卸载代理。
  2. 重启应用服务器

查看日志如图:

  1. 等待几分钟(10分钟),看到Application名称变成灰色

  2. 删除

Java Agent官方文档

完整的安装说明和故障排除文档在:

https://newrelic.com/docs/java/new-relic-for-java

通用的安装指南:

https://newrelic.com/docs/java/java-agent-self-installer

配置参数详解:

https://newrelic.com/docs/java/java-agent-configuration

参考文章:

https://ruby-china.org/topics/22379

http://blog.sina.com.cn/s/blog_164db169d0102weez.html

服务器性能监控之New Relic 入门教程相关推荐

  1. Jmeter工具使用-分布式架构和服务器性能监控解决方案

    Jmeter工具使用-分布式架构和服务器性能监控解决方案 参考文章: (1)Jmeter工具使用-分布式架构和服务器性能监控解决方案 (2)https://www.cnblogs.com/zhengs ...

  2. 怎么监控多台服务器资源占用率,常用的4个服务器性能监控命令

    一.top -实时监控命令 1.能够实时监控系统的运行状态,并且可以按照cpu及内存等进行排序: -h:帮助 -p:监控指定的进程,当监控多个进程是,进程ID以逗号隔开 2.top任务区命令: M:按 ...

  3. 15 分钟无门槛构建服务器性能监控系统

    服务器监控是每个互联网厂商都重视并且想要尽可能做好的事情,从数据收集.数据处理.数据可视化最终再到实时监控告警,这一系列复杂的流程可能耗费企业大量的人力和时间,以至于某些时候因为其复杂性高无法达到预期 ...

  4. 一款好用的Linux系统服务器性能监控分析工具介绍

    软件性能测试过程中经常要对服务器性能指标(比如CPU.内存.磁盘IO及网络IO等等)进行监控以分析出软件在此服务器上的性能瓶颈以便进行后续的服务器调优及软件性能优化.下面为大家介绍一款小编认为比较好用 ...

  5. 服务器性能监控及常用命令

    服务器性能监控 该内容有一部分学习至<大型网站性能优化实战>一书 性能优化的前提是发现问题,定位性能瓶颈,确定优化方向.完备的性能监控指标是前提. 服务器性能监控主要分为两个层次:应用层面 ...

  6. 服务器性能监控之性能计数器

    文章来源:http://blog.csdn.net/lhfzd2004/article/details/1722379 上一篇文章<服务器性能监控之WMI>介绍了通过远程com获取服务器性 ...

  7. 怎么进行服务器性能监控,有什么监控工具

    如何定义服务器监控 企业运行多个服务器来为其最终用户交付业务关键服务.其中包括数据库服务器.核心应用服务器.缓存服务器.web服务器等等.这些服务器的性能非常关键,因为即使其中一个服务器出现故障,也会 ...

  8. linux nmon 进程io,linux服务器性能监控-nmon(二)

    读过我之前文章的同学会发现,如果在做服务器性能监控的过程中要一个命令一个命令的敲,那显然非常的麻烦,而且不实际.监控命令只更适用于某些场景下的分析和定位,无法直接形成一些图形化的界面以便我们更直观的分 ...

  9. 云服务器 性能监控软件,云监控 - 云应用监控 - ManageEngine Applications Manager

    云监控 什么是云监控? 尽管许多组织仍然依赖于在自托管的数据中心中存储数据的本地方法,但在业务组织中采用云服务的情况已经逐渐增多.自然,这导致了一些云监控工具的出现.无论您使用的是公共.私有还是混合环 ...

最新文章

  1. Matlab与线性代数 -- 方阵的行列式
  2. 大势至电脑文件防泄密软件_有了数据防泄密软件,还会担心企业文件泄漏吗?...
  3. C语言实现红黑树(附完整源码)
  4. DevExress笔记
  5. 分区表学习一:分区表介绍
  6. python如何确定拐点_多年股市老鸟买卖操作经验——如何在波段操作确定买入点!经典...
  7. 微信小程序滚动条返回顶部
  8. C语言 数组和指针
  9. html制作dnf,dnf怎么制作img文件 时装拼合教程
  10. 第12届蓝桥杯 第七题:《砝码称重》的两种解法dfs和dp算法
  11. SQLite读写同步之WAL机制
  12. 黑苹果虚拟机安装教程
  13. 什么是智能DNS云解析?云解析如何实现智能解析效果?
  14. Graph Convolutional Tracking
  15. 让每个3D建模师都心动的:超详细人体结构构图分析
  16. JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can‘t find profile directory
  17. content root修改问题
  18. java百度上传控件_百度Bos上传文件工具类-BosUtils(java)
  19. 小白学习Linux命令
  20. 浅谈Web安全技术----RBI

热门文章

  1. Apache http设置反向代理和负载均衡
  2. 把文档所有的字体都缩小一号_科普!关于“天问一号”的所有知识,都在这里了...
  3. 无主3局域网找不到服务器,无主之地3局域网模式设置方法攻略 无主之地3局域网怎么用...
  4. micropython esp8266 红外控制小车
  5. UNICODE与 UTF-8的转换详解
  6. wegame更改计算机设备,WEGAME手机串流怎么设置 WEGAME手机串流设置教程
  7. selenium自动化测试随笔,安装selenium
  8. 洛谷-P1424-小鱼的航程
  9. 全渠道客户体验是什么?如何创建全渠道营销平台?
  10. 2022年BAT,京东,美团,滴滴等公司面试经验总结