在使用光步/光电测量.出口商-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已不再受欢迎,取而代之的是lightstep/otel-发射器-节点。
我检查了它的源代码和演示程序,它看起来像是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出口商之一?
发布于 2020-09-03 14:13:18
lightstep-opentelemetry-launcher-node基本上是为您打包所需的东西,以便于配置,因此这不是一个导出程序。如果您要在代码中简单地将"LightstepExporter“替换为"OpenTelemetry收集器导出程序”,那么您可以这样做。
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
tracerProvider.addSpanProcessor(
new BatchSpanProcessor(
new CollectorTraceExporter({
url: 'YOUR_DIGEST_URL',
headers: {
'Lightstep-Access-Token': 'YOUR_TOKEN'
}
})
)
);来自lightstep/otel-发射器-节点的默认lightstep/otel-发射器-节点是https://ingest.lightstep.com:443/api/v2/otel/trace
https://stackoverflow.com/questions/63724073
复制相似问题