Tracer Schnittstelle

public interface Tracer

Vertrag, dass alle Ablaufverfolgungselemente implementieren müssen, damit sie in das SDK integriert werden können.

Feldzusammenfassung

Modifizierer und Typ Feld und Beschreibung
static final String AZ_TRACING_NAMESPACE_KEY

Als veraltet markiert

Übergeben des Azure-Ressourcenanbieternamespaces an die Tracer Factory-Methode createTracer(String libraryName, String libraryVersion, String azNamespace, TracingOptions options)

Schlüssel, der Context angibt, dass der Kontext den Azure-Ressourcenanbieternamespace enthält.

static final String DIAGNOSTIC_ID_KEY

Als veraltet markiert

Schlüssel, der Context angibt, dass der Kontext eine "Diagnose-ID" für den Dienstaufruf enthält.

static final String DISABLE_TRACING_KEY

Schlüssel, für Context den die Ablaufverfolgung für die Anforderung deaktiviert wird, die dem aktuellen Kontext zugeordnet ist.

static final String ENTITY_PATH_KEY

Schlüssel, der Context angibt, dass der Kontext einen Entitätspfad enthält.

static final String HOST_NAME_KEY

Schlüssel, der Context angibt, dass der Kontext den Hostnamen enthält.

static final String MESSAGE_ENQUEUED_TIME

Als veraltet markiert

Verwenden addLink(TracingLink link) und übergeben Sie die queuierte Zeit als Attribut für einen Link.

Schlüssel, für Context den der Zeitpunkt der letzten Warteschlange im Datenstrom der Partition angegeben ist.

static final String PARENT_SPAN_KEY

Als veraltet markiert

Ist zugunsten von PARENT_TRACE_CONTEXT_KEY veraltet, verwenden Sie es, um vollständige io zu verteilen.opentelemetry.Kontext

Schlüssel, der Context angibt, dass der Kontext übergeordnete Span-Daten enthält.

static final String PARENT_TRACE_CONTEXT_KEY

Context Schlüssel zum Speichern des Ablaufverfolgungskontexts.

static final String SCOPE_KEY

Als veraltet markiert

stattdessen verwenden makeSpanCurrent(Context context) .

Schlüssel für Context den Codebereich, in dem sich der angegebene Span im aktuellen Kontext befindet.

static final String SPAN_BUILDER_KEY

Als veraltet markiert

stattdessen verwenden addLink(TracingLink link)

Schlüssel, der Context den shared span builder angibt, der sich im aktuellen Kontext befindet.

static final String SPAN_CONTEXT_KEY

Schlüssel, der Context angibt, dass der Kontext einen Nachrichtenspannenkontext enthält.

static final String USER_SPAN_NAME_KEY

Als veraltet markiert

übergeben Sie den Span-Namen an Tracer.Startmethoden.

Schlüssel, der Context angibt, dass der Kontext den Namen für die erstellten Benutzerspannen enthält.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
default void addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp)

Als veraltet markiert

Fügt der aktuellen Spanne mit dem bereitgestellten timestamp und attributesein -Ereignis hinzu.

default void addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp, Context context)

Fügt dem in Context der vorhandenen Spanne mit dem bereitgestellten timestamp und attributesein -Ereignis hinzu.

default void addLink(Context context)

Als veraltet markiert

Bietet eine Möglichkeit, mehrere Ablaufverfolgungsspannen zu verknüpfen.

default void end(int responseCode, Throwable error, Context context)

Als veraltet markiert

legen Sie das spezifische Attribut e fest.g. http_status_code explizit und verwenden.end(String errorMessage, Throwable throwable, Context context)

Schließt die aktuelle Ablaufverfolgungsspanne ab.

abstract void end(String errorMessage, Throwable throwable, Context context)

Schließt die Spanne für den Kontext ab.

default Context extractContext(String diagnosticId, Context context)

Als veraltet markiert

Extrahiert den Kontext der Spanne aus Context Upstream.

default Context extractContext(Function<String,String> headerGetter)

Extrahiert den Kontext der Spanne aus Context Upstream.

default Context getSharedSpanBuilder(String spanName, Context context)

Als veraltet markiert

stattdessen verwenden addLink(TracingLink link)

Gibt einen Span Builder mit dem angegebenen Namen in Contextzurück.

default void injectContext(BiConsumer<String,String> headerSetter, Context context)

Fügt den Ablaufverfolgungskontext ein.

default boolean isEnabled()

Überprüft, ob die Ablaufverfolgung aktiviert ist.

default AutoCloseable makeSpanCurrent(Context context)

Stellt den Span-Strom fest.

abstract void setAttribute(String key, String value, Context context)

Fügt metadaten zur aktuellen Spanne hinzu.

default void setAttribute(String key, long value, Context context)

Legt das long-Attribut fest.

default Context setSpanName(String spanName, Context context)

Als veraltet markiert

nicht erforderlich.

Legt den Namen für die erstellten Spans fest.

abstract Context start(String methodName, Context context)

Erstellt eine neue Ablaufverfolgungsspanne.

default Context start(String spanName, Context context, ProcessKind processKind)

Als veraltet markiert

Erstellt eine neue Ablaufverfolgungsspanne für AMQP-Aufrufe.

default Context start(String methodName, StartSpanOptions options, Context context)

Erstellt eine neue Ablaufverfolgungsspanne.

Felddetails

AZ_TRACING_NAMESPACE_KEY

@Deprecated
public static final String AZ_TRACING_NAMESPACE_KEY

Als veraltet markiert

Übergeben des Azure-Ressourcenanbieternamespaces an die Tracer Factory-Methode createTracer(String libraryName, String libraryVersion, String azNamespace, TracingOptions options)

Schlüssel, der Context angibt, dass der Kontext den Azure-Ressourcenanbieternamespace enthält.

DIAGNOSTIC_ID_KEY

@Deprecated
public static final String DIAGNOSTIC_ID_KEY

Als veraltet markiert

Schlüssel, der Context angibt, dass der Kontext eine "Diagnose-ID" für den Dienstaufruf enthält.

DISABLE_TRACING_KEY

public static final String DISABLE_TRACING_KEY

Schlüssel, für Context den die Ablaufverfolgung für die Anforderung deaktiviert wird, die dem aktuellen Kontext zugeordnet ist.

ENTITY_PATH_KEY

public static final String ENTITY_PATH_KEY

Schlüssel, der Context angibt, dass der Kontext einen Entitätspfad enthält.

HOST_NAME_KEY

public static final String HOST_NAME_KEY

Schlüssel, der Context angibt, dass der Kontext den Hostnamen enthält.

MESSAGE_ENQUEUED_TIME

@Deprecated
public static final String MESSAGE_ENQUEUED_TIME

Als veraltet markiert

Verwenden addLink(TracingLink link) und übergeben Sie die queuierte Zeit als Attribut für einen Link.

Schlüssel, für Context den der Zeitpunkt der letzten Warteschlange im Datenstrom der Partition angegeben ist.

PARENT_SPAN_KEY

@Deprecated
public static final String PARENT_SPAN_KEY

Als veraltet markiert

Ist zugunsten von PARENT_TRACE_CONTEXT_KEY veraltet, verwenden Sie es, um vollständige io zu verteilen.opentelemetry.Kontext

Schlüssel, der Context angibt, dass der Kontext übergeordnete Span-Daten enthält. Diese Spanne wird als übergeordnete Spanne für alle Bereiche verwendet, die das SDK erstellt.

Wenn beim Erstellen der Spanne keine Span-Daten aufgeführt werden, wird standardmäßig dieser Span-Schlüssel als übergeordnete Span verwendet.

PARENT_TRACE_CONTEXT_KEY

public static final String PARENT_TRACE_CONTEXT_KEY

Context Schlüssel zum Speichern des Ablaufverfolgungskontexts. Dieser Kontext wird als übergeordneter Kontext für neue Bereiche verwendet und in ausgehenden HTTP-Aufrufen weitergegeben.

SCOPE_KEY

@Deprecated
public static final String SCOPE_KEY

Als veraltet markiert

stattdessen verwenden makeSpanCurrent(Context context) .

Schlüssel für Context den Codebereich, in dem sich der angegebene Span im aktuellen Kontext befindet.

SPAN_BUILDER_KEY

@Deprecated
public static final String SPAN_BUILDER_KEY

Als veraltet markiert

stattdessen verwenden addLink(TracingLink link)

Schlüssel, der Context den shared span builder angibt, der sich im aktuellen Kontext befindet.

SPAN_CONTEXT_KEY

public static final String SPAN_CONTEXT_KEY

Schlüssel, der Context angibt, dass der Kontext einen Nachrichtenspannenkontext enthält.

USER_SPAN_NAME_KEY

@Deprecated
public static final String USER_SPAN_NAME_KEY

Als veraltet markiert

übergeben Sie den Span-Namen an Tracer.Startmethoden.

Schlüssel, der Context angibt, dass der Kontext den Namen für die erstellten Benutzerspannen enthält.

Wenn beim Erstellen der Spanne kein Span-Name aufgeführt wird, wird standardmäßig der Name der aufrufenden Methode verwendet.

Details zur Methode

addEvent

@Deprecated
public default void addEvent(String name, Map attributes, OffsetDateTime timestamp)

Als veraltet markiert

Fügt der aktuellen Spanne mit dem bereitgestellten timestamp und attributesein -Ereignis hinzu.

Diese API bietet keine Normalisierung, wenn die bereitgestellten Zeitstempel außerhalb des Bereichs der aktuellen Spanne liegen Zeitleiste

Unterstützte Attributwerte sind String, double, boolean, long, String [], double [], long []. Alle anderen Object-Werttypen und NULL-Werte werden unbeaufsichtigt ignoriert.

Parameters:

name - der Name des Ereignisses.
attributes - die zusätzlichen Attribute, die für das Ereignis festgelegt werden sollen.
timestamp - Der Moment in UTC, in dem das Ereignis der Spanne zugeordnet wird.

addEvent

public default void addEvent(String name, Map attributes, OffsetDateTime timestamp, Context context)

Fügt dem in Context der vorhandenen Spanne mit dem bereitgestellten timestamp und attributesein -Ereignis hinzu.

Diese API bietet keine Normalisierung, wenn die bereitgestellten Zeitstempel außerhalb des Bereichs der aktuellen Spanne liegen Zeitleiste

Unterstützte Attributwerte sind String, double, boolean, long, String [], double [], long []. Alle anderen Object-Werttypen und NULL-Werte werden unbeaufsichtigt ignoriert.

Context span = tracer.start("Cosmos.getItem", Context.NONE);
 tracer.addEvent("trying another endpoint", Collections.singletonMap("endpoint", "westus3"), OffsetDateTime.now(), span);

Parameters:

name - der Name des Ereignisses.
attributes - die zusätzlichen Attribute, die für das Ereignis festgelegt werden sollen.
timestamp - Der Moment in UTC, in dem das Ereignis der Spanne zugeordnet wird.
context - die Aufrufmetadaten, die Informationen über die Spanne enthalten, der das Ereignis zugeordnet werden soll.

addLink

@Deprecated
public default void addLink(Context context)

Als veraltet markiert

Bietet eine Möglichkeit, mehrere Ablaufverfolgungsspannen zu verknüpfen. Wird in Batchvorgängen verwendet, um mehrere Anforderungen unter einem einzelnen Batch zu verknüpfen.

Codebeispiele

Verknüpfen mehrerer Spannen mithilfe ihrer kontextbezogenen Informationen

Parameters:

context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

end

@Deprecated
public default void end(int responseCode, Throwable error, Context context)

Als veraltet markiert

legen Sie das spezifische Attribut e fest.g. http_status_code explizit und verwenden.end(String errorMessage, Throwable throwable, Context context)

Schließt die aktuelle Ablaufverfolgungsspanne ab.

Codebeispiele

Schließt die im Kontext vorhandene Ablaufverfolgungsspanne mit dem entsprechenden OpenTelemetry-status für die angegebene Antwort status Code ab.

Parameters:

responseCode - Antwort status Code, wenn sich die Spanne in einem HTTP-Aufrufkontext befindet.
error - Throwable die während der Spanne aufgetreten ist oder null wenn keine Ausnahme aufgetreten ist.
context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

end

public abstract void end(String errorMessage, Throwable throwable, Context context)

Schließt die Spanne für den Kontext ab.

Codebeispiele

Schließt die Ablaufverfolgungsspanne mit nicht festgelegter status

Context messageSpan = tracer.start("ServiceBus.message", new StartSpanOptions(SpanKind.PRODUCER), Context.NONE);
 tracer.end(null, null, messageSpan);

Schließt die Ablaufverfolgungsspanne mit bereitgestellter Fehlermeldung ab

Context span = tracer.start("ServiceBus.send", new StartSpanOptions(SpanKind.CLIENT), Context.NONE);
 tracer.end("amqp:not-found", null, span);

Schließt die Ablaufverfolgungsspanne mit der angegebenen Ausnahme ab

Context sendSpan = tracer.start("ServiceBus.send", new StartSpanOptions(SpanKind.CLIENT), Context.NONE);
 try (AutoCloseable scope = tracer.makeSpanCurrent(sendSpan)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, sendSpan);
 }

Parameters:

errorMessage - Die Fehlermeldung, die während des Aufrufs aufgetreten ist, oder null wenn kein Fehler aufgetreten ist. Aufgetreten. Jede andere Nicht-NULL-Zeichenfolge gibt einen Fehler mit der Beschreibung an, die in errorMessagebereitgestellt wird.
throwable - Throwable die während der Spanne aufgetreten ist oder null wenn keine Ausnahme aufgetreten ist.
context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

extractContext

@Deprecated
public default Context extractContext(String diagnosticId, Context context)

Als veraltet markiert

Extrahiert den Kontext der Spanne aus Context Upstream.

Codebeispiele

Extrahiert die entsprechenden Span-Kontextinformationen aus einer gültigen Diagnose-ID.

Parameters:

diagnosticId - Eindeutiger Bezeichner für die Ablaufverfolgungsinformationen der Spanne.
context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

Returns:

Das aktualisierte Context Objekt, das den span-Kontext enthält.

extractContext

public default Context extractContext(Function headerGetter)

Extrahiert den Kontext der Spanne aus Context Upstream.

Codebeispiele

Extrahiert die entsprechenden Span-Kontextinformationen aus einer gültigen Diagnose-ID.

Context parentContext = tracer.extractContext(name -> {
     Object value = messageProperties.get(name);
     return value instanceof String ? (String) value : null;
 });

 StartSpanOptions remoteParentOptions = new StartSpanOptions(SpanKind.CONSUMER)
     .setRemoteParent(parentContext);

 Context spanWithRemoteParent = tracer.start("EventHubs.process", remoteParentOptions, Context.NONE);

 try (AutoCloseable scope = tracer.makeSpanCurrent(spanWithRemoteParent)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, spanWithRemoteParent);
 }

Parameters:

headerGetter - Eindeutiger Bezeichner für die Ablaufverfolgungsinformationen der Spanne und des Aufgabenbereichs.

Returns:

Das aktualisierte Context Objekt, das den span-Kontext enthält.

getSharedSpanBuilder

@Deprecated
public default Context getSharedSpanBuilder(String spanName, Context context)

Als veraltet markiert

stattdessen verwenden addLink(TracingLink link)

Gibt einen Span Builder mit dem angegebenen Namen in Contextzurück.

Codebeispiele

Gibt einen Generator mit dem angegebenen Span-Namen zurück.

Parameters:

spanName - Name, um die Spanne für den erstellten Generator zu geben.
context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

Returns:

Das aktualisierte Context Objekt, das den span-Generator enthält.

injectContext

public default void injectContext(BiConsumer headerSetter, Context context)

Fügt den Ablaufverfolgungskontext ein.

Context httpSpan = tracer.start("HTTP GET", new StartSpanOptions(SpanKind.CLIENT), methodSpan);
 tracer.injectContext((headerName, headerValue) -> request.setHeader(headerName, headerValue), httpSpan);

 try (AutoCloseable scope = tracer.makeSpanCurrent(httpSpan)) {
     HttpResponse response = getResponse(request);
     httpResponseCode = response.getStatusCode();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(httpResponseCode, throwable, httpSpan);
 }

Parameters:

headerSetter - Rückruf zum Festlegen des Kontexts mit.
context - Ablaufverfolgungskontext instance

isEnabled

public default boolean isEnabled()

Überprüft, ob die Ablaufverfolgung aktiviert ist.

if (!tracer.isEnabled()) {
     doWork();
 } else {
     Context span = tracer.start("span", Context.NONE);
     try {
         doWork();
     } catch (Throwable ex) {
         throwable = ex;
     } finally {
         tracer.end(null, throwable, span);
     }
 }

Returns:

true, wenn tracer aktiviert ist, andernfalls false.

makeSpanCurrent

public default AutoCloseable makeSpanCurrent(Context context)

Stellt den Span-Strom fest. Implementierungen können es in ThreadLocal platzieren. Stellen Sie sicher, dass Sie immer die Try-with-Resource-Anweisung mit makeSpanCurrent verwenden.

Parameters:

context - Kontext mit Span.
 Context span = tracer.start("EventHubs.process", new StartSpanOptions(SpanKind.CONSUMER), Context.NONE);
 try (AutoCloseable scope = tracer.makeSpanCurrent(span)) {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, span);
 }
 

Returns:

Nahbar, das im selben Thread mit der try-with-resource-Anweisung geschlossen werden sollte.

setAttribute

public abstract void setAttribute(String key, String value, Context context)

Fügt metadaten zur aktuellen Spanne hinzu. Wenn keine Span-Informationen im Kontext gefunden werden, werden keine Metadaten hinzugefügt.

span = tracer.start("EventHubs.process", Context.NONE);
 tracer.setAttribute("bar", "baz", span);

Parameters:

key - Name der Metadaten.
value - Wert der Metadaten.
context - Zusätzliche Metadaten, die über den Aufrufstapel übergeben werden.

setAttribute

public default void setAttribute(String key, long value, Context context)

Legt long-Attribut fest.

Context span = tracer.start("EventHubs.process", Context.NONE);
 tracer.setAttribute("foo", 42, span);

Parameters:

key - Attributname
value - atteribute-Wert
context - Ablaufverfolgungskontext

setSpanName

@Deprecated
public default Context setSpanName(String spanName, Context context)

Als veraltet markiert

nicht erforderlich.

Legt den Namen für die erstellten Spans fest.

Codebeispiele

Abrufen des Span-Namens der zurückgegebenen Span

Parameters:

spanName - Name, um die nächste Spanne zu geben.
context - Zusätzliche Metadaten, die über die Aufrufliste übergeben werden.

Returns:

Das aktualisierte Context Objekt, das den Namen der zurückgegebenen Spanne enthält.

start

public abstract Context start(String methodName, Context context)

Erstellt eine neue Ablaufverfolgungsspanne.

Wird context auf Informationen zu einer übergeordneten Spanne überprüft. Wenn eine übergeordnete Spanne gefunden wird, wird die neue Spanne als untergeordnetes Element hinzugefügt. Andernfalls wird die übergeordnete Spanne erstellt und dem context hinzugefügt, und alle Downstreamaufrufe start() verwenden die erstellte Span als übergeordnetes Element.

Codebeispiele

Startet eine Ablaufverfolgungsspanne mit dem angegebenen Methodennamen und einer expliziten übergeordneten Spanne.

// start a new tracing span with given name and parent context implicitly propagated
 // in io.opentelemetry.context.Context.current()

 Throwable throwable = null;
 Context span = tracer.start("keyvault.setsecret", Context.NONE);
 try {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, span);
 }

Parameters:

methodName - Name der Methode, die die Span-Erstellung auslöst.
context - Zusätzliche Metadaten, die über die Aufrufliste übergeben werden.

Returns:

Das aktualisierte Context Objekt, das die zurückgegebene Spanne enthält.

start

@Deprecated
public default Context start(String spanName, Context context, ProcessKind processKind)

Als veraltet markiert

Erstellt eine neue Ablaufverfolgungsspanne für AMQP-Aufrufe.

Wird context auf Informationen zu einer übergeordneten Spanne überprüft. Wenn eine übergeordnete Spanne gefunden wird, wird die neue Spanne als untergeordnetes Element hinzugefügt. Andernfalls wird die übergeordnete Spanne erstellt und dem context hinzugefügt, und alle Downstreamaufrufe start() verwenden die erstellte Span als übergeordnetes Element.

Legt zusätzliche Anforderungsattribute für die erstellte Spanne fest, wenn processKind ist SEND.

Gibt die Diagnose-ID und den span-Kontext der zurückgegebenen Spanne zurück, wenn processKind ist MESSAGE.

Erstellt eine neue Ablaufverfolgungsspanne mit übergeordnetem Remoteelement und gibt diesen Bereich zurück, wenn der angegebene ist, wenn processKind angegeben ist PROCESS.

Codebeispiele

Startet eine Ablaufverfolgungsspanne mit dem angegebenen Methodennamen und dem AMQP-Vorgang SEND.

Parameters:

spanName - Name der Methode, die die Span-Erstellung auslöst.
context - Zusätzliche Metadaten, die über die Aufrufliste übergeben werden.
processKind - AMQP-Vorgangsart.

Returns:

Das aktualisierte Context Objekt, das die zurückgegebene Spanne enthält.

start

public default Context start(String methodName, StartSpanOptions options, Context context)

Erstellt eine neue Ablaufverfolgungsspanne.

Wird context auf Informationen zu einer übergeordneten Spanne überprüft. Wenn eine übergeordnete Spanne gefunden wird, wird die neue Spanne als untergeordnetes Element hinzugefügt. Andernfalls wird die übergeordnete Spanne erstellt und dem context hinzugefügt, und alle Downstreamaufrufe start() verwenden die erstellte Span als übergeordnetes Element.

Codebeispiele

Startet eine Ablaufverfolgungsspanne mit dem angegebenen Methodennamen und einer expliziten übergeordneten Spanne.

// start a new CLIENT tracing span with the given start options and explicit parent context
 StartSpanOptions options = new StartSpanOptions(SpanKind.CLIENT)
     .setAttribute("key", "value");
 Context spanFromOptions = tracer.start("keyvault.setsecret", options, Context.NONE);
 try {
     doWork();
 } catch (Throwable ex) {
     throwable = ex;
 } finally {
     tracer.end(null, throwable, spanFromOptions);
 }

Parameters:

methodName - Name der Methode, die die Span-Erstellung auslöst.
options - Span-Erstellungsoptionen.
context - Zusätzliche Metadaten, die über die Aufrufliste übergeben werden.

Returns:

Das aktualisierte Context Objekt, das die zurückgegebene Spanne enthält.

Gilt für: