File

projects/opentelemetry-interceptor/src/lib/services/exporter/otelcol/otelcol-exporter.service.ts

Description

OtelcolExporterService class

Index

Properties
Methods

Constructor

constructor(config: OpenTelemetryConfig)

constructor

Parameters :
Name Type Optional Description
config OpenTelemetryConfig No

OpenTelemetryConfig

Methods

getExporter
getExporter()

Return a CollectorExporter with the configuration

Returns : SpanExporter

a CollectorExporter

Properties

Private otelcolConfig
Type : OTLPExporterConfigBase

CollectorExporterConfigBase

import { Injectable, Inject, Optional } from '@angular/core';
import { IExporter } from '../exporter.interface';
import { SpanExporter } from '@opentelemetry/sdk-trace-base';
import {
  OpenTelemetryConfig,
  OTEL_CONFIG
} from '../../../configuration/opentelemetry-config';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { OTLPExporterConfigBase } from '@opentelemetry/otlp-exporter-base';

/**
 * OtelcolExporterService class
 */
@Injectable({
  providedIn: 'root',
})
export class OtelcolExporterService implements IExporter {
  /**
   * CollectorExporterConfigBase
   */
  private otelcolConfig: OTLPExporterConfigBase;

  /**
   * constructor
   *
   * @param config OpenTelemetryConfig
   */
  constructor(
    @Inject(OTEL_CONFIG) config: OpenTelemetryConfig
  ) {
    this.otelcolConfig = {
      url: config.otelcolConfig?.url,
      headers: config.otelcolConfig?.headers,
      concurrencyLimit: Number(config.otelcolConfig?.concurrencyLimit),
      timeoutMillis: Number(config.otelcolConfig?.timeoutMillis)
    };
  }

  /**
   * Return a CollectorExporter with the configuration
   *
   * @return a CollectorExporter
   */
  getExporter(): SpanExporter {
    return new OTLPTraceExporter(this.otelcolConfig);
  }
}

results matching ""

    No results matching ""