• 应用性能监控——NewRelice


    前言

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

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

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

    New Relic 特点:

    • 可一直免费试用,当然高级版功能更加强大;
    • 非侵入式安装,无需在代码里埋点,只需简单的安装即可,大部分语言都支持;
    • 功能强大,报表丰富,让性能低下的地方无所遁形,error 也可直观的统计到,对你的应用性能了如指掌。

    注:需要FQ工具才能正常访问,不用FQ也是可以访问的,但是很慢很慢。

    简单工作原理

    RPM拥有两种基本的组件:作为应用程序插件运行的代理,以及放置在New Relic数据中心中的服务。

    • 程序插件代理:会收集性能数据,每分钟都会通过HTTPS或者HTTP协议异步地发送给RPM服务,New Relic那里会存储并处理这些数据。
    • New Relic数据中心:会完成以下的工作:数据存储、聚集、修正和可视化。我们可以通过浏览器访问性能数据。

    New Relic不提供在本地运行服务的方案,服务只运行在他们的数据中心上

    NewRelic相关产品

    主要产品:

    • APM:应用性能监控
    • Browser:浏览器监控:如果非常注重Web前端体验的话,这个是个不错的东东
    • Synthetics:合并监控:通过创建一个新的监视器来监控世界各地的网站,关键业务交易和API终端
    • Mobile:移动端监控:移动APP性能监控(iOS、Android、Titanium、Unity、tvOS)
    • Plugins:插件监控:貌似也是非常强大,比如:Nginx、Mysql、Memcached、Redis、MongoDB……
    • Infrastructure:基础设施监控:主机的网络IO、CPU、内存、磁盘、系统负载等

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

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

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

    选择java: 

     

    3、按照提示步骤进行处理,选择账号、输入应用名称、下载配置文件(里面包含license_key)、下载Java Agent:

    4、将下载的文件解压到应用服务器根目录:

    我这里是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/

    5、修改配置(可以不修改直接使用默认的)

    切换到/usr/local/tomcat/apache-tomcat-7.0.70/newrelic目录,在目录中找到newrelic.yml配置文件。主要是修改app_name,修改成自己应用名字。

    app_name: appName

    6、切换到/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.com
    Within 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是日志地址。

    7、重启tomcate服务,并查看日志

    ./catalina.sh stop
    ./catalina.sh start
    tail -f logs/newrelic_agent.log

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

    图表的简单说明

    Summary介绍:

    • Web transactions time:JVM、Mysql、Web external、Response time 整体耗时报表
    • Apdex score:apm 综合打分,满分1.0
    • Throughtput:整体吞吐量,单位分钟
    • Transactions:请求调用等,Top5
    • Error rate:错误率,如果检测到系统错误,这里会提现处理,如果达到一定错误率,会有系统报警(邮件),报表背景将会是:淡红色
    • Host:JVM 报表,每个 jvm 具体情况,比如:
    • Recent events:近期历史事件,常见的就是报警了

    Transactions介绍

    • Type:Web、Non-Web(Java/Job/SpringController等,定时任务之类的)
    • 排序
      • Most Time consuming:耗时最多的
      • Slowest average response time:响应最慢的
      • Adpex most dissatisfying:Adpex打分最不满意的
      • Highest throughput:吞吐量最高的
    • Top 5 web Transactions:耗时最多的5个web请求百分比,可以选择不同的报表展示方式
    • Transaction traces:一般是有问题的请求事件会出现在这里,点进去可以看到堆栈的东西,查询sql之类的等
      • Summary:汇总
      • Trace details:跟踪详情
      • Database queries:数据库查询

     附上 Transaction traces 3张截图:

     

     

    DataBases介绍

    • SORT BY:排序
      • Most time consuming:秏时最多的
      • Slowest query time:查询最慢的
      • Throughtput:吞吐量最大的(频率最高的)
    • MySQL overview:根据排序来展现的详细报表,仅第一个根据排序变化
      • Top database operations by time consumed:耗时最多的5个查询
      • Top database operations by query time:整体增删改查耗时
      • Top database operations by throughput:整体增删改查吞吐量

    External services介绍

    比如嵌入了第三方的API,调用时也会被记录下来,比如:吞吐量、平均响应时长等信息。

    JVMs介绍

    Service map介绍

    显示服务之间的拓扑图。

    Dependencies介绍

    显示服务之间的依赖关系,包括数据库和中间件。

    Distributed tracing介绍

    分布式调用链路

    注:只支持http请求的调用。

    引用:

  • 相关阅读:
    JAVA知识点在整理(可供面试参考)
    Spring Destroying singletons ... root of factory hierarchy 问题【已解决】
    《Spring AOP的设计和实现方式》
    java源码集合体系解析
    springcloud的一些自己想法
    部署一套单Master的K8s集群
    K8S系统学习-----Pod 容器组
    RH358学习笔记--8(使用HAProxy终止HTTPS流量和并进行负载均衡)
    Docker 资源汇总
    RH358学习笔记--8(使用Nginx配置Web服务器学习)
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/14798449.html
Copyright © 2020-2023  润新知