Tracer Interface
public interface Tracer
Contrat que tous les traceurs doivent implémenter pour être enfichables dans le SDK.
Récapitulatif du champ
Modificateur et type | Champ et description |
---|---|
static final String |
AZ_TRACING_NAMESPACE_KEY
Déprécié
Passer l’espace de noms du fournisseur de ressources Azure à la méthode de fabrique Tracer createTracer(String libraryName, String libraryVersion, String azNamespace, TracingOptions options)
Clé pour Context laquelle indique que le contexte contient l’espace de noms du fournisseur de ressources Azure. |
static final String |
DIAGNOSTIC_ID_KEY
Déprécié
utiliser extractContext(Function<String,String> headerGetter) et injectContext(BiConsumer<String,String> headerSetter, Context context) pour la propagation de contexte.
Clé pour Context laquelle indique que le contexte contient un « ID de diagnostic » pour l’appel de service. |
static final String |
DISABLE_TRACING_KEY
Clé pour Context laquelle désactive le suivi pour la requête associée au contexte actuel. |
static final String |
ENTITY_PATH_KEY
Clé pour Context laquelle indique que le contexte contient un chemin d’entité. |
static final String |
HOST_NAME_KEY
Clé pour Context laquelle indique que le contexte contient le nom d’hôte. |
static final String |
MESSAGE_ENQUEUED_TIME
Déprécié
Utilisez addLink(TracingLink link) et passez l’heure en file d’attente en tant qu’attribut sur le lien.
Clé pour Context laquelle indique l’heure du dernier message mis en file d’attente dans le flux de la partition. |
static final String |
PARENT_SPAN_KEY
Déprécié
Déprécié en faveur de PARENT_TRACE_CONTEXT_KEY, utilisez-le pour propager l’io complet.
Clé pour Context laquelle indique que le contexte contient des données d’étendue parente. |
static final String |
PARENT_TRACE_CONTEXT_KEY
Context clé pour stocker le contexte de trace. |
static final String |
SCOPE_KEY
Déprécié
utilisez makeSpanCurrent(Context context) à la place.
Clé pour Context l’étendue du code où l’étendue donnée se trouve dans le contexte actuel. |
static final String |
SPAN_BUILDER_KEY
Déprécié
utiliser addLink(TracingLink link) à la place
Clé pour Context laquelle indique le générateur d’étendue partagé qui se trouve dans le contexte actuel. |
static final String |
SPAN_CONTEXT_KEY
Clé pour Context laquelle indique que le contexte contient un contexte d’étendue de message. |
static final String |
USER_SPAN_NAME_KEY
Déprécié
passez le nom de l’étendue au traceur.
Clé pour Context laquelle indique que le contexte contient le nom des étendues utilisateur créées. |
Résumé de la méthode
Détails du champ
AZ_TRACING_NAMESPACE_KEY
@Deprecated
public static final String AZ_TRACING_NAMESPACE_KEY
Déprécié
Clé pour Context laquelle indique que le contexte contient l’espace de noms du fournisseur de ressources Azure.
DIAGNOSTIC_ID_KEY
@Deprecated
public static final String DIAGNOSTIC_ID_KEY
Déprécié
Clé pour Context laquelle indique que le contexte contient un « ID de diagnostic » pour l’appel de service.
DISABLE_TRACING_KEY
public static final String DISABLE_TRACING_KEY
Clé pour Context laquelle désactive le suivi pour la requête associée au contexte actuel.
ENTITY_PATH_KEY
public static final String ENTITY_PATH_KEY
Clé pour Context laquelle indique que le contexte contient un chemin d’entité.
HOST_NAME_KEY
public static final String HOST_NAME_KEY
Clé pour Context laquelle indique que le contexte contient le nom d’hôte.
MESSAGE_ENQUEUED_TIME
@Deprecated
public static final String MESSAGE_ENQUEUED_TIME
Déprécié
Clé pour Context laquelle indique l’heure du dernier message mis en file d’attente dans le flux de la partition.
PARENT_SPAN_KEY
@Deprecated
public static final String PARENT_SPAN_KEY
Déprécié
Clé pour Context laquelle indique que le contexte contient des données d’étendue parente. Cette étendue sera utilisée comme étendue parente pour toutes les étendues créées par le SDK.
Si aucune donnée d’étendue n’est répertoriée lors de la création de l’étendue, elle utilise par défaut cette clé d’étendue comme étendue parente.
PARENT_TRACE_CONTEXT_KEY
public static final String PARENT_TRACE_CONTEXT_KEY
Context clé pour stocker le contexte de trace. Ce contexte sera utilisé comme contexte parent pour les nouvelles étendues et propagé dans les appels HTTP sortants.
SCOPE_KEY
@Deprecated
public static final String SCOPE_KEY
Déprécié
Clé pour Context l’étendue du code où l’étendue donnée se trouve dans le contexte actuel.
SPAN_BUILDER_KEY
@Deprecated
public static final String SPAN_BUILDER_KEY
Déprécié
Clé pour Context laquelle indique le générateur d’étendue partagé qui se trouve dans le contexte actuel.
SPAN_CONTEXT_KEY
public static final String SPAN_CONTEXT_KEY
Clé pour Context laquelle indique que le contexte contient un contexte d’étendue de message.
USER_SPAN_NAME_KEY
@Deprecated
public static final String USER_SPAN_NAME_KEY
Déprécié
Clé pour Context laquelle indique que le contexte contient le nom des étendues utilisateur créées.
Si aucun nom d’étendue n’est répertorié lors de la création de l’étendue, il utilise par défaut le nom de la méthode appelante.
Détails de la méthode
addEvent
@Deprecated
public default void addEvent(String name, Map
Déprécié
Ajoute un événement à l’étendue actuelle avec le fourni timestamp
et attributes
.
Cette API ne fournit aucune normalisation si les horodatages fournis sont hors de portée de l’étendue actuelle chronologie
Les valeurs d’attribut prises en charge sont String, double, boolean, long, String [], double [], long []. Tout autre type de valeur d’objet et toute autre valeur null seront ignorés en mode silencieux.
Parameters:
addEvent
public default void addEvent(String name, Map
Ajoute un événement à l’étendue présente dans avec le Context
fourni timestamp
et attributes
.
Cette API ne fournit aucune normalisation si les horodatages fournis sont hors de portée de l’étendue actuelle chronologie
Les valeurs d’attribut prises en charge sont String, double, boolean, long, String [], double [], long []. Tout autre type de valeur d’objet et toute autre valeur null seront ignorés en mode silencieux.
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)
Déprécié
Permet de lier plusieurs étendues de suivi. Utilisé dans les opérations de traitement par lots pour relier plusieurs requêtes sous un même lot.
Exemples de code
Lier plusieurs étendues à l’aide de leurs informations de contexte d’étendue
Parameters:
end
@Deprecated
public default void end(int responseCode, Throwable error, Context context)
Déprécié
Termine l’étendue de suivi actuelle.
Exemples de code
Termine l’étendue de suivi présente dans le contexte, avec le status OpenTelemetry correspondant pour la réponse donnée status code
Parameters:
null
si aucune exception ne s’est produite.
end
public abstract void end(String errorMessage, Throwable throwable, Context context)
Complète l’étendue du contexte.
Exemples de code
Termine l’étendue de suivi avec un status non défini
Context messageSpan = tracer.start("ServiceBus.message", new StartSpanOptions(SpanKind.PRODUCER), Context.NONE);
tracer.end(null, null, messageSpan);
Termine l’étendue de suivi avec le message d’erreur fourni
Context span = tracer.start("ServiceBus.send", new StartSpanOptions(SpanKind.CLIENT), Context.NONE);
tracer.end("amqp:not-found", null, span);
Termine l’étendue de suivi avec l’exception fournie
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
si aucune erreur.
s’est produit. Toute autre chaîne non null indique une erreur avec la description fournie dans errorMessage
.
null
si aucune exception ne s’est produite.
extractContext
@Deprecated
public default Context extractContext(String diagnosticId, Context context)
Déprécié
Extrait le contexte de l’étendue à Context partir de amont.
Exemples de code
Extrait les informations de contexte d’étendue correspondantes à partir d’un ID de diagnostic valide
Parameters:
Returns:
extractContext
public default Context extractContext(Function
Extrait le contexte de l’étendue à Context partir de amont.
Exemples de code
Extrait les informations de contexte d’étendue correspondantes à partir d’un ID de diagnostic valide
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)
Déprécié
Retourne un générateur d’étendues avec le nom fourni dans Context.
Exemples de code
Retourne un générateur avec le nom d’étendue fourni.
Parameters:
Returns:
injectContext
public default void injectContext(BiConsumer
Injecte le contexte de suivi.
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()
Vérifie si le traceur est activé.
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)
Rend l’étendue actuelle. Les implémentations peuvent le placer sur ThreadLocal. Veillez à toujours utiliser l’instruction try-with-resource avec makeSpanCurrent
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)
Ajoute des métadonnées à l’étendue actuelle. Si aucune information d’étendue n’est trouvée dans le contexte, aucune métadonnées n’est ajoutée.
span = tracer.start("EventHubs.process", Context.NONE);
tracer.setAttribute("bar", "baz", span);
Parameters:
setAttribute
public default void setAttribute(String key, long value, Context context)
Définit l’attribut long.
Context span = tracer.start("EventHubs.process", Context.NONE);
tracer.setAttribute("foo", 42, span);
Parameters:
setSpanName
@Deprecated
public default Context setSpanName(String spanName, Context context)
Déprécié
Définit le nom des étendues créées.
Exemples de code
Récupérer le nom de l’étendue retournée
Parameters:
Returns:
start
public abstract Context start(String methodName, Context context)
Crée une étendue de suivi.
Le context
sera vérifié pour obtenir des informations sur une étendue parente. Si une étendue parente est trouvée, la nouvelle étendue est ajoutée en tant qu’enfant. Sinon, l’étendue parente est créée et ajoutée à et tous les context
appels en aval start()
utilisent l’étendue créée comme parent.
Exemples de code
Démarre une étendue de suivi avec le nom de méthode fourni et l’étendue parente explicite
// 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)
Déprécié
Crée une étendue de suivi pour les appels AMQP.
Le context
sera vérifié pour obtenir des informations sur une étendue parente. Si une étendue parente est trouvée, la nouvelle étendue est ajoutée en tant qu’enfant. Sinon, l’étendue parente est créée et ajoutée à et tous les context
appels en aval start()
utilisent l’étendue créée comme parent.
Définit des attributs de requête supplémentaires sur l’étendue créée quand processKind
est SEND.
Retourne l’ID de diagnostic et le contexte d’étendue de l’étendue retournée quand processKind
est MESSAGE.
Crée une étendue de suivi avec un parent distant et retourne cette étendue quand est donné quand processKind
est PROCESS.
Exemples de code
Démarre une étendue de suivi avec le nom de méthode fourni et l’opération AMQP SEND
Parameters:
Returns:
start
public default Context start(String methodName, StartSpanOptions options, Context context)
Crée une étendue de suivi.
Le context
sera vérifié pour obtenir des informations sur une étendue parente. Si une étendue parente est trouvée, la nouvelle étendue est ajoutée en tant qu’enfant. Sinon, l’étendue parente est créée et ajoutée à et tous les context
appels en aval start()
utilisent l’étendue créée comme parent.
Exemples de code
Démarre une étendue de suivi avec le nom de méthode fourni et l’étendue parente explicite
// 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:
S’applique à
Azure SDK for Java