6

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

 2 years ago
source link: https://segmentfault.com/a/1190000041024207
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

发布于 11 月 26 日

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 Namebuilt-in http and https modulehttp / httpsExpressexpressAxiosaxiosMySQLmysqlMySQLmysql2PostgreSQLpgpg-cursorpg-cursorMongoDBmongodbMongoosemongooseRabbitMQamqplibRedisioredis

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:
示例代码中定义了两个路由:

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

正常如下:

1637912085(1).jpg

1637912201(1).jpg

从上图可以看到:应用已接入到skywalking监控了,点击各个选项可查看各个功能,链路追踪,性能监控分析等等,redis,mysql,http 的链路都有,可以清楚的看到Node.js应用各个链路所花费的时间,可以更好的监控排查问题。skywalking更多的功能用户自行探索了。

后续:websocket , kafka, rpc , GraphQL 等等Node.js探针是否支持还有待探究。
skywalking-backend-js 也在计划 V0.4.0 版本了,目前已经看到合并了几个PR了,是改Bug的内容和一些小细节,没看到新功能。期待新功能。。。。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK