Class ArvoOpenTelemetry

Singleton class for managing OpenTelemetry instrumentation across libraries

Properties

tracer: Tracer

OpenTelemetry tracer instance for creating spans

Methods

  • Creates and manages an active span for a given operation. This function provides two modes of operation:

    1. Automatic span management (default): Handles span lifecycle, status, and error recording
    2. Manual span management: Gives full control to the user when disableSpanManagement is true

    Type Parameters

    • F extends ((span: Span) => unknown)

      Function type that accepts a Span parameter and returns a value

    Parameters

    • param: {
          context?: {
              inheritFrom: "TRACE_HEADERS";
              traceHeaders: OpenTelemetryHeaders;
          } | {
              context: Context;
              inheritFrom: "CONTEXT";
          };
          disableSpanManagement?: boolean;
          fn: F;
          name: string;
          spanOptions?: SpanOptions;
      }

      Configuration object for the span

      • Optionalcontext?: {
            inheritFrom: "TRACE_HEADERS";
            traceHeaders: OpenTelemetryHeaders;
        } | {
            context: Context;
            inheritFrom: "CONTEXT";
        }

        Optional context configuration for span inheritance

      • OptionaldisableSpanManagement?: boolean

        When true, disables automatic span lifecycle management

      • fn: F

        Function to execute within the span context. Receives the span as a parameter

      • name: string

        Name of the span to be created

      • OptionalspanOptions?: SpanOptions

        Optional configuration for the span creation

    Returns ReturnType<F>

    The return value of the executed function

  • Gets or creates the singleton instance of ArvoOpenTelemetry. This method ensures only one instance of ArvoOpenTelemetry exists throughout the application.

    Parameters

    • Optionalconfig: {
          tracer?: Tracer;
      }

      Optional configuration object for initializing the instance

      • Optionaltracer?: Tracer

        Optional custom OpenTelemetry tracer instance. If not provided, defaults to a tracer with name 'arvo-instrumentation'

    Returns ArvoOpenTelemetry

    The singleton instance of ArvoOpenTelemetry

    // Get instance with default tracer
    const telemetry = ArvoOpenTelemetry.getInstance();
    // Get instance with custom tracer
    const customTracer = trace.getTracer('custom-tracer', '2.0.0');
    const telemetry = ArvoOpenTelemetry.getInstance({ tracer: customTracer });

    The tracer configuration is only applied when creating a new instance. Subsequent calls with different tracer configurations will not modify the existing instance.

  • Forces a reinitialization of the ArvoOpenTelemetry instance. Use this method with caution as it will affect all existing traces and spans.

    Parameters

    • config: {
          force?: boolean;
          tracer?: Tracer;
      }

      Configuration object for reinitializing the instance

      • Optionalforce?: boolean

        If true, skips active span checks

      • Optionaltracer?: Tracer

        Optional custom OpenTelemetry tracer instance

    Returns void

    If there are active spans and force is not set to true

    If called before instance initialization

    // Safe reinitialization
    const customTracer = trace.getTracer('new-tracer', '2.0.0');
    ArvoOpenTelemetry.reinitialize({ tracer: customTracer });