AppSignal unterstützt mehrere OpenTelemetry-Sprachintegrationen. Das Datenmodell stimmt jedoch möglicherweise nicht immer perfekt überein, was sich darauf auswirken kann, wie OpenTelemetry-Daten in der AppSignal-Oberfläche angezeigt werden. Mit den auf dieser Seite aufgeführten Attributen können Sie die Darstellung von Trace- und Span-Daten anpassen.
🔐 Senden Sie keine personenbezogenen Daten (Personal Identifiable Information, PII) an AppSignal. Filtern Sie PII (z. B. Namen, E-Mail-Adressen) und verwenden Sie stattdessen eine ID, einen Hash oder einen pseudonymisierten Bezeichner.
Für HIPAA-pflichtige Stellen finden Sie weitere Informationen zum Abschluss eines Business Associate Agreement (BAA) in unserer Business Add-Ons-Dokumentation.
Auf einen Span zugreifen
Wenn Sie den Trace oder Span anpassen, importieren Sie zunächst das OpenTelemetry-Trace-Modul in der Datei, in der Sie die gemeldeten Trace-Daten anpassen möchten.from opentelemetry import trace
Erstellen Sie mit diesem Trace-Modul einen neuen Span:tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("Span name") as span:
# Set attribute values
span.set_attribute("attribute name", "attribute value")
Oder rufen Sie den aktuell aktiven Span ab:span = trace.get_current_span()
# Set attribute values
span.set_attribute("attribute name", "attribute value")
Wenn Sie den Trace oder Span anpassen, importieren Sie zunächst das OpenTelemetry-Trace-Modul in der Datei, in der Sie die gemeldeten Trace-Daten anpassen möchten.import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/trace"
)
Erstellen Sie mit diesem Trace-Modul einen neuen Span:var tracer = otel.Tracer("my-tracer-name")
func httpHandler(w http.ResponseWriter, r *http.Request) {
ctx, span := tracer.Start(r.Context(), "hello-span")
defer span.End()
// Set attributes
}
Hinweis: In diesen Beispielen verlassen wir uns auf den Kontext der HTTP-Anfrage, der durch r.Context() angegeben wird.
Das Abrufen des Kontexts kann in Ihrer Anwendung anders sein.Oder rufen Sie den aktuell aktiven Span ab:func httpHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
span := trace.SpanFromContext(ctx)
// Set attributes
}
AppSignal-Attribute
Namespace
Dieses Attribut gilt für den gesamten Trace. Es kann an einem untergeordneten Span gesetzt werden und muss nicht am obersten übergeordneten Span gesetzt werden. Dieses Attribut kann nur einmal pro Trace gesetzt werden. Wenn es mehrfach gesetzt wird, wird nur das Attribut eines einzigen Spans im Trace angewendet.
- Attributname:
appsignal.namespace
- Werttyp:
String
Gruppieren Sie Traces nach Namespace für eine bessere Organisation in der AppSignal-Oberfläche.
Namespaces werden pro OpenTelemetry-Service-Name im Format <Service name>/<Namespace> gruppiert, z. B. “Web server/admin” oder “Background worker/billing”. Mit diesem Attribut können Sie nur den Namespace-Teil konfigurieren. Der Standard-Namespace für alle Traces ist <Service name>/default.
span.set_attribute("appsignal.namespace", "admin")
Stammaktionsname
Dieses Attribut gilt für den gesamten Trace. Es kann an einem untergeordneten Span gesetzt werden und muss nicht am obersten übergeordneten Span gesetzt werden. Dieses Attribut kann nur einmal pro Trace gesetzt werden. Wenn es mehrfach gesetzt wird, wird nur das Attribut eines einzigen Spans im Trace angewendet.
- Attributname:
appsignal.action_name
- Werttyp:
String
Legen Sie den Aktionsnamen des Traces fest, der zum Erstellen von Incidents und zur Gruppierung von Tracings auf AppSignal.com verwendet wird. Dadurch wird jede automatische Zuordnung überschrieben, die durch die AppSignal-Unterstützung für bestimmte Instrumentierungen vorgenommen wurde. Dies ist nützlich für Traces, die nicht von unterstützten Bibliotheken erstellt werden. Wenn Ihr Trace mit anderen nicht benannten oder schlecht gruppierten Traces gruppiert wird, fehlt möglicherweise dieses Attribut.
Wir möchten unsere automatische Gruppierung im Laufe der Zeit verbessern, daher lassen Sie es uns bitte wissen, wenn Sie feststellen, dass dieses Attribut benötigt wird.
span.set_attribute("appsignal.action_name", "ControllerName#action")
- Attributname:
appsignal.tag.<tag_name>
- Werttyp:
String
Versehen Sie Traces mit Tags, um sie auf den Trace-Detailseiten in den Vordergrund zu rücken und Traces in der AppSignal-Oberfläche zu filtern. Es können mehrere Tags an Spans in einem Trace gesetzt werden. Tags können einem beliebigen Span in einem Trace auf jeder Ebene des Traces hinzugefügt werden.
Sie können Link-Vorlagen verwenden, um Tags mit einer bestimmten URL zu verknüpfen, wie z. B. einem Benutzerprofil oder einer Admin-Seite.
Der Tag-Attributschlüssel besteht aus zwei Teilen, dem Präfix appsignal.tag und dem Tag-Schlüssel. Für das Tag user_id wird dies zum Attributschlüssel appsignal.tag.user_id.
span.set_attribute("appsignal.tag.<tag_name>", "string") # Example format
span.set_attribute("appsignal.tag.user_id", user.id)
Funktionsparameter
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
appsignal.function.parameters
- Werttyp: JSON-serialisiertes Objekt
Melden Sie die Parameter eines Funktionsaufrufs mit diesem Attribut.
Verwenden Sie dies, um Parameter zu setzen, die einem Background Job, einer Task oder einem Funktionsaufruf übergeben werden, den Sie verfolgen möchten.
Die in diesem Span-Attribut gesetzten Werte können mit der Konfigurationsoption appsignal.config.filter_function_parameters gefiltert werden.
span.set_attribute("appsignal.function.parameters", json.dumps({
"param1": "value1",
"param2": "value2"
}))
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
http.response.header.<key>
- Werttyp: Array of Strings
Melden Sie die Header der Antwort mit einem OpenTelemetry-Span-Attribut.
Dieses Span-Attribut ist auch in der OpenTelemetry HTTP Span Specification dokumentiert.
span.set_attribute("http.response.header.content-type", ["application/json"])
span.set_attribute("http.response.header.custom-header", ["abc", "def"])
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
http.request.header.<key>
- Werttyp: Array of Strings
Melden Sie die Header der Anfrage mit einem OpenTelemetry-Span-Attribut.
Dieses Span-Attribut ist auch in der OpenTelemetry HTTP Span Specification dokumentiert.
span.set_attribute("http.request.header.content-type", ["application/json"])
span.set_attribute("http.request.header.custom-header", ["abc", "def"])
Request-Query-Parameter
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
appsignal.request.query_parameters
- Werttyp: JSON-serialisiertes Objekt
Melden Sie die Query-Parameter einer eingehenden HTTP-Anfrage mit diesem Attribut.
Die in diesem Span-Attribut gesetzten Werte können mit der Konfigurationsoption appsignal.config.filter_request_query_parameters gefiltert werden.
span.set_attribute("appsignal.request.query_parameters", json.dumps({
"category": "shoes",
"filter": "color:blue"
}))
Request-Payload
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
appsignal.request.payload
- Werttyp: JSON-serialisiertes Objekt
Melden Sie die Payload einer eingehenden HTTP-Anfrage mit diesem Attribut.
Die in diesem Span-Attribut gesetzten Werte können mit der Konfigurationsoption appsignal.config.filter_request_payload gefiltert werden.
span.set_attribute("appsignal.request.payload", json.dumps({
"title": "My new blog post"
"body": "Lorem ipsum"
}))
Request-Session-Daten
Der Wert dieses Attributs muss als JSON-Zeichenkette serialisiert werden. Ein Hash oder Objekt aus der Integrationssprache wird nicht direkt unterstützt und wird stillschweigend ignoriert.
- Attributname:
appsignal.request.session_data
- Werttyp: JSON-serialisiertes Objekt
Melden Sie die Session-Daten einer eingehenden HTTP-Anfrage mit diesem Attribut.
Die in diesem Span-Attribut gesetzten Werte können mit der Konfigurationsoption appsignal.config.filter_request_session_data gefiltert werden.
span.set_attribute("appsignal.request.session_data", json.dumps({
"user_id": 123
"theme": "dark"
}))