Zum Hauptinhalt springen
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
EndpunktBeschreibung
https://appsignal-endpoint.net/errorsAkzeptiert JSON-formatierte Daten

URL-Parameter

ParameterTypBeschreibung
api_keyStringFront-end-API-Schlüssel, zu finden in den App-Einstellungen.
Shell
https://appsignal-endpoint.net/errors?api_key=<api_key>

Body-Parameter

Der POST-Body sollte ein JSON-Objekt enthalten, das wie folgt formatiert ist:
ParameterTypBeschreibung
timestampInteger(Epoch-)Zeitstempel, zu dem der Fehler aufgetreten ist
actionString(Optional) Name der Action, in der der Fehler aufgetreten ist (z. B. BlogpostController#show oder UserInfoLambda#perform)
namespaceStringNamespace, in dem der Fehler aufgetreten ist (z. B. frontend oder lambda)
errorErrorError-Objekt, siehe Beschreibung unten
revisionString(Optional) Vollständiger (GIT-)Revisions-Hash der Anwendung
tagsObject<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"})
paramsObject<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"})
environmentObject<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"})
breadcrumbsArray<Breadcrumb>(Optional) Array von Breadcrumbs, die vor dem Auftreten des Fehlers aufgezeichnet wurden. Siehe unten für die Beschreibung des Breadcrumb-Objekts
languageString(Optional) Sprachzeichenkette, die zum Formatieren des Backtraces verwendet wird. Akzeptierte Werte sind ruby, javascript. Bei Verwendung einer anderen Sprache leer lassen
Error:
ParameterTypBeschreibung
nameStringName des Fehlers (z. B. StandardError)
messageString(Optional) Fehlermeldung
backtraceArray<String>(Optional) Array von Backtrace-Zeilen, jede Zeile sollte ein String sein
Breadcrumb:
ParameterTypBeschreibung
categoryStringKategorie, unter der das Ereignis eingeordnet wird (z. B. network oder navigation)
actionStringKontextuelle Informationen zum Ereignis
messageString(optional) Eine Logmeldung oder ein anderer String, der an AppSignal gesendet wird
metadataObject<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.