前提条件
完成vpce接入。
接入步骤
1.引入相关依赖。
npm install --save @opentelemetry/api
npm install --save @opentelemetry/auto-instrumentations-node
npm install --save @opentelemetry/sdk-node
2.查看接入点信息。
应用列表的接入指引会根据您所在资源池提供“通过 HTTP 上报数据”和“通过 gRPC 上报数据”的ENDPOINT(天翼云vpc网络接入点)、鉴权TOKEN信息。
3.server 端上报示例。
- 请将url和token替换成第2步中获取的接入点信息。
编写以下 server 端代码,保存为 nodejs-demo-server-otel.js 文件。
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
console.log('received request')
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`server running at http://localhost:${port}`)
})
运行 server 端代码(Mac/Linux 系统)。
export OTEL_TRACES_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_ENDPOINT=<url>export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_HEADERS="x-ctg-authorization=<token>"
export OTEL_SERVICE_NAME=nodejs-demo-server-otel
export NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
node ./nodejs-demo-server-otel.js
运行 server 端代码(Windows 系统、PowerShell)。
$env:OTEL_TRACES_EXPORTER="otlp"
$env:OTEL_EXPORTER_OTLP_ENDPOINT="<url>"
$env:OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
$env:OTEL_EXPORTER_OTLP_HEADERS="x-ctg-authorization=<token>"
$env:OTEL_SERVICE_NAME="nodejs-demo-server-otel"
$env:NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
node ./nodejs-demo-server-otel.js
4.client端上报示例。
编写以下 client 端代码,保存为 nodejs-demo-client-otel.js 文件。
import('node-fetch').then(async ({ default: fetch }) => {
const response = await fetch('http://localhost:3000/')
const data = await response.text()
console.log(data)
})
运行 client 端代码。
node ./nodejs-demo-client-otel.js
5.通过以上步骤即可在控制台查看接入的Node.js应用。