Site- und Quellen-IDs finden
Eine Logsuche benötigt einesite_id und eine oder mehrere source_ids. Beide
erscheinen in der URL einer Log-Quelle in AppSignal. Öffnen Sie eine Log-Quelle und
lesen Sie sie aus dem Pfad ab:
Log-Zeilen durchsuchen
Request-Body
Setzen Sie
use_expressions auf true, um die auf dieser Seite dokumentierte
ausdrucksbasierte Abfragesprache zu verwenden.
pagination nimmt per_page (Zahl), order (ASC oder DESC) und einen cursor
mit einem time-Feld (ein ISO-8601-Zeitstempel oder null für die erste Seite)
entgegen. Um die nächste Seite abzurufen, senden Sie den Zeitstempel der letzten
erhaltenen Zeile als cursor.time der nächsten Anfrage.
Beispielanfrage
Antwort
Der Endpunkt gibt ein Array von Log-Zeilen zurück. Jede Zeile enthält diese Felder:Strukturierte Felder wie
status_code, path oder detail liegen im
json-Feld, nicht in attributes. Fragen Sie sie über ihren exakten Schlüssel
ab, wie er im JSON Ihres Logs erscheint (zum Beispiel status_code=401 oder
detail.message:"required").Abfragesprache
Wennuse_expressions true ist, unterstützt der query-String boolesche Logik
über Felder von Log-Zeilen und den strukturierten json-Body.
Operatoren
String-Operatoren (
=, !=, :, !:) vergleichen beide Seiten als Strings.
Numerische Operatoren (>, >=, <, <=) wandeln beide Seiten in eine Zahl um;
kann ein Wert nicht als Zahl geparst werden, wird diese Log-Zeile übersprungen.
Ausdrücke kombinieren
- AND / OR:
severity=error AND hostname:weboderseverity=info OR severity=warn. - Implizites AND: Ein Leerzeichen zwischen Ausdrücken bedeutet AND.
severity=error hostname:webentsprichtseverity=error AND hostname:web. - Verschachtelung mit Klammern:
message:"API request" AND (severity=info OR severity=warn). - Vorrang: AND bindet stärker als OR.
OR-Gruppe verwendet werden, nicht nur
Gleichheit — zum Beispiel message:"API request" AND (user.id>1000 OR user.email:"example.com").
Felder
Gegeben sei eine Log-Zeile mit diesem JSON-Body:- Basisfelder:
message,severity,hostnameundgrouppassen auf die obersten Felder der Log-Zeile. - Verschachteltes JSON: Verwenden Sie Punktnotation, um in den
json-Body zu greifen, etwastatus_code=200oderuser.id=12345. - JSON-Arrays: Indizieren Sie Array-Elemente, etwa
user.roles.0=admin. - Escapte Punkte: Um einen wörtlichen Punkt in einem Schlüsselnamen zu treffen, escapen Sie ihn.
user.location\.country=UStrifft den Schlüssellocation.countryinnerhalb vonuser, statt eines verschachteltencountry-Objekts. - Standardfeld: Ein nackter Begriff ohne Feld trifft
messagemit demcontains-Operator.timeoutentsprichtmessage:timeout.
attributes. voranstellen oder ein Typsuffix anhängen,
um es abzufragen — referenzieren Sie es direkt über den Namen. Siehe alte
Abfragesyntax, wenn Sie ältere Abfragen haben.
Werte in Anführungszeichen
Setzen Sie Werte, die Leerzeichen oder Klammern enthalten, in doppelte Anführungszeichen. Andernfalls trennt das Leerzeichen den Wert in separate Ausdrücke, die durch implizites AND verbunden werden.\" und einen Backslash mit \\. Zum
Beispiel trifft message:"value with \"quotes\"" den Text value with "quotes".
Alte Abfragesyntax
Ältere Abfragen speicherten Attribute als typisierte Felder, sodass sieattributes. voranstellen, ein Typsuffix (_string, _int) anhängen und für
mehrere Werte eine [ ]-Liste verwenden mussten. Die aktuelle Abfragesprache
entfernt alle drei — referenzieren Sie Felder direkt und verwenden Sie OR
anstelle einer Liste:
422 mit dem
Fehler-Slug legacy_log_query_syntax zurück.