使用 New Relic 监控云引擎应用的性能

LeanCloud 云引擎为应用开发者省去了服务端系统的部署和维护方面的负担,但代价是一定程度上减弱了线上环境的透明性。不少云引擎的用户希望能对线上代码的错误及性能特征有更多的了解,以便优化自己的程序。New Relic 是全球知名的应用性能监控工具,它可以告诉开发者一个应用的性能瓶颈,比如最耗时和最常用的请求、远程调用等等。

在云引擎项目中集成 New Relic 比较简单,这里以一个 Node 项目为例来说明:

  1. New Relic 注册账户并创建一个新的 APM 监控项目。
  2. 按照 New Relic 官方文档 完成以下操作:
    1. 在项目里安装 newrelic 模块:
      npm install --save newrelic
      
    2. node_modules/newrelic 目录里的 newrelic.js 复制到项目根目录,并编辑 newrelic.js 填入自己的 license_key 和一个有意义的应用名称(app_name),其中 license_key 可以在创建这个 APM 监控项目时的页面中找到。
    3. 在自己代码的第一行(通常是 server.js 的第一行)加载 newrelic 模块。
  3. 修改日志设置:
    logging: {
     level: 'info',
     filepath: 'stdout'
    }
    

    这一步很重要 。因为 New Relic 默认会在当前目录下创建日志文件,而云引擎不允许在临时目录 /tmp 之外创建本地文件,New Relic 创建日志文件失败会导致进程退出,所以需要在 newrelic.js 里让 New Relic 把日志输出到标准输出 stdout。然后,开发者可以到云引擎的 Web 控制台里看到所有的日志。

  4. 然后在程序入口文件(通常是 server.js)的第一行加上:

    require('newrelic');
    
  5. 把所有的改动 commit 并部署到云引擎,一段时间后就可以从 New Relic 控制台看到这个项目的数据了。如果遇到问题可以登录 LeanCloud 控制台 > 存储 > 云引擎 > 其它 > 日志 ,检查日志是否有错误输出。

这是 Drop 的 New Relic dashboard:
drop_-_New_Relic

使用 New Relic 监控云引擎应用的性能》上有6条评论

  1. imfun

    请问 python 下也支持吗? 最好有相关的介绍说明一下, 看 New Relic 官网上的作法好像生成不了.

    回复
      1. imfun

        你好, 好像可以了, 因为看了官方文档上说的 pip install 后, 在用 newrelic-admin generate-config LICENSE-KEY newrelic.ini 时出现的错误 (因为不是在 Unix 环境下), 后来直接把 newrelic.ini 根目录, 在 requirements.txt 中添加 newrelic, 再在 wsgi.py 中添加初始就可以了, 目前好像能正常使用呢… 还是谢谢您噢.. 我这个提问的评论可以删掉的…

        回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注