You need to enable JavaScript to run this app.
文档中心
应用性能监控全链路版

应用性能监控全链路版

复制全文
下载 pdf
接入指南
Nodejs 应用接入
复制全文
下载 pdf
Nodejs 应用接入
Nodejs应用在不同场景下有不同的接入方式,本文介绍Nodejs应用通过OpenTelemetry接入的详细操作,接入后可以实现自动收集Trace信息、自动生成Metric指标、以及调用链检索、日志检索等功能。
通过OpenTelemetry接入
OpenTelemetry是CNCF的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方vendor无关的服务。
如果您的应用已经接入了OpenTelemetry的SDK,APMPlus服务端可以接收OpenTelemetry上报的数据。接入APMPlus后,您将获得RED指标生成能力、Trace多维检索、单链路检索、拓扑生成等多项能力。
说明
如果您需要隔离生产和测试数据,请参见将生产和测试数据隔离
使用限制
  • APMPlus采用Prometheus作为OpenTelemetry Metrics的存储,支持promql对metrics进行查询,具体应用请参见自定义看板报警管理
  • OpenTelemetry Metrics转换为Prometheus Metrics时,存在一定限制:
  • 不支持聚合方式为delta的数据。请不要修改SDK侧的默认聚合配置,保证SDK侧数据的聚合方式为cumulative。
  • 工作区拥有独立的数据上报凭证,如需使用工作区进行数据管理和数据隔离,请确保 apmplus-opentelemetry-collector 组件已经升级至 v3.1.0 及以上版本。
自动接入
APMPlus OpenTelemetry Collector是APMPlus基于OpenTelemetry Collector二次开发的数据采集器,遵守Apache2.0协议,支持采集OpenTelemetry监控数据,同时支持采集Prometheus指标、应用监控数据和K8s资源指标。
  1. 安装 APM OpenTelemetry Collector。
  • 通过 VKE 集群组件中心,白屏安装 apmplus-opentelemetry-collector 组件。前往 VKE 集群界面,选择 组件管理 -> 监控,单击 apmplus-opentelemetry-collector 组件右上角...中的安装,完成 Apmplus OpenTelemetry Collector 的部署和管理。
  1. 在服务的k8s deployment配置中增加instrumentation.apmplus.volcengine.com/inject-nodejsinstrumentation.apmplus.volcengine.com/workspace注解。
  • VKE 白屏化设置如图所示:
  • 代码示例如下所示:
  • apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: node-demo
    labels:
    app: node-demo
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: node-demo
    template:
    metadata:
    labels:
    app: node-demo
    annotations:
    instrumentation.apmplus.volcengine.com/inject-nodejs: 'true' # 开启 APMPlus 观测注入
    instrumentation.apmplus.volcengine.com/workspace: default # 指定服务所属工作区
    spec:
    containers:
    - name: node-demo
    image: node-demo:latest
    imagePullPolicy: Always
    env:
    - name: CONTAINER_RUNTIME
    value: "k8s"
  1. 重新启动应用。
Opentelemetry SDK 接入
采用社区提供的 Opentelemetry Node.js SDK 自动埋点的方式上报数据,可以参考社区提供的 接入文档
通过 opentelemetry 自动埋点 完成埋点上报
说明
Opentelemetry Node.js 官方文档相关介绍参考:getting-started
  1. 安装依赖包。
npm install --save @opentelemetry/api
npm install --save @opentelemetry/auto-instrumentations-node
  1. 设置环境变量并通过NODE_OPTIONS和--require机制引入插桩脚本
说明
不同工作区对应的 app_key 各不相同,获取方法参见:如何获取应用性能监控的认证信息 AppKey?
# your-app-key填写在APMPlus平台侧接入中心中显示的应用App key。your-service-name填写您预期的服务名
# OTEL_EXPORTER_OTLP_ENDPOINT根据接入region不同调整。
# 若通过公网接入,OTEL_EXPORTER_OTLP_ENDPOINT 使用 http://apmplus-cn-beijing.volces.com:4317。
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_METRICS_EXPORTER="otlp"
export OTEL_LOGS_EXPORTER="otlp"
export OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
export OTEL_EXPORTER_OTLP_ENDPOINT="http://apmplus-cn-beijing.ivolces.com:4317"
export OTEL_EXPORTER_OTLP_HEADERS=X-ByteAPM-AppKey="your-app-key"
export OTEL_SERVICE_NAME="your-service-name"
export OTEL_NODE_RESOURCE_DETECTORS="env,host,os"
export OTEL_PROPAGATORS="tracecontext,baggage"
export OTEL_METRIC_EXPORT_INTERVAL=30000
export NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
node app.js
最近更新时间:2026.07.01 15:15:00
这个页面对您有帮助吗?
有用
有用
无用
无用