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:8080/ ,資料可能會有延遲,稍等一些[PS:如果等了很久還是沒有資料,檢查下你檢視的時間區間是否選對]
正常如下:
從上圖可以看到:應用已接入到skywalking
監控了,點選各個選項可檢視各個功能,鏈路追蹤,效能監控分析等等,redis,mysql,http
的鏈路都有,可以清楚的看到Node.js
應用各個鏈路所花費的時間,可以更好的監控排查問題。skywalking
更多的功能使用者自行探索了。
後續:websocket , kafka, rpc , GraphQL
等等Node.js探針
是否支援還有待探究。skywalking-backend-js
也在計劃 V0.4.0
版本了,目前已經看到合併了幾個PR了,是改Bug的內容和一些小細節,沒看到新功能。期待新功能。。。。