Class MessagingTelemetryCarrier<T>

java.lang.Object
io.opentelemetry.javaagent.bootstrap.messaging.MessagingTelemetryCarrier<T>

public final class MessagingTelemetryCarrier<T> extends Object
Accesses the MessagingTelemetrySignals attached to objects that carry in-flight messages.

Signals live here rather than in the Context when the message outlives the scope that emitted telemetry for it, or reaches the next instrumentation on a different thread. A JMS message that already has a receive span, for instance, still has it when a listener picks it up later.

Instrumentations that coordinate through a carrier must create accessors with the same virtual field type pair.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(T carrier, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.MessagingOperationType operation, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignal signal)
     
    void
    clear(T carrier)
    Forgets every signal on carrier.
    boolean
    contains(T carrier, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.MessagingOperationType operation, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignal signal)
     
    create(io.opentelemetry.instrumentation.api.util.VirtualField<T, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignals> signalsField)
     
    io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignals
    getSignals(T carrier)
    Returns the signals held by carrier, or no signals when it is null or has none.
    <S> void
    mergeFrom(MessagingTelemetryCarrier<S> sourceCarrier, S source, T target)
    Adds everything source holds to what target already holds, for an object that wraps or continues another one without replacing what is known about it.
    <S> void
    replaceFrom(MessagingTelemetryCarrier<S> sourceCarrier, S source, T target)
    Makes target hold exactly what source holds, for an object that is being reused or refilled and must not keep the signals of the message it carried before.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • create

      public static <T> MessagingTelemetryCarrier<T> create(io.opentelemetry.instrumentation.api.util.VirtualField<T, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignals> signalsField)
    • getSignals

      public io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignals getSignals(@Nullable T carrier)
      Returns the signals held by carrier, or no signals when it is null or has none.
    • contains

      public boolean contains(@Nullable T carrier, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.MessagingOperationType operation, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignal signal)
    • add

      public void add(@Nullable T carrier, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.MessagingOperationType operation, io.opentelemetry.instrumentation.api.incubator.semconv.messaging.internal.MessagingTelemetrySignal signal)
    • mergeFrom

      public <S> void mergeFrom(MessagingTelemetryCarrier<S> sourceCarrier, @Nullable S source, @Nullable T target)
      Adds everything source holds to what target already holds, for an object that wraps or continues another one without replacing what is known about it.
    • replaceFrom

      public <S> void replaceFrom(MessagingTelemetryCarrier<S> sourceCarrier, @Nullable S source, @Nullable T target)
      Makes target hold exactly what source holds, for an object that is being reused or refilled and must not keep the signals of the message it carried before.
    • clear

      public void clear(@Nullable T carrier)
      Forgets every signal on carrier.