Partager via


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é

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.opentelemetry.Contexte

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.méthodes de démarrage.

Clé pour Context laquelle indique que le contexte contient le nom des étendues utilisateur créées.

Résumé de la méthode

Modificateur et type Méthode et description
default void addEvent(String name, Map<String,Object> attributes, OffsetDateTime timestamp)

Déprécié

Ajoute un événement à l’étendue actuelle avec le fourni timestamp et attributes.

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

Ajoute un événement à l’étendue présente dans avec le Context fourni timestamp et attributes.

default void addLink(Context context)

Déprécié

Permet de lier plusieurs étendues de suivi.

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

Déprécié

définir l’attribut spécifique e.g. http_status_code explicitement et utiliser end(String errorMessage, Throwable throwable, Context context).

Termine l’étendue de suivi actuelle.

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

Complète l’étendue du contexte.

default Context extractContext(String diagnosticId, Context context)

Déprécié

Extrait le contexte de l’étendue à Context partir de amont.

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

Extrait le contexte de l’étendue à Context partir de amont.

default Context getSharedSpanBuilder(String spanName, Context context)

Déprécié

utiliser addLink(TracingLink link) à la place

Retourne un générateur d’étendues avec le nom fourni dans Context.

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

Injecte le contexte de suivi.

default boolean isEnabled()

Vérifie si le traceur est activé.

default AutoCloseable makeSpanCurrent(Context context)

Rend l’étendue actuelle.

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

Ajoute des métadonnées à l’étendue actuelle.

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

Définit l’attribut long.

default Context setSpanName(String spanName, Context context)

Déprécié

non nécessaire.

Définit le nom des étendues créées.

abstract Context start(String methodName, Context context)

Crée une étendue de suivi.

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

Déprécié

Crée une étendue de suivi pour les appels AMQP.

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

Crée une étendue de suivi.

Détails du champ

AZ_TRACING_NAMESPACE_KEY

@Deprecated
public 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.

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é

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.

PARENT_SPAN_KEY

@Deprecated
public 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.opentelemetry.Contexte

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é

utilisez makeSpanCurrent(Context context) à la place.

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é

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.

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é

passez le nom de l’étendue au traceur.méthodes de démarrage.

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 attributes, OffsetDateTime timestamp)

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:

name - nom de l’événement.
attributes - attributs supplémentaires à définir pour l’événement.
timestamp - Instant, en UTC, auquel l’événement sera associé à l’étendue.

addEvent

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

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:

name - nom de l’événement.
attributes - attributs supplémentaires à définir pour l’événement.
timestamp - Instant, en UTC, auquel l’événement sera associé à l’étendue.
context - métadonnées d’appel contenant des informations sur l’étendue à laquelle l’événement doit être associé.

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:

context - Métadonnées supplémentaires transmises via la pile d’appels.

end

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

Déprécié

définir l’attribut spécifique e.g. http_status_code explicitement et utiliser end(String errorMessage, Throwable throwable, Context context).

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:

responseCode - Réponse status code si l’étendue se trouve dans un contexte d’appel HTTP.
error - Throwable qui s’est produit pendant la période ou null si aucune exception ne s’est produite.
context - Métadonnées supplémentaires transmises via la pile d’appels.

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:

errorMessage - Message d’erreur qui s’est produit pendant l’appel ou null si aucune erreur. s’est produit. Toute autre chaîne non null indique une erreur avec la description fournie dans errorMessage.
throwable - Throwable qui s’est produit pendant la période ou null si aucune exception ne s’est produite.
context - Métadonnées supplémentaires transmises via la pile d’appels.

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:

diagnosticId - Identificateur unique pour les informations de trace de l’étendue.
context - Métadonnées supplémentaires transmises via la pile d’appels.

Returns:

Objet mis à jour Context contenant le contexte d’étendue.

extractContext

public default Context extractContext(Function headerGetter)

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:

headerGetter - Identificateur unique pour les informations de trace de l’étendue et du todo.

Returns:

Objet mis à jour Context contenant le contexte d’étendue.

getSharedSpanBuilder

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

Déprécié

utiliser addLink(TracingLink link) à la place

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:

spanName - Nom pour donner l’étendue du générateur créé.
context - Métadonnées supplémentaires transmises via la pile d’appels.

Returns:

Objet mis à jour Context contenant le générateur d’étendues.

injectContext

public default void injectContext(BiConsumer headerSetter, Context context)

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:

headerSetter - rappel avec lequel définir le contexte.
context - instance du contexte de trace

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:

true si le traceur est activé, false sinon.

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 - Contexte avec étendue.
 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:

Fermable qui doit être fermé dans le même thread avec l’instruction try-with-resource.

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:

key - Nom des métadonnées.
value - Valeur des métadonnées.
context - Métadonnées supplémentaires transmises via la pile d’appels.

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:

key - nom d’attribut
value - valeur atteribute
context - contexte de suivi

setSpanName

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

Déprécié

non nécessaire.

Définit le nom des étendues créées.

Exemples de code

Récupérer le nom de l’étendue retournée

Parameters:

spanName - Nom pour donner l’étendue suivante.
context - Métadonnées supplémentaires transmises via la pile des appels.

Returns:

Objet mis à jour Context contenant le nom de l’étendue retournée.

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:

methodName - Nom de la méthode déclenchant la création de l’étendue.
context - Métadonnées supplémentaires transmises via la pile des appels.

Returns:

Objet mis à jour Context contenant l’étendue retournée.

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:

spanName - Nom de la méthode déclenchant la création de l’étendue.
context - Métadonnées supplémentaires transmises via la pile des appels.
processKind - Type d’opération AMQP.

Returns:

Objet mis à jour Context contenant l’étendue retournée.

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:

methodName - Nom de la méthode déclenchant la création de l’étendue.
options - options de création d’étendue.
context - Métadonnées supplémentaires transmises via la pile des appels.

Returns:

Objet mis à jour Context contenant l’étendue retournée.

S’applique à