You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为基于OpenTelemetry的Node.js容器应用启用Application Insights实时指标

启用Azure Monitor实时指标的步骤(Node.js + OpenTelemetry)

1. 确认依赖包版本

确保安装兼容的OpenTelemetry相关包,优先使用最新稳定版:

npm install @azure/monitor-opentelemetry-exporter @opentelemetry/sdk-metrics @opentelemetry/resources @opentelemetry/semantic-conventions

2. 配置指标采集与导出

在OpenTelemetry初始化代码中添加指标SDK配置,将数据导出到Azure Monitor:

const { AzureMonitorMetricExporter } = require("@azure/monitor-opentelemetry-exporter");
const { MeterProvider } = require("@opentelemetry/sdk-metrics");
const { Resource } = require("@opentelemetry/resources");
const { SEMRESATTRS_SERVICE_NAME } = require("@opentelemetry/semantic-conventions");

// 配置资源标识,必须指定服务名称
const resource = new Resource({
  [SEMRESATTRS_SERVICE_NAME]: "your-service-name", // 替换为你的实际服务名
});

// 初始化Azure Monitor指标导出器
const metricExporter = new AzureMonitorMetricExporter({
  connectionString: "YOUR_AZURE_MONITOR_CONNECTION_STRING", // 替换为你的连接字符串
});

// 创建指标提供者并绑定导出器
const meterProvider = new MeterProvider({ resource });
meterProvider.addMetricReader({
  exporter: metricExporter,
  exportIntervalMillis: 15000, // 实时指标建议设置15-60秒的导出间隔
});

// 设置全局指标提供者
require("@opentelemetry/api").metrics.setGlobalMeterProvider(meterProvider);

3. 启用内置指标采集

添加Node.js instrumentation包来自动采集系统和运行时指标:

npm install @opentelemetry/instrumentation-node

在初始化代码中启用内置工具:

const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const { HttpInstrumentation } = require("@opentelemetry/instrumentation-http");

// 原有追踪配置保持不变
const tracerProvider = new NodeTracerProvider({ resource });
tracerProvider.register();

// 启用HTTP等内置指标采集工具
registerInstrumentations({
  instrumentations: [
    new HttpInstrumentation(),
    // 可按需添加express、mongodb等其他工具包
  ],
});

4. 自定义业务指标(可选)

若需采集业务相关指标,可通过全局Meter创建计数器、仪表盘等:

const { metrics } = require("@opentelemetry/api");

const meter = metrics.getMeter("app-business-metrics");
const requestCounter = meter.createCounter("app.requests.total", {
  description: "Total number of requests received",
});

// 在请求处理逻辑中调用计数
requestCounter.add(1, { endpoint: "/api/users", status: "200" });

5. 验证实时指标

启动应用后等待数分钟,进入Azure门户的Azure Monitor -> 实时指标页面,选择对应应用资源即可查看采集到的指标数据。

常见排查点

  • 确认Azure Monitor连接字符串正确且具备Metrics发布权限
  • 导出间隔不宜过短,避免触发限流,建议保持15-60秒区间
  • 确保Resource中服务名称配置正确,否则指标无法关联到目标应用

内容的提问来源于stack exchange,提问作者Amrish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:49:56