Как использовать lightstep/otel-launcher-node в качестве экспортера OpenTelemetry?
До того, как я использовал https://github.com/lightstep/opentelemetry-exporter-js, я мог одновременно использовать свои собственные экспортеры и экспортеры Lightstep.
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
import { NodeTracerProvider } from '@opentelemetry/node';
import { BatchSpanProcessor, ConsoleSpanExporter } from '@opentelemetry/tracing';
import { LightstepExporter } from 'lightstep-opentelemetry-exporter';
const initTracer = () => {
const serviceName = 'server-trace-service';
const tracerProvider = new NodeTracerProvider({
plugins: {
http: {
enabled: true,
path: '@opentelemetry/plugin-http',
},
},
});
tracerProvider.addSpanProcessor(new BatchSpanProcessor(new ConsoleSpanExporter()));
tracerProvider.addSpanProcessor(
new BatchSpanProcessor(
new CollectorTraceExporter({
serviceName,
})
)
);
tracerProvider.addSpanProcessor(
new BatchSpanProcessor(
new LightstepExporter({
serviceName,
token: 'myToken',
})
)
);
tracerProvider.register();
};
Однако только что увиденное, что lightstep / opentelemetry-exporter-js устарело и заменено на https://github.com/lightstep/otel-launcher-node/.
Я проверил его исходный код и демо, похоже, что это "фреймворк" поверх OpenTelemetry.
const {
lightstep,
opentelemetry,
} = require('lightstep-opentelemetry-launcher-node');
const sdk = lightstep.configureOpenTelemetry({
accessToken: 'YOUR ACCESS TOKEN',
serviceName: 'locl-ex',
});
sdk.start().then(() => {
const tracer = opentelemetry.trace.getTracer('otel-node-example');
const span = tracer.startSpan('test-span');
span.end();
opentelemetry.trace.getTracerProvider().getActiveSpanProcessor().shutdown();
});
Можно ли просто использовать его как один из экспортеров OpenTelemetry?
1 ответ
lightstep-opentelemetry-launcher-node
в основном объединяет необходимые вещи для упрощения настройки, поэтому это не экспортер. Если бы вы просто заменили "LightstepExporter" на "OpenTelemetry Collector Exporter" в своем коде, вы можете просто сделать это
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
tracerProvider.addSpanProcessor(
new BatchSpanProcessor(
new CollectorTraceExporter({
url: 'YOUR_DIGEST_URL',
headers: {
'Lightstep-Access-Token': 'YOUR_TOKEN'
}
})
)
);
По умолчанию YOUR_DIGETS_URL
от https://github.com/lightstep/otel-launcher-node/ естьhttps://ingest.lightstep.com:443/api/v2/otel/trace