Tracer provides an interface for creating Spans.

interface Tracer {
    startActiveSpan<F>(name, options?, context?, fn): ReturnType<F>;
    startActiveSpan<F>(name, options, fn): ReturnType<F>;
    startActiveSpan<F>(name, fn): ReturnType<F>;
    startSpan(name, options?, context?): export=.opentelemetry.Span;
}

Hierarchy

  • Tracer
    • Tracer

Methods

  • Starts a new Span and calls the given function passing it the created span as first argument. Additionally the new span gets set in context and this context is activated for the duration of the function call.

    Type Parameters

    • F extends ((span) => unknown)

    Parameters

    • name: string

      The name of the span

    • Optional options: SpanOptions

      SpanOptions used for span creation

    • Optional context: Context

      Context to use to extract parent

    • fn: F

      function called in the context of the span and receives the newly created span as an argument

    Returns ReturnType<F>

    return value of fn

    Example

    const something = tracer.startActiveSpan('op', span => {
    try {
    do some work
    span.setStatus({code: SpanStatusCode.OK});
    return something;
    } catch (err) {
    span.setStatus({
    code: SpanStatusCode.ERROR,
    message: err.message,
    });
    throw err;
    } finally {
    span.end();
    }
    });

    Example

    const span = tracer.startActiveSpan('op', span => {
    try {
    do some work
    return span;
    } catch (err) {
    span.setStatus({
    code: SpanStatusCode.ERROR,
    message: err.message,
    });
    throw err;
    }
    });
    do some more work
    span.end();
  • Type Parameters

    • F extends ((span) => unknown)

    Parameters

    • name: string
    • options: SpanOptions
    • fn: F

    Returns ReturnType<F>

  • Type Parameters

    • F extends ((span) => unknown)

    Parameters

    • name: string
    • fn: F

    Returns ReturnType<F>

  • Starts a new Span. Start the span without setting it on context.

    This method do NOT modify the current Context.

    Parameters

    • name: string

      The name of the span

    • Optional options: SpanOptions

      SpanOptions used for span creation

    • Optional context: Context

      Context to use to extract parent

    Returns export=.opentelemetry.Span

    Span The newly created span

    Example

    const span = tracer.startSpan('op');
    span.setAttribute('key', 'value');
    span.end();