新遗物节点.js代理为许多最受欢迎的节点和框架提供一流的,开箱即用的可见性。它还为自定义仪器提供开放式API,可用于增强您自己的应用程序代码中的可见性。

现在我们很高兴地宣布为Node.js v2.0的新遗物代理发布。2.0发布通过添加专门设计的新插件式API,扩展了我们现有的API和仪器支持,该API专门设计用于为不禁用框中的模块添加新仪器。它甚至可以根据特定应用程序的特定监视需求替换或禁用我们现有的仪器。

节点代理包括来自节点核心的所有异步功能的仪器,以及许多流行模块(Express.js.mongo.D BR.edis., 等等。)。但假设您希望看到新遗物的库的其他时序信息,即新遗物而非禁用框。直到现在你唯一的选择是使用我们现有的创作者应用程序代码中的API,或向我们的代理提交PR。

通过新的2.0 API,我们添加了旨在解决这些挑战的额外机制。仪器现在可以作为隔离的,单独的模块写成,并将代理商注册为一种插件。这意味着不必修改应用程序代码本身,并且可以将自定义仪器重用为自己的模块,从不同项目中独立地分发。

我们还为API添加了新的帮助方法,该方法旨在为最常见的库写入仪器的任务,甚至更简单。他们现在为你做了很多沉重的举重。基本上,您告诉我们模块的名称,并提供有关仪器的一些有关乐器的信息 - 我们休息。

节点代理2.0 API如何工作

该代理提供高级API以注册不同种类的仪器(),instrumentDataStore(),instrumentWebFrameWork()和仪器()。通过调用其中一个方法,您正在讲述代理:当代码中导入具有此名称的模块时(使用要求),执行此仪器功能。

以下是注册自定义数据存储仪器的示例:

var newrelic =要求('newrelic')var intrics = required('mycustomirmstrumentation')newrelic.instrumentdataStore('MyDbdriver',仪器)

然后,代理在执行时将以下参数传递给仪器函数:

  • 垫片
  • 要被录制的模块
  • 模块的名称

Shim对象包含用于在提供的模块上执行仪器的API方法。以下是授权数据存储查询调用的示例:

函数internicermydbdriver(垫片,mydbdrivermodule,name){//设置数据存储垫片的名称.SetDataStore('mydataStore');//假设数据存储模块将包含查询方法Shim.RecordQuery(MyDBdriverModule.client.Prototype,'查询',{查询:Shim.first,Callback:Shim.last});}

在这里我们正在讲述代理:当调用client.query()方法时,从第一个参数记录查询,并在调用回调时停止定时,这是最后一个参数。有关所有可能的方法和参数,请参阅我们的API文档https://newrelic.github.io/node-newrelic/docs/

仪器类型

有一些不同类型的仪器:通用,数据存储,Web框架和消息代理。每种类型都使用不同的函数注册并接收不同类型的垫片对象。

垫片对象在所有情况下都包含适用于所有类型的仪器的通用方法,它还将包含特定于仪器类型的方法。

例如,数据存储仪器垫片提供了录制数据库操作的方法(recordquery.记录)。在内部,垫片创建了正确的度量标准,然后在数据库视图中显示新遗物APMUi。

新遗物APM UI

同样,Web框架仪器具有用于记录中间件函数的方法,然后在事务崩溃和事务迹线中显示,如下所示:

交易细分

崩溃表

最后,消息代理仪器具有用于录制消息代理操作(生成和消费消息)的方法。API可确保创建了正确的事务段和指标。除了击穿表外,还在事务视图中的“消息”选项卡中使用生成的指标:

消息事务视图

消息代理API也负责在使用具有消息代理时自动创建事务。在这种情况下,每个创建的事务对应于单个消耗的消息:

交易

消息传递API也有支持交叉应用追踪,当消息用于在两个不同(instrumented)应用程序之间进行通信时。

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

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

数据存储: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/

我们所有的数据存储和Web框架仪器现在都使用新的节点代理2.0 API。我们还添加了AMQPLIB模块的仪器(客户端rabbitmq.消息代理)使用新API。所有这些都可以用作参考。

更好地了解您的应用程序

新的遗物节点代理2.0扩展了我们的API和仪器支持,使用插件式API旨在使更轻松地为模块添加新仪器,而无需添加自定义代码。使用2.0释放到仪器您的自定义框架将导致更深入的见解和提高对申请行为的理解。

如果您有关于这些改进的反馈或建议,请在新的遗物论坛上取得联系。我们很想听到您的声音!

James是新的遗物APM组织中的产品经理,负责节点,Ruby和Python代理。他是一家技术启动企业家,用于加速器支持的启动,并在IBM举行高级工程和工程管理职位。詹姆斯对创建工具和服务的热情,使软件开发人员和IT专业人员的生活更好。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网送我们一个球场!!