New Relic的代理的Node.js提供一流的,出的现成的可视性许多最流行的Node.js模块和框架。它还提供了可用于增加在自己的应用程序代码的可见性的自定义仪器的开放API。

现在,我们很高兴地宣布,New Relic的代理对Node.js的V2.0的发布。2.0版本扩展了我们通过添加新的插件式API专门设计,使其更容易添加新仪器对未仪表外的现成模块,现有的API和工具支持。它甚至可以根据您的具体应用的特殊监控需求更换或停用现有检测控制仪表。

节点剂包括仪器,用于从核心节点所有异步功能,以及许多流行的模块(Express.js中号ongoD B[REDIS等)。但是,假设你想看到New Relic的不仪器库附加的定时信息外的开箱。到现在为止,你唯一的选择是要么使用我们现有的createTracer您的应用程序代码中的API,或提交PR到我们的代理。

随着新的2.0 API,我们增加了旨在应对这些挑战的其他机制。仪表现在可以写成一种分离的,独立的模块,并且与所述试剂作为一种插件的登记。这意味着应用程序代码本身并没有被修改,和自定义的仪器可以重复使用它自己的模块,从不同项目的代理独立分布。

我们还添加了新的辅助方法,旨在使最常见类型的库更简单书写仪器的任务的API。他们现在做很多繁重的你的。从本质上讲,你告诉我们该模块的名称,并提供有关的有趣方法的一些信息,仪器和剩下的我们来做。

如何在节点代理2.0 API作品

代理提供一个高层次的API来注册不同种控制仪表的仪器(),instrumentDatastore(),instrumentWebframework()的,和instrumentMessages()。通过调用这些方法之一,你告诉代理:当使用此名称的模块中的代码是进口的(使用要求),执行该仪器的功能。

这里是注册自定义数据存储仪器的一个例子:

VAR = NewRelic的要求( 'NewRelic的')VAR仪器=要求( 'myCustomInstrumentation')newrelic.instrumentDatastore( 'myDbDriver',仪器)

被执行时,它的代理然后将下列参数传递至所述仪器功能:

  • 垫片对象
  • 将模块仪表
  • 该模块的名称

垫片对象包含用于所提供的模块上执行所述探测API方法。这里是插装数据存储区查询调用的例子:

功能instrumentMyDbDriver(垫片,myDbDriverModule,名称){//设置数据存储shim.setDatastore(“myDatastore”)的名称;//假设数据存储模块出口Client类与查询方法shim.recordQuery(myDbDriverModule.Client.prototype,“查询”,{查询:shim.FIRST,回调:shim.LAST});}

在这里,我们告诉剂:当Client.query()方法被调用,记录从第一个参数查询,当回调被调用的停止时间,这是最后一个参数。对于所有可能的方法和参数,请参阅我们的API文档在https://newrelic.github.io/node-newrelic/docs/

仪表类型

有几种不同类型的仪表:通用,数据存储,网络架构,和消息代理。每种类型使用不同的函数登记和接收不同类型的垫片的对象。

垫片对象将在所有情况下,包含适用于各类仪器仪表的通用方法,它也将包含具体的方法使用仪器的类型。

例如,数据存储区仪表垫片提供了一种用于记录的数据库操作的方法(recordQueryrecordOperation)。在内部,该垫片创建正确度量,然后将其在数据库显示在查看New Relic的APMUI。

New Relic的APM UI

类似地,web框架仪器具有用于记录中间件功能,然后将其显示在交易击穿和交易的痕迹,如下面的方法:

事务细分

分解表

最后,消息代理仪表具有用于记录消息代理的操作(生产和消费的消息)的方法。的API确保正确的事务段和指标被创建。除了故障表中,将所生成的度量标准中的事务处理消息选项卡还用于查看:

消息事务视图

消息代理API还负责使用订阅模式与消息代理时自动创建的交易。在这种情况下,每个所创建的事务对应于单个消耗消息:

交易

该消息API也有支持交叉应用程序跟踪中,当消息被用于两个不同的(仪表)的应用程序之间进行通信。

有关编写不同类型的仪器的详细信息,请参阅下面的文档和教程:

文档:https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/upgrade-nodejs-agent

数据存储:https://newrelic.github.io/node-newrelic/docs/tutorial-Datastore-Simple.html

Web框架:https://newrelic.github.io/node-newrelic/docs/tutorial-Webframework-Simple.html

消息代理:https://newrelic.github.io/node-newrelic/docs/tutorial-Messaging-Simple.html

通用:https://newrelic.github.io/node-newrelic/docs/tutorial-Instrumentation-Basics.html

概述:https://newrelic.github.io/node-newrelic/docs/

我们所有的数据存储和网络架构控制仪表的现在使用新的节点代理2.0 API。我们还增加了amqplib模块(客户端的仪器为的RabbitMQ使用新的API消息代理)。所有这些都可以被用作参考。

您的应用程序更好的理解

在New Relic的节点代理2.0扩展与设计,使其更容易添加新仪器的模块,而无需添加自定义代码插件式API我们的API和工具支持。使用2.0版来测试您的自定义的框架将导致更深刻的见解和增强应用程序的行为的理解。

如果您对这些改进意见或建议,请获得在New Relic的论坛触摸。我们很想听到您的声音!

詹姆斯是在新文物的APM组织与节点,红宝石和Python代理商负责一个产品经理。他已经在IBM加速器支持的启动和担任高级工程和工程管理职务技术启动的企业家。詹姆斯有更好的创造工具和服务,使软件开发人员的生活和IT专业人士的热情。通过查看帖子

以书面New Relic的博客人气?亚搏体育登入网给我们一个间距