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
verwenden extractContext(Function<String,String> headerGetter) und injectContext(BiConsumer<String,String> headerSetter, Context context) für die Kontextweitergabe.
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.
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.
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
Verwenden Sie addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp, Context context)
Fügt der aktuellen Spanne mit dem bereitgestellten |
default void |
addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp, Context context)
Fügt dem in |
default void |
addLink(Context context)
Als veraltet markiert
use addLink(TracingLink link) )}
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.
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
Verwenden Sie extractContext(Function<String,String> headerGetter).
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
Auto |
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
stattdessen verwenden start(String methodName, StartSpanOptions options, Context context) .
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
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
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
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
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
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
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
Als veraltet markiert
Fügt der aktuellen Spanne mit dem bereitgestellten timestamp
und attributes
ein -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:
addEvent
public default void addEvent(String name, Map
Fügt dem in Context
der vorhandenen Spanne mit dem bereitgestellten timestamp
und attributes
ein -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:
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:
end
@Deprecated
public default void end(int responseCode, Throwable error, Context context)
Als veraltet markiert
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:
null
wenn keine Ausnahme aufgetreten ist.
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:
null
wenn kein Fehler aufgetreten ist.
Aufgetreten. Jede andere Nicht-NULL-Zeichenfolge gibt einen Fehler mit der Beschreibung an, die in errorMessage
bereitgestellt wird.
null
wenn keine Ausnahme aufgetreten ist.
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:
Returns:
extractContext
public default Context extractContext(Function
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:
Returns:
getSharedSpanBuilder
@Deprecated
public default Context getSharedSpanBuilder(String spanName, Context context)
Als veraltet markiert
Gibt einen Span Builder mit dem angegebenen Namen in Contextzurück.
Codebeispiele
Gibt einen Generator mit dem angegebenen Span-Namen zurück.
Parameters:
Returns:
injectContext
public default void injectContext(BiConsumer
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:
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:
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 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:
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:
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:
setSpanName
@Deprecated
public default Context setSpanName(String spanName, Context context)
Als veraltet markiert
Legt den Namen für die erstellten Spans fest.
Codebeispiele
Abrufen des Span-Namens der zurückgegebenen Span
Parameters:
Returns:
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:
Returns:
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:
Returns:
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:
Returns:
Gilt für:
Azure SDK for Java
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für