Passer au contenu principal
AppSignal est compatible avec les paquets d’instrumentation OpenTelemetry. Certains de ces paquets d’instrumentation peuvent nécessiter une configuration supplémentaire. Ces instrumentations n’incluent pas toujours toutes les informations dont vous avez besoin pour déboguer les problèmes. Pour un reporting plus fin, vous pouvez ajouter une instrumentation personnalisée. Nous prenons en charge le tracing OpenTelemetry tel que décrit dans la documentation OpenTelemetry. Il est possible d’ajouter plus de données à un span en utilisant les attributs de span OpenTelemetry. Il existe également des attributs de span AppSignal qui peuvent modifier la façon dont les traces sont regroupées et certains attributs qui permettent de filtrer les données sensibles.

Créer un nouveau span

En utilisant le tracer du tracer provider global, créez un nouveau span.
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Scope;

public void someFunction() {
    // Get OpenTelemetry tracer
    Tracer tracer = GlobalOpenTelemetry.getTracer("my-app");

    // Create a new span
    Span span = tracer.spanBuilder("My span").startSpan();

    // Set attributes
    span.setAttribute("operation.name", "handle_request");

    // Your application logic here

    // Close the span
    span.end();
}
Note : Dans ces exemples, nous utilisons le tracer provider global défini par OpenTelemetry. Vous pouvez injecter le tracer dans vos classes pour une meilleure testabilité.

Obtenir le span actuel

Vous pouvez également récupérer le span actif actuel :
import io.opentelemetry.api.trace.Span;

public void someFunction() {
    Span span = Span.current();

    // Set attributes on the current span
    span.setAttribute("user.id", userId);
    span.setAttribute("operation.name", "database_query");
}
Note : Cela ne retournera un span que si un span est déjà actif. D’autres façons de créer et d’obtenir des spans sont documentées sur la page d’instrumentation OpenTelemetry Java.

Attributs AppSignal

Une fois que vous avez créé ou récupéré un span, vous pouvez définir certains attributs spécifiques à AppSignal pour personnaliser la façon dont les données arrivent dans AppSignal.
Span span = // Create a new span or fetch the current span
span.setAttribute("attribute_name", "attribute_value");
Consultez nos guides pour plus d’informations sur les attributs AppSignal personnalisés pris en charge :