Naar hoofdinhoud gaan
Dit Error API-endpoint wordt geboden om aanvullende errors aan AppSignal toe te voegen, wanneer een bestaande integratie niet kan worden gebruikt of de gebruikte taal (nog) niet wordt ondersteund.

Endpoint

Request-methode: POST
EndpointBeschrijving
https://appsignal-endpoint.net/errorsAccepteert JSON-geformatteerde data

URL-parameters

ParameterTypeBeschrijving
api_keyStringFront-end API-sleutel, te vinden in App-instellingen.
Shell
https://appsignal-endpoint.net/errors?api_key=<api_key>

Body-parameters

De post-body moet een JSON-object bevatten, geformatteerd als volgt:
ParameterTypeBeschrijving
timestampInteger(Epoch) timestamp waarop de error optrad
actionString(Optioneel) Naam van de action waar de error optrad (bijv. BlogpostController#show of UserInfoLambda#perform)
namespaceStringNamespace waar de error optrad (bijv. frontend of lambda)
errorErrorError-object, zie beschrijving hieronder
revisionString(Optioneel) Volledige (GIT) revisie-hash van de applicatie
tagsObject<String, String>(Optioneel) Tags om de sample op te filteren, of om aanvullende context te bieden. Zorg ervoor dat zowel keys als values strings zijn (bijv. {"account_id": "abc-123"})
paramsObject<String, String>(Optioneel) Parameters die werden meegegeven aan de functie waar de error optrad. Zorg ervoor dat zowel keys als values strings zijn (bijv. {"id": "abc-123"})
environmentObject<String, String>(Optioneel) Environment-waarden die waren ingesteld toen de error optrad. Zorg ervoor dat zowel keys als values strings zijn (bijv. {"REGION": "eu-central-1"})
breadcrumbsArray<Breadcrumb>(Optioneel) Array van breadcrumbs, opgenomen voordat de error optrad. Zie hieronder voor een beschrijving van het Breadcrumb-object
languageString(Optioneel) Taalstring, gebruikt om de backtrace te formatteren. Geaccepteerde waarden zijn ruby, javascript. Laat leeg bij gebruik van een andere taal
Error:
ParameterTypeBeschrijving
nameStringError-naam (bijv. StandardError)
messageString(Optioneel) Errorbericht
backtraceArray<String>(Optioneel) Array van backtrace-regels, elke regel moet een string zijn
Breadcrumb:
ParameterTypeBeschrijving
categoryStringCategorie waaronder het event wordt gelabeld (bijv. network of navigation)
actionStringContextuele informatie gerelateerd aan het event
messageString(optioneel) Een logbericht of andere string om naar AppSignal te sturen
metadataObject<String, String>(optioneel) Een object met metadata gerelateerd aan het event
Bijvoorbeeld:
{
  "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"
}

Voorbeeld

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
Let op: dit endpoint is geoptimaliseerd voor grote hoeveelheden verkeer en valideert de API-sleutel of payload niet; er wordt een 200 (OK)-respons geretourneerd zolang de body-grootte binnen de limiet van 200k ligt. Dit betekent niet dat de aanvraag bij ontvangst wordt geaccepteerd.