
Vérification des requêtes webhook AppSignal
Pour assurer la sécurité de votre application, vous pouvez vérifier que les requêtes webhook entrantes proviennent réellement d’AppSignal. La vérification est effectuée en utilisant un jeton de vérification de webhook pour valider la signature de la requête.Localisation de votre jeton de vérification de webhook
- Accédez à App settings > Integrations dans votre tableau de bord AppSignal.
- Configurez l’intégration webhook que vous souhaitez vérifier.
- Vous y trouverez le Webhook verification token de l’intégration.
Vérification d’une requête
Lorsque AppSignal envoie une requête webhook, elle inclut une signature dans l’en-têteX-Appsignal-Signature. Vous pouvez valider la requête comme suit :
- Concaténez le jeton de vérification de webhook AppSignal avec le corps brut de la requête.
- Générez un hachage SHA256 de la chaîne concaténée.
- Comparez le hachage généré à la valeur dans l’en-tête
X-Appsignal-Signature.
Exemples d’implémentations
Voici quelques exemples de la façon dont vous pouvez vérifier qu’une requête provient d’AppSignal en Ruby, Elixir, Node.js et Python. Remarque : Les exemples ci-dessous sont illustratifs, vous devrez peut-être les adapter en fonction des frameworks, intégrations et dépendances que votre application utilise.Marqueurs de déploiement
Champs
| Champ | Type | Description |
|---|---|---|
marker | Hash<String, Any> | La charge utile du webhook concerne un incident de marqueur. |
Sous-champs du marqueur de déploiement
| Champ | Type | Description |
|---|---|---|
time | String | Horodatage auquel le marqueur de déploiement a été créé. |
marker_id | String | ID interne du marqueur AppSignal pour le marqueur de déploiement. |
site | String | Nom de l’application tel qu’affiché sur AppSignal.com. Utilisation du champ site au lieu de app pour des raisons historiques. |
environment | String | Environnement de l’application tel qu’affiché sur AppSignal.com. |
revision | String | Le nom de la révision du marqueur de déploiement. |
user | String | L’utilisateur qui a créé le marqueur. |
repository | String | URL du dépôt tel que configuré pour l’application sur AppSignal.com. |
url | String | URL de l’application sur AppSignal.com qui a déclenché le webhook. |
Incidents d’exception
Champs
| Champ | Type | Description |
|---|---|---|
exception | Hash<String, Any> | La charge utile du webhook concerne un incident d’exception. |
Sous-champs de l’exception
| Champ | Type | Description |
|---|---|---|
time | String | Horodatage auquel l’exception s’est produite. |
number | Integer | ID de l’incident tel qu’affiché sur AppSignal.com. |
site | String | Nom de l’application tel qu’affiché sur AppSignal.com. Utilisation du champ site au lieu de app pour des raisons historiques. |
environment | String | Environnement de l’application tel qu’affiché sur AppSignal.com. |
app_url | String | URL de l’application sur AppSignal.com qui a déclenché le webhook. |
url | String | URL de l’échantillon spécifique pour l’incident sur AppSignal.com qui a déclenché ce webhook. |
revision | String | Le nom de la révision du marqueur de déploiement. |
user | String | L’utilisateur qui a créé le marqueur. La valeur de l’utilisateur peut également être null si elle n’est pas définie pour une révision de marqueur de déploiement. |
namespace | String | L’espace de noms dans lequel cette exception s’est produite. |
exception | String | Le type d’exception qui a été enregistré par AppSignal. |
message | String | Le message d’exception avec plus de détails sur l’exception. |
app_backtrace | Array<String> | Les lignes du backtrace concernant l’application d’où elles proviennent. Cela exclut toutes les lignes de backtrace des bibliothèques incluses dans l’application. |
first_backtrace_line | String | La première ligne de backtrace du champ app_backtrace. |
action | String | L’action dans laquelle cette exception s’est produite. Soit une action de contrôleur, un worker en arrière-plan ou une action définie manuellement. |
path | String | Le chemin de la requête sur lequel l’exception s’est produite. Ceci n’est défini que pour les requêtes web. Il s’agit de métadonnées définies par défaut par l’intégration AppSignal et également incluses dans le champ metadata. |
hostname | String | Le nom d’hôte de l’hôte sur lequel cette exception s’est produite. |
action_label | String | Une étiquette conviviale pour le type d’action sur laquelle cette exception s’est produite. Utilise request pour l’espace de noms web et job pour l’espace de noms background. Tous les autres espaces de noms utilisent action. |
metadata | Hash<String, String> | Cela inclut les métadonnées définies par l’utilisateur (voir la fonctionnalité de tagging). |
Champs de métadonnées
Vous pouvez ajouter vos propres métadonnées en taguant les échantillons.| Champ | Type | Description |
|---|---|---|
demo_sample | String | Défini par l’intégration AppSignal pour les échantillons de démonstration envoyés à l’aide de notre outil en ligne de commande de démonstration (Ruby / Elixir). Non défini pour tous les autres échantillons. |
method | String | La méthode de requête utilisée pour effectuer une requête. Disponible uniquement pour les requêtes (web). |
path | String | Le chemin de la requête sur lequel l’exception s’est produite. Ceci n’est défini que pour les requêtes web. Contient la même valeur que le champ path. |
Incidents de performance
Champs
| Champ | Type | Description |
|---|---|---|
performance | Hash<String, Any> | La charge utile du webhook concerne un incident de performance. |
Sous-champs de performance
| Champ | Type | Description |
|---|---|---|
time | String | Horodatage auquel l’incident de performance s’est produit. |
number | Integer | ID de l’incident tel qu’affiché sur AppSignal.com. |
site | String | Nom de l’application tel qu’affiché sur AppSignal.com. Utilisation du champ site au lieu de app pour des raisons historiques. |
environment | String | Environnement de l’application tel qu’affiché sur AppSignal.com. |
app_url | String | URL de l’application sur AppSignal.com qui a déclenché le webhook. |
url | String | URL de l’échantillon spécifique pour l’incident sur AppSignal.com qui a déclenché ce webhook. |
revision | String | Le nom de la révision du marqueur de déploiement. |
user | String | L’utilisateur qui a créé le marqueur. La valeur de l’utilisateur peut également être null si elle n’est pas définie pour une révision de marqueur de déploiement. |
namespace | String | L’espace de noms dans lequel cet incident de performance s’est produit. |
duration | Float | Le temps en millisecondes mesuré que la requête/le job/l’action a pris pour se terminer. |
action | String | L’action dans laquelle cet incident de performance s’est produit. Soit une action de contrôleur, un worker en arrière-plan ou une action définie manuellement. |
path | String | Le chemin de la requête sur lequel l’incident de performance s’est produit. Ceci n’est défini que pour les requêtes web. Il s’agit de métadonnées définies par défaut par l’intégration AppSignal et également incluses dans le champ metadata. |
hostname | String | Le nom d’hôte de l’hôte sur lequel cet incident de performance s’est produit. |
action_label | String | Une étiquette conviviale pour le type d’action sur laquelle cet incident de performance s’est produit. Utilise request pour l’espace de noms web et job pour l’espace de noms background. Tous les autres espaces de noms utilisent action. |
metadata | Hash<String, String> | Cela inclut les métadonnées définies par l’utilisateur, voir métadonnées. |
Champs de métadonnées
Vous pouvez ajouter vos propres métadonnées en taguant les échantillons.| Champ | Type | Description |
|---|---|---|
demo_sample | String | Défini par l’intégration AppSignal pour les échantillons de démonstration envoyés à l’aide de notre outil en ligne de commande de démonstration (Ruby / Elixir). Non défini pour tous les autres échantillons. |
method | String | La méthode de requête utilisée pour effectuer une requête. Disponible uniquement pour les requêtes (web). |
path | String | Le chemin de la requête sur lequel l’incident de performance s’est produit. Ceci n’est défini que pour les requêtes web. Contient la même valeur que le champ path. |
Détection d’anomalies
| Champ | Type | Description |
|---|---|---|
alert_id | String | ID interne AppSignal de l’alerte. |
state | String | État de l’alerte. |
site | String | Le nom de l’application à laquelle appartient l’alerte. |
environment | String | Le nom de l’environnement de l’application auquel l’alerte appartient. |
tags | Array | Espace de noms associé à l’alerte. |
human_tags | Array | Espace de noms personnalisé associé à l’alerte. |
metric_name | String | Nom de la métrique pour laquelle l’alerte a été créée. |
field | String | Nom du champ de l’alerte. |
trigger_label | String | Nom du déclencheur. |
trigger_description | String | Description du déclencheur. |
last_value | String | Dernière valeur enregistrée pour l’alerte. |
peak_value | String | Valeur la plus élevée enregistrée pour l’alerte |
mean_value | String | Moyenne de toutes les valeurs pour l’alerte. |
comparison_operator | String | Opérateur de comparaison défini par l’utilisateur sur la base duquel l’alerte sera déclenchée. |
comparison_value | String | Valeur de comparaison de la métrique définie par l’utilisateur sur la base de laquelle l’alerte sera déclenchée. |
human_last_value | String | Dernière valeur de métrique enregistrée pour l’alerte depuis son ouverture dans un format plus lisible. |
human_peak_value | String | Valeur la plus élevée de la valeur de métrique enregistrée pour l’alerte pendant qu’elle était ouverte. |
human_mean_value | String | Valeur moyenne de la valeur de métrique pour l’alerte pendant qu’elle était ouverte dans un format plus lisible. |
human_comparison_value | String | Valeur de comparaison pour la métrique d’alerte définie par l’utilisateur sur la base de laquelle l’alerte sera déclenchée dans un format lisible. |
created_at | String | Horodatage auquel l’alerte a été créée. |
opened_at | String | Horodatage (ISO8601) auquel l’alerte a été ouverte. |
resolved_at | String | Horodatage (ISO8601) auquel l’alerte a été résolue. |
closed_at | String | Horodatage (ISO8601) auquel l’alerte a été fermée. |
warmup_duration | String | Temps en minutes pendant lequel AppSignal attend avant d’ouvrir une alerte. |
cooldown_duration | String | Temps en minutes pendant lequel AppSignal attend avant de fermer une alerte. |
alert_url | String | URL de l’alerte pour que l’utilisateur puisse la consulter sur AppSignal. |
edit_trigger_url | String | URL de l’alerte pour que l’utilisateur puisse la modifier sur AppSignal. |