微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将lightstep / otel-launcher-node用作OpenTelemetry导出器?

如何解决如何将lightstep / otel-launcher-node用作OpenTelemetry导出器?

在使用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已被弃用并由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出口商之一?

解决方法

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'
        }
      })
    )
  );

lightstep/otel-launcher-node中的默认YOUR_DIGETS_URLhttps://ingest.lightstep.com:443/api/v2/otel/trace

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。