前提条件
获取接入点信息。
- 登录链路追踪TAS控制台。
- 在左侧导航栏单击「 链路配置 」,然后在右侧页面单击「 接入点信息 」页签。
- 打开显示Token开关。
- 在客户端采集工具区域单击 OpenTelemetry 。在下方表格的相关信息列中,获取接入点信息。
接入步骤
-
引入依赖包。
npm install --save @opentelemetry/api npm install --save @opentelemetry/auto-instrumentations-node npm install --save @opentelemetry/sdk-node
-
初始化node.js Provider。
const opentelemetry = require('@opentelemetry/sdk-node'); const { Resource } = require('@opentelemetry/resources'); const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions'); const { getNodeAutoInstrumentations, } = require('@opentelemetry/auto-instrumentations-node'); const { OTLPTraceExporter, } = require('@opentelemetry/exporter-trace-otlp-proto'); const { OTLPMetricExporter, } = require('@opentelemetry/exporter-metrics-otlp-proto'); const { PeriodicExportingMetricReader } = require('@opentelemetry/sdk-metrics'); const { diag, DiagConsoleLogger, DiagLogLevel } = require('@opentelemetry/api'); // 打印日志 diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO); const resource = new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: 'nodejs-demo', // 在这里设置您的服务名称 }); const sdk = new opentelemetry.NodeSDK({ resource: resource, // 添加resource配置 traceExporter: new OTLPTraceExporter({ url: 'endpoint', // 通过otel http 方式上报的地址 headers: {'x-ctg-authorization': 'token'},//您的鉴权token }), instrumentations: [getNodeAutoInstrumentations()], }); sdk.start();
-
client上报demo。
// 引入OpenTelemetry SDK和自动instrumentation require('./tracing'); // 确保在代码最顶部引入 const fetch = require('node-fetch'); async function makeRequest() { const response = await fetch('http://localhost:3001/test'); const data = await response.text(); console.log(data); } makeRequest();
-
服务端上报demo。
// 引入OpenTelemetry SDK和自动instrumentation require('./tracing'); // 确保在代码最顶部引入 const express = require('express'); const app = express(); const port = 3001; app.get('/test', (req, res) => { res.send('Hello from the server!'); }); app.listen(port, () => { console.log(`Server listening at http://localhost:${port}`); });
-
通过上面步骤就可以在控制台查看node.js产生的链路数据了。更详细的接入demo请参考https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/examples。
在控制台查看Trace
在链路追踪控制台的「 应用列表 」页面选择目标应用,查看链路数据。