利用 NewRelic 以非介入方式监控 Nodejs 服务
NewRelic 是一个数据监控平台,该平台提供系统(Windows、Linux、Docker)、代码(PHP、Nodejs、Python等)的监控服务,相关监控探针全部开源(所以平台本身类似于一个数据集中管控平台)。
不过比较可惜的是,他们没有提供私有部署服务,但因为 NewRelic 有在欧盟提供服务的能力,故隐私方面无需过多担心。
NewRelic 提供免费的基本计划,免费计划对于个人甚至中小型企业而言可以说是十分豪华的,当然其也与 Github 合作,所有拥有教育认证的 Github 账户均可以申请开通教育版本计划(说是价值300$一个月,且没有规定最长使用时间)。
本文演示 Nodejs 代码接入,如果你使用的是 Vercel 的 Serverless,则无需看本文,因 Vercel 有官方的 NewRelic 插件,鼠标点一下就好。
Ⅰ 项目配置
点击 “Add data”,选择要监控项目的语言;我这里是选择的 Nodejs,不同语言的安装方式都差不多,都比较简单。
选择插件安装方式,我这里是选择的使用包管理器安装。
给项目取一个好听的名字。
安装依赖(在项目目录下安装)。
将下面的代码下载下来塞到项目文件夹中,注意文件的扩展名。(这段代码中包含账户API密钥,一定要防止泄露!!!)
运行探针程序:
如我原来的项目入口文件是”main.js”,那我就需要运行:
1 | node -r newrelic main.js |
这个不难理解,就是原来直接运行 node main,而现在需要运行上面那段代码, newrelic.js 起到了类似于一个中间商的作用。
如果你第一次在服务器上配置程序监控,还需要同时配置系统探针。
系统探针支持 Windows\Linux以及Docker,在该页面会有详细的安装教程,就比如 Linux,只需要运行一行命令就可以。
同样,不要泄露这段指令,这段指令中也有账户密钥。
运行代码,等待大约 15 分钟左右,就可以安装成功了。
之后点击下一步开始安装检查
全绿之后点击”See your data”就可以看到所获取的数据了。
Ⅱ 数据查看
这是服务器探针的数据,应用监控的数据更加精准,可以精确到数据库查询时间以及函数运行时间。
抛出的错误也可以实时返回给控制台,方便对错误进行分析。
利用 NewRelic 以非介入方式监控 Nodejs 服务