Dieser Error-API-Endpunkt ermöglicht es, zusätzliche Fehler an AppSignal zu senden, wenn eine bestehende Integration nicht verwendet werden kann oder die verwendete Sprache (noch) nicht unterstützt wird.
Endpunkt
Request-Methode: POST
| Endpunkt | Beschreibung |
|---|
| https://appsignal-endpoint.net/errors | Akzeptiert JSON-formatierte Daten |
URL-Parameter
| Parameter | Typ | Beschreibung |
|---|
| api_key | String | Front-end-API-Schlüssel, zu finden in den App-Einstellungen. |
https://appsignal-endpoint.net/errors?api_key=<api_key>
Body-Parameter
Der POST-Body sollte ein JSON-Objekt enthalten, das wie folgt formatiert ist:
| Parameter | Typ | Beschreibung |
|---|
| timestamp | Integer | (Epoch-)Zeitstempel, zu dem der Fehler aufgetreten ist |
| action | String | (Optional) Name der Action, in der der Fehler aufgetreten ist (z. B. BlogpostController#show oder UserInfoLambda#perform) |
| namespace | String | Namespace, in dem der Fehler aufgetreten ist (z. B. frontend oder lambda) |
| error | Error | Error-Objekt, siehe Beschreibung unten |
| revision | String | (Optional) Vollständiger (GIT-)Revisions-Hash der Anwendung |
| tags | Object<String, String> | (Optional) Tags zum Filtern des Samples oder um zusätzlichen Kontext bereitzustellen. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. {"account_id": "abc-123"}) |
| params | Object<String, String> | (Optional) Parameter, die an die Funktion übergeben wurden, in der der Fehler aufgetreten ist. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. {"id": "abc-123"}) |
| environment | Object<String, String> | (Optional) Umgebungswerte, die zum Zeitpunkt des Fehlers gesetzt waren. Achten Sie darauf, dass sowohl Schlüssel als auch Werte Strings sind (z. B. {"REGION": "eu-central-1"}) |
| breadcrumbs | Array<Breadcrumb> | (Optional) Array von Breadcrumbs, die vor dem Auftreten des Fehlers aufgezeichnet wurden. Siehe unten für die Beschreibung des Breadcrumb-Objekts |
| language | String | (Optional) Sprachzeichenkette, die zum Formatieren des Backtraces verwendet wird. Akzeptierte Werte sind ruby, javascript. Bei Verwendung einer anderen Sprache leer lassen |
Error:
| Parameter | Typ | Beschreibung |
|---|
| name | String | Name des Fehlers (z. B. StandardError) |
| message | String | (Optional) Fehlermeldung |
| backtrace | Array<String> | (Optional) Array von Backtrace-Zeilen, jede Zeile sollte ein String sein |
Breadcrumb:
| Parameter | Typ | Beschreibung |
|---|
| category | String | Kategorie, unter der das Ereignis eingeordnet wird (z. B. network oder navigation) |
| action | String | Kontextuelle Informationen zum Ereignis |
| message | String | (optional) Eine Logmeldung oder ein anderer String, der an AppSignal gesendet wird |
| metadata | Object<String, String> | (optional) Ein Objekt mit Metadaten zum Ereignis |
Zum Beispiel:
{
"action": "BlogpostController#show",
"namespace": "frontend",
"timestamp": 1559201249,
"error": {
"name": "StandardError",
"message": "Error message",
"backtrace": ["backtrace/line:1", "backtrace/line:2"]
},
"environment": {
"os": "windows",
"agent": "super secret user agent"
},
"params": {
"foo": "bar"
},
"tags": {
"account_id": "abc-123"
},
"revision": "revision-abc",
"breadcrumbs": [
{
"timestamp": 1559201249,
"category": "request",
"action": "http://google.com",
"message": "request failed",
"metadata": {
"code": "not_found"
}
}
],
"language": "javascript"
}
Beispiel
require "uri"
require "json"
require "net/http"
url = URI("https://appsignal-endpoint.net/errors?api_key=FRONTEND-API-KEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"action": "BlogpostController#show",
"namespace": "frontend",
"timestamp": 1640327525,
"error": {
"name": "StandardError",
"message": "Error message",
"backtrace": [
"backtrace/line:1",
"backtrace/line:2"
]
},
"environment": {
"os": "windows",
"agent": "super secret user agent"
},
"params": {
"foo": "bar"
},
"tags": {
"account_id": "abc-123"
},
"revision": "revision-abc-123",
"breadcrumbs": [
{
"timestamp": 1640327525,
"category": "request",
"action": "http://google.com",
"message": "request failed",
"metadata": {
"code": "not_found"
}
}
],
"language": "javascript"
})
response = https.request(request)
puts response.read_body
Hinweis: Dieser Endpoint ist für hohe Traffic-Mengen optimiert und validiert
weder den API-Schlüssel noch den Payload. Eine 200-Antwort (OK) wird zurückgegeben, wenn
die Body-Größe innerhalb des Limits von 200k liegt. Das bedeutet nicht, dass die Anfrage
beim Empfang akzeptiert wurde.