Skip to main content

设置 OpenTelemetry

Backstage用途OpenTelemetery通过报告轨迹和指标来检测其组件。

本教程介绍如何在 Backstage 后端软件包中设置导出程序。 为了便于演示,我们将使用简单的控制台导出程序。

安装依赖项

我们将使用 OpenTelemetry Node SDK 和auto-instrumentations-node打包。

目录等Backstage软件包使用 OpenTelemetry API 发送自定义跟踪和指标。auto-instrumentations-node会自动为 Express 等库中调用的代码创建跨度。

yarn --cwd packages/backend add @opentelemetry/sdk-node \
@opentelemetry/auto-instrumentations-node \
@opentelemetry/sdk-metrics

配置

在您的packages/backend/src文件夹,创建一个instrumentation.ts锉刀

import { NodeSDK } from '@opentelemetry/sdk-node';
import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import {
PeriodicExportingMetricReader,
ConsoleMetricExporter,
} from '@opentelemetry/sdk-metrics';

const sdk = new NodeSDK({
traceExporter: new ConsoleSpanExporter(),
metricReader: new PeriodicExportingMetricReader({
exporter: new ConsoleMetricExporter(),
}),
instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start();

index.ts导入此文件开始:

import './instrumentation'; // Setup the OpenTelemetry instrumentation

// other imports and backend init...

设置 NodeSDK 和自动仪器非常重要之前导入任何库。

运行Backstage

现在您可以像往常一样启动Backstage实例,使用yarn dev.

后端启动后,你应该能在控制台中看到 OpenTelemetry 发出的跟踪和指标。

当然,在生产中您可能不会使用控制台输出程序,而是使用OTLP 出口国.

参考文献