Node.js利用接入Skywalking实现APM监控

1:笔者应用的windows,请先自行装置启动Skywalking,下载地址:,下载实现,解压启动Skywalking后,拜访http://localhost:8080/(默认配置),到此装置启动 Skywalking 胜利。

2:Node.js利用接入,Skywalking 官网提供新的库来接入,原来的模块是 SkyAPM-nodejs ,官网要求 SkyWalking backend (OAP) 8.0+ and NodeJS >= 10. 反对已下框架和模块,更多信息查看 README.md

LibraryPlugin Name
built-in http and https modulehttp / https
Expressexpress
Axiosaxios
MySQLmysql
MySQLmysql2
PostgreSQLpg
pg-cursorpg-cursor
MongoDBmongodb
Mongoosemongoose
RabbitMQamqplib
Redisioredis

3:接入代码示例:残缺代码地址:

require('make-promises-safe')const {default: agent} = require('skywalking-backend-js');agent.start({              //援用    serviceName: 'my-service-name',    serviceInstance: 'my-service-instance-name',    // collectorAddress: 'http://localhost:8080',})var express = require('express')var app = express();var port = process.env.PORT || 3001;var routes = require('./api/routes');routes(app);app.listen(port, function() {    console.log('Server started on port: ' + port);});

4:
示例代码中定义了两个路由:

  1. http://localhost:3001/about
  2. http://localhost:3001/distanc...

运行启动,浏览器拜访你的服务路由,可多拜访几遍会多一些数据 ,而后刷新 http://localhost:8080/ ,数据可能会有提早,稍等一些[PS:如果等了很久还是没有数据,查看下你查看的工夫区间是否选对]

失常如下:

从上图能够看到:利用已接入到skywalking监控了,点击各个选项可查看各个性能,链路追踪,性能监控剖析等等,redis,mysql,http 的链路都有,能够分明的看到Node.js利用各个链路所破费的工夫,能够更好的监控排查问题。skywalking更多的性能用户自行摸索了。

后续:websocket , kafka, rpc , GraphQL 等等Node.js探针是否反对还有待探索。
skywalking-backend-js 也在打算 V0.4.0 版本了,目前曾经看到合并了几个PR了,是改Bug的内容和一些小细节,没看到新性能。期待新性能。。。。