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
Library | Plugin Name |
---|---|
built-in http and https module |
http / https |
Express |
express |
Axios |
axios |
MySQL |
mysql |
MySQL |
mysql2 |
PostgreSQL |
pg |
pg-cursor |
pg-cursor |
MongoDB |
mongodb |
Mongoose |
mongoose |
RabbitMQ |
amqplib |
Redis |
ioredis |
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:3001/about
- 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 的内容和一些小细节,没看到新性能。期待新性能。。。。