通過SkyWalking上報Node.js應用數(shù)據(jù)
通過SkyWalking為應用埋點并上報鏈路數(shù)據(jù)至可觀測鏈路 OpenTelemetry 版后,可觀測鏈路 OpenTelemetry 版即可開始監(jiān)控應用,您可以查看應用拓撲、調(diào)用鏈路、異常事務、慢事務和SQL分析等一系列監(jiān)控數(shù)據(jù)。本文介紹如何使用skywalking-backend-js進行自動埋點并上報應用數(shù)據(jù)。
前提條件
新版控制臺
登錄可觀測鏈路 OpenTelemetry 版控制臺,在左側(cè)導航欄單擊接入中心。
在開源框架區(qū)域單擊SkyWalking卡片。
在彈出的SkyWalking面板中選擇數(shù)據(jù)需要上報的地域。
說明初次接入的地域?qū)詣舆M行資源初始化。
選擇連接方式,然后復制接入點信息。
若您的服務部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內(nèi)網(wǎng)方式,否則選擇公網(wǎng)方式。
舊版控制臺
在左側(cè)導航欄單擊集群配置,然后在右側(cè)頁面單擊接入點信息頁簽。
在頁面頂部選擇需要接入的地域,然后在集群信息區(qū)域打開顯示Token開關(guān)。
在客戶端采集工具區(qū)域單擊SkyWalking。
在相關(guān)信息列中,獲取接入點信息。
說明如果應用部署于阿里云生產(chǎn)環(huán)境,則選擇阿里云VPC網(wǎng)絡接入點,否則選擇公網(wǎng)接入點。
背景信息
SkyWalking是一款廣受歡迎的國產(chǎn)APM(Application Performance Monitoring,應用性能監(jiān)控)產(chǎn)品,主要針對微服務、Cloud Native和容器化(Docker、Kubernetes、Mesos)架構(gòu)的應用。SkyWalking的核心是一個分布式追蹤系統(tǒng)。
Skywalking-backend-js是SkyWalking的Node.js Agent官方庫,可以通過接入skywalking-backend-js實現(xiàn)對Node.js應用的監(jiān)控,skywalking-backend-js支持MySQL、Redis、RabbitMQ等多種第三方庫的自動埋點。
SkyAPM-nodejs是舊版的官方庫,已棄用,請使用最新的官方庫skywalking-backend-js監(jiān)控Node.js應用。
庫 | 插件名 |
built-in http and https module | http / https |
express | |
axios | |
mysql | |
mysql2 | |
pg | |
pg-cursor | |
mongodb | |
mongoose | |
amqplib | |
ioredis | |
aws-sdk | |
aws-sdk | |
aws-sdk | |
aws-sdk |
示例Demo
示例Demo倉庫地址:SkyWalking Demo
用SkyWalking為Node.js應用埋點
執(zhí)行以下命令安裝skywalking-nodejs版Agent探針。
npm install --save skywalking-backend-js
項目引入Skywalking-NodeJS Agent。
const {default: agent} = require("skywalking-backend-js"); agent.start({})
配置Agent參數(shù)。
SkyWalking的Node.js版Agent支持硬編碼和環(huán)境變量兩種參數(shù)配置方式。
硬編碼
agent.start({ serviceName: <your-service-name>, // 服務名稱,標識應用 serviceInstance: <your-service-instance-name>, // 服務實例名稱 collectorAddress: <collector-backend-address>, // 數(shù)據(jù)上報collector接入點地址 authorization: <collector-token> // 接入點token });
環(huán)境變量配置參數(shù)
# <endpoint>: 接入點地址;<token>: 接入點鑒權(quán)token;<service-name>: 應用名稱。 export SW_AGENT_COLLECTOR_BACKEND_SERVICES=<endpoint> export SW_AGENT_AUTHENTICATION=<token> export SW_AGENT_NAME=<service-name>
重新啟動應用。