arvo-core
    Preparing search index...

    Class ArvoOpenTelemetry

    Singleton class for managing OpenTelemetry instrumentation across libraries

    Index

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