Zum Hauptinhalt springen
AppSignal ist kompatibel mit OpenTelemetry-Instrumentierungspaketen. Einige dieser Instrumentierungspakete erfordern möglicherweise eine zusätzliche Einrichtung. Diese Instrumentierungen enthalten nicht immer alle Informationen, die Sie zum Debuggen von Problemen benötigen. Für ein feingranulareres Reporting können Sie benutzerdefinierte Instrumentierung hinzufügen. Wir unterstützen OpenTelemetry-Tracing wie in der OpenTelemetry-Dokumentation beschrieben. Es ist möglich, einem Span mithilfe von OpenTelemetry-Span-Attributen weitere Daten hinzuzufügen. Es gibt außerdem AppSignal-Span-Attribute, die ändern können, wie Traces gruppiert werden, sowie einige Attribute, die das Herausfiltern sensibler Daten ermöglichen.

Einen neuen Span erstellen

Erstellen Sie mit dem Tracer aus dem globalen Tracer-Provider einen neuen 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();
}
Hinweis: In diesen Beispielen verwenden wir den von OpenTelemetry gesetzten globalen Tracer-Provider. Möglicherweise möchten Sie den Tracer in Ihre Klassen injizieren, um die Testbarkeit zu verbessern.

Den aktuellen Span abrufen

Sie können auch den aktuell aktiven Span abrufen:
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");
}
Hinweis: Dies gibt nur dann einen Span zurück, wenn bereits einer aktiv ist. Weitere Möglichkeiten zum Erstellen und Abrufen von Spans sind auf der OpenTelemetry-Java-Instrumentierungsseite dokumentiert.

AppSignal-Attribute

Sobald Sie einen Span erstellt oder abgerufen haben, können Sie bestimmte AppSignal-spezifische Attribute setzen, um anzupassen, wie die Daten in AppSignal eintreffen.
Span span = // Create a new span or fetch the current span
span.setAttribute("attribute_name", "attribute_value");
Weitere Informationen dazu, welche benutzerdefinierten AppSignal-Attribute unterstützt werden, finden Sie in unseren Leitfäden: