Node.js语言接入
限制条件
使用node.js 14及以上版本。
环境准备
- 准备插件/工具:node、npm。
- 安装,命令如下:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash \. "$HOME/.nvm/nvm.sh" nvm install 18
- 环境验证,命令如下:
node -v npm -v
示例demo
使用Express框架实现掷骰子接口。
- 初始化项目,命令如下:
npm init -y
- 安装项目依赖,命令如下:
npm install express
- 编写业务代码。创建app.js文件,内容如下:
const express = require('express'); const PORT = parseInt("8080"); const app = express(); app.get('/rolldice', (req, res) => { res.send(getRandomNumber(1, 6).toString()); }); function getRandomNumber(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } app.listen(PORT, () => { console.log(`Listening for requests on http://localhost:${PORT}`); }); - 运行,命令如下:
node app.js & curl http://localhost:8080/rolldice
操作步骤
- 登录APM控制台。
- 单击左侧
,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。 - 在左侧导航栏中选择“应用监控 > 应用列表”。
- 单击“接入应用”,进入接入应用页面。
- 选择“区域”和“应用”。单击“创建应用”,弹出“创建应用”弹窗,可以具体操作参见创建应用。
- “接入方式”选择OpenTelemetry。
- “服务端语言”选择Node.js。
- 数据接入,相关参数与操作步骤如下。
表1 参数说明 参数
说明
是否必填
应用名称
应用显示的名称。一个应用代表一个逻辑单元,是一个全局概念,各个region都可以看到相同的应用信息,比如一个租户下面比较独立的功能模块可以定义为一个应用。
必填
组件名称
组件名称,代表一个组件,需要使用英文字符开头。同一个应用下,组件名称不能重复。一个组件可以包含多个环境。不能重复,如果要重复,使用instanceName区分。
必填
环境名称
环境名称,代表一个应用在一个地方的部署。一个应用程序根据配置不同可以部署多个环境,比如测试环境,现网环境。每个环境都在一个region部署,具有唯一的region属性。该参数可以为空,代表默认环境。
选填
- 非侵入式接入
- 安装依赖,命令如下:
npm install @opentelemetry/sdk-node \ @opentelemetry/api \ @opentelemetry/auto-instrumentations-node \ @opentelemetry/sdk-metrics \ @opentelemetry/sdk-trace-node
- 对接OpenTelemetry,命令如下:
export OTEL_TRACES_EXPORTER="otlp" export OTEL_EXPORTER_OTLP_PROTOCOL='grpc' export OTEL_EXPORTER_OTLP_ENDPOINT="http://**.**.**.**:4317" export OTEL_NODE_RESOURCE_DETECTORS="env,host,os" export OTEL_SERVICE_NAME="应用名称.组件名称.环境名称" export OTEL_EXPORTER_OTLP_HEADERS="Authentication=He**i0" export NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
- 启动,命令如下:
node app.js & curl http://localhost:8080/rolldice
- 在APM控制台链路追踪中查看应用的监控数据。详细操作参见指标。
- 安装依赖,命令如下:
- 非侵入式接入
参考 官方网站。
- 非侵入式接入