以OpenTelemetry方式接入 在监控Node.js应用之前,您需要通过客户端将应用数据上报至APM服务端。本文介绍了如何通过OpenTelemetry将Node.js Express应用接入APM。 前提条件 完成vpce接入。 接入步骤 1.引入相关依赖。 plaintext npm install save @opentelemetry/api npm install save @opentelemetry/autoinstrumentationsnode npm install save @opentelemetry/sdknode 2.查看接入点信息。 应用列表的接入指引会根据您所在资源池提供“通过 HTTP 上报数据”和“通过 gRPC 上报数据”的ENDPOINT(天翼云vpc网络接入点)、鉴权TOKEN信息。 3.server 端上报示例。 请将url和token替换成第2步中获取的接入点信息。 编写以下 server 端代码,保存为 nodejsdemoserverotel.js 文件。 plaintext 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 }) 运行 server 端代码(Mac/Linux 系统)。 plaintext export OTELTRACESEXPORTERotlp export OTELEXPORTEROTLPENDPOINT export OTELEXPORTEROTLPPROTOCOLgrpc export OTELEXPORTEROTLPHEADERS"xctgauthorization " export OTELSERVICENAMEnodejsdemoserverotel export NODEOPTIONS"require @opentelemetry/autoinstrumentationsnode/register" node ./nodejsdemoserverotel.js 运行 server 端代码(Windows 系统、PowerShell)。 plaintext $env:OTELTRACESEXPORTER"otlp" $env:OTELEXPORTEROTLPENDPOINT" " $env:OTELEXPORTEROTLPPROTOCOL"grpc" $env:OTELEXPORTEROTLPHEADERS"xctgauthorization " $env:OTELSERVICENAME"nodejsdemoserverotel" $env:NODEOPTIONS"require @opentelemetry/autoinstrumentationsnode/register" node ./nodejsdemoserverotel.js 4.client端上报示例。 编写以下 client 端代码,保存为 nodejsdemoclientotel.js 文件。 plaintext import('nodefetch').then(async ({ default: fetch }) > { const response await fetch(' const data await response.text() console.log(data) }) 运行 client 端代码。 plaintext node ./nodejsdemoclientotel.js 5.通过以上步骤即可在控制台查看接入的Node.js应用。