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
| Endpoint | Beschrijving |
|---|
| https://appsignal-endpoint.net/errors | Accepteert JSON-geformatteerde data |
URL-parameters
| Parameter | Type | Beschrijving |
|---|
| api_key | String | Front-end API-sleutel, te vinden in App-instellingen. |
https://appsignal-endpoint.net/errors?api_key=<api_key>
Body-parameters
De post-body moet een JSON-object bevatten, geformatteerd als volgt:
| Parameter | Type | Beschrijving |
|---|
| timestamp | Integer | (Epoch) timestamp waarop de error optrad |
| action | String | (Optioneel) Naam van de action waar de error optrad (bijv. BlogpostController#show of UserInfoLambda#perform) |
| namespace | String | Namespace waar de error optrad (bijv. frontend of lambda) |
| error | Error | Error-object, zie beschrijving hieronder |
| revision | String | (Optioneel) Volledige (GIT) revisie-hash van de applicatie |
| tags | Object<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"}) |
| params | Object<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"}) |
| environment | Object<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"}) |
| breadcrumbs | Array<Breadcrumb> | (Optioneel) Array van breadcrumbs, opgenomen voordat de error optrad. Zie hieronder voor een beschrijving van het Breadcrumb-object |
| language | String | (Optioneel) Taalstring, gebruikt om de backtrace te formatteren. Geaccepteerde waarden zijn ruby, javascript. Laat leeg bij gebruik van een andere taal |
Error:
| Parameter | Type | Beschrijving |
|---|
| name | String | Error-naam (bijv. StandardError) |
| message | String | (Optioneel) Errorbericht |
| backtrace | Array<String> | (Optioneel) Array van backtrace-regels, elke regel moet een string zijn |
Breadcrumb:
| Parameter | Type | Beschrijving |
|---|
| category | String | Categorie waaronder het event wordt gelabeld (bijv. network of navigation) |
| action | String | Contextuele informatie gerelateerd aan het event |
| message | String | (optioneel) Een logbericht of andere string om naar AppSignal te sturen |
| metadata | Object<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.