Ce point de terminaison de l’API Error est fourni pour ajouter des erreurs
supplémentaires à AppSignal, lorsqu’une intégration existante ne peut pas être
utilisée ou que le langage utilisé n’est pas (encore) pris en charge.
Point de terminaison
Méthode de requête : POST
| Point de terminaison | Description |
|---|
| https://appsignal-endpoint.net/errors | Accepte les données formatées JSON |
Paramètres d’URL
| Paramètre | Type | Description |
|---|
| api_key | String | Clé d’API Front-end, peut être trouvée dans les paramètres de l’application. |
https://appsignal-endpoint.net/errors?api_key=<api_key>
Paramètres du corps
Le corps de la requête POST doit contenir un objet JSON, formaté comme suit :
| Paramètre | Type | Description |
|---|
| timestamp | Integer | Timestamp (Epoch) auquel l’erreur s’est produite |
| action | String | (Optionnel) Nom de l’action où l’erreur s’est produite (par exemple BlogpostController#show ou UserInfoLambda#perform) |
| namespace | String | Espace de noms où l’erreur s’est produite (par exemple frontend ou lambda) |
| error | Error | Objet Error, voir la description ci-dessous |
| revision | String | (Optionnel) Hash complet de la révision (GIT) de l’application |
| tags | Object<String, String> | (Optionnel) Tags pour filtrer l’échantillon ou fournir un contexte supplémentaire. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple {"account_id": "abc-123"}) |
| params | Object<String, String> | (Optionnel) Paramètres qui ont été passés à la fonction où l’erreur s’est produite. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple {"id": "abc-123"}) |
| environment | Object<String, String> | (Optionnel) Valeurs d’environnement définies au moment où l’erreur s’est produite. Assurez-vous que les clés et les valeurs sont des chaînes (par exemple {"REGION": "eu-central-1"}) |
| breadcrumbs | Array<Breadcrumb> | (Optionnel) Tableau de breadcrumbs, enregistrés avant que l’erreur ne se produise. Voir ci-dessous la description de l’objet Breadcrumb |
| language | String | (Optionnel) Chaîne de langage, utilisée pour formater la backtrace. Les valeurs acceptées sont ruby, javascript. Laissez vide lorsque vous utilisez un autre langage |
Error :
| Paramètre | Type | Description |
|---|
| name | String | Nom de l’erreur (par exemple StandardError) |
| message | String | (Optionnel) Message d’erreur |
| backtrace | Array<String> | (Optionnel) Tableau des lignes de backtrace, chaque ligne doit être une chaîne |
Breadcrumb :
| Paramètre | Type | Description |
|---|
| category | String | Catégorie pour étiqueter l’événement (par exemple network ou navigation) |
| action | String | Informations contextuelles liées à l’événement |
| message | String | (optionnel) Un message de log ou une autre chaîne à envoyer à AppSignal |
| metadata | Object<String, String> | (optionnel) Un objet de métadonnées lié à l’événement |
Par exemple :
{
"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"
}
Exemple
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
Note : Cet endpoint est optimisé pour de grands volumes de trafic et ne
valide pas la clé API ni la charge utile. Une réponse 200 (OK) est renvoyée lorsque la
taille du corps est dans la limite de 200k. Cela ne signifie pas que la requête est
acceptée lors de sa réception.