
AppSignal-webhookverzoeken verifiëren
Om de veiligheid van uw applicatie te waarborgen, kunt u controleren of binnenkomende webhookverzoeken daadwerkelijk afkomstig zijn van AppSignal. Verificatie gebeurt met behulp van een Webhook verification token om de handtekening van het verzoek te valideren.Uw Webhook Verification Token vinden
- Navigeer in uw AppSignal-dashboard naar App settings > Integrations.
- Configureer de webhook-integratie die u wilt verifiëren.
- Hier vindt u het Webhook verification token van de integratie.
Een verzoek verifiëren
Wanneer AppSignal een webhookverzoek verstuurt, wordt een handtekening opgenomen in de headerX-Appsignal-Signature. U kunt het verzoek als volgt valideren:
- Voeg de AppSignal Webhook verification token samen met de ruwe body van het verzoek.
- Genereer een SHA256-hash van de samengevoegde tekenreeks.
- Vergelijk de gegenereerde hash met de waarde in de header
X-Appsignal-Signature.
Voorbeeldimplementaties
Hieronder staan enkele voorbeelden van hoe u kunt verifiëren dat een verzoek afkomstig is van AppSignal in Ruby, Elixir, Node.js en Python. Let op: De onderstaande voorbeelden zijn illustratief; u moet ze mogelijk aanpassen, afhankelijk van de frameworks, integraties en dependencies die uw app gebruikt.Deploy markers
Velden
| Veld | Type | Beschrijving |
|---|---|---|
marker | Hash<String, Any> | De webhook-payload betreft een marker-incident. |
Subvelden van deploy marker
| Veld | Type | Beschrijving |
|---|---|---|
time | String | Tijdstempel waarop de deploy marker is aangemaakt. |
marker_id | String | Interne AppSignal-marker-id voor de deploy marker. |
site | String | App-naam zoals te zien op AppSignal.com. Het veld site wordt om historische redenen gebruikt in plaats van app. |
environment | String | App-omgeving van de app zoals te zien op AppSignal.com. |
revision | String | De revisienaam van de deploy marker. |
user | String | De gebruiker die de marker heeft aangemaakt. |
repository | String | URL naar de repository zoals geconfigureerd voor de app op AppSignal.com. |
url | String | URL naar de app op AppSignal.com die de webhook heeft geactiveerd. |
Exception incidents
Velden
| Veld | Type | Beschrijving |
|---|---|---|
exception | Hash<String, Any> | De webhook-payload betreft een exception-incident. |
Subvelden van exception
| Veld | Type | Beschrijving |
|---|---|---|
time | String | Tijdstempel waarop de exception zich voordeed. |
number | Integer | Incident-id zoals weergegeven op AppSignal.com. |
site | String | App-naam zoals te zien op AppSignal.com. Het veld site wordt om historische redenen gebruikt in plaats van app. |
environment | String | App-omgeving van de app zoals te zien op AppSignal.com. |
app_url | String | URL naar de app op AppSignal.com die de webhook heeft geactiveerd. |
url | String | URL naar de specifieke sample voor het incident op AppSignal.com dat deze webhook heeft geactiveerd. |
revision | String | De revisienaam van de deploy marker. |
user | String | De gebruiker die de marker heeft aangemaakt. De waarde van user kan ook null zijn als deze niet is ingesteld voor een deploy marker-revisie. |
namespace | String | De namespace waarin deze exception zich heeft voorgedaan. |
exception | String | Het exception-type dat door AppSignal is geregistreerd. |
message | String | Het exception-bericht met meer details over de exception. |
app_backtrace | Array<String> | De regels van de backtrace die betrekking hebben op de app waaruit ze afkomstig zijn. Hierin zijn backtrace-regels van libraries die in de app zijn opgenomen, uitgesloten. |
first_backtrace_line | String | De eerste backtrace-regel uit het veld app_backtrace. |
action | String | De actie waarin deze exception zich heeft voorgedaan. Ofwel een controller-actie, een background worker of een handmatig ingestelde actie. |
path | String | Het request-pad waarop de exception zich heeft voorgedaan. Dit wordt alleen ingesteld voor webrequests. Dit is metadata die standaard door de AppSignal-integratie wordt ingesteld en is ook opgenomen in het veld metadata. |
hostname | String | De hostnaam van de host waarop deze exception zich heeft voorgedaan. |
action_label | String | Een gebruiksvriendelijke aanduiding voor het type actie waarin deze exception is opgetreden. Gebruikt request voor de namespace web en job voor de namespace background. Alle andere namespaces gebruiken action. |
metadata | Hash<String, String> | Dit bevat door de gebruiker ingestelde metadata (zie Tagging-functie). |
Metadata-velden
U kunt eigen metadata toevoegen door samples te taggen.| Veld | Type | Beschrijving |
|---|---|---|
demo_sample | String | Ingesteld door de AppSignal-integratie voor demo-samples die zijn verzonden via onze demo-commandoregeltool (Ruby / Elixir). Niet ingesteld voor alle andere samples. |
method | String | De request-methode die is gebruikt om een request uit te voeren. Alleen beschikbaar voor (web)requests. |
path | String | Het request-pad waarop de exception zich heeft voorgedaan. Dit wordt alleen ingesteld voor webrequests. Bevat dezelfde waarde als het veld path. |
Performance incidents
Velden
| Veld | Type | Beschrijving |
|---|---|---|
performance | Hash<String, Any> | De webhook-payload betreft een performance-incident. |
Subvelden van performance
| Veld | Type | Beschrijving |
|---|---|---|
time | String | Tijdstempel waarop het performance-incident zich heeft voorgedaan. |
number | Integer | Incident-id zoals weergegeven op AppSignal.com. |
site | String | App-naam zoals te zien op AppSignal.com. Het veld site wordt om historische redenen gebruikt in plaats van app. |
environment | String | App-omgeving van de app zoals te zien op AppSignal.com. |
app_url | String | URL naar de app op AppSignal.com die de webhook heeft geactiveerd. |
url | String | URL naar de specifieke sample voor het incident op AppSignal.com dat deze webhook heeft geactiveerd. |
revision | String | De revisienaam van de deploy marker. |
user | String | De gebruiker die de marker heeft aangemaakt. De waarde van user kan ook null zijn als deze niet is ingesteld voor een deploy marker-revisie. |
namespace | String | De namespace waarin dit performance-incident zich heeft voorgedaan. |
duration | Float | De gemeten tijd in milliseconden die de request/job/actie nodig had om te voltooien. |
action | String | De actie waarin dit performance-incident zich heeft voorgedaan. Ofwel een controller-actie, een background worker of een handmatig ingestelde actie. |
path | String | Het request-pad waarop het performance-incident zich heeft voorgedaan. Dit wordt alleen ingesteld voor webrequests. Dit is metadata die standaard door de AppSignal-integratie wordt ingesteld en is ook opgenomen in het veld metadata. |
hostname | String | De hostnaam van de host waarop dit performance-incident zich heeft voorgedaan. |
action_label | String | Een gebruiksvriendelijke aanduiding voor het type actie waarin dit performance-incident is opgetreden. Gebruikt request voor de namespace web en job voor de namespace background. Alle andere namespaces gebruiken action. |
metadata | Hash<String, String> | Dit bevat door de gebruiker ingestelde metadata, zie metadata. |
Metadata-velden
U kunt eigen metadata toevoegen door samples te taggen.| Veld | Type | Beschrijving |
|---|---|---|
demo_sample | String | Ingesteld door de AppSignal-integratie voor demo-samples die zijn verzonden via onze demo-commandoregeltool (Ruby / Elixir). Niet ingesteld voor alle andere samples. |
method | String | De request-methode die is gebruikt om een request uit te voeren. Alleen beschikbaar voor (web)requests. |
path | String | Het request-pad waarop het performance-incident zich heeft voorgedaan. Dit wordt alleen ingesteld voor webrequests. Bevat dezelfde waarde als het veld path. |
Anomaly detection
| Veld | Type | Beschrijving |
|---|---|---|
alert_id | String | Interne AppSignal-alert-id voor de alert. |
state | String | Status van de alert. |
site | String | De applicatienaam waartoe de alert behoort. |
environment | String | De naam van de applicatieomgeving waartoe de alert behoort. |
tags | Array | Namespace die aan de alert is gekoppeld. |
human_tags | Array | Aangepaste namespace die aan de alert is gekoppeld. |
metric_name | String | Naam van de metric waarvoor de alert is aangemaakt. |
field | String | Veldnaam van de alert. |
trigger_label | String | Naam van de trigger. |
trigger_description | String | Beschrijving van de trigger. |
last_value | String | Laatste waarde die voor de alert is geregistreerd. |
peak_value | String | Hoogste waarde die voor de alert is geregistreerd. |
mean_value | String | Gemiddelde van alle waarden voor de alert. |
comparison_operator | String | Vergelijkingsoperator ingesteld door de gebruiker, waarop de alert wordt geactiveerd. |
comparison_value | String | Vergelijkingswaarde van de metric ingesteld door de gebruiker, waarop de alert wordt geactiveerd. |
human_last_value | String | Laatste metric-waarde die voor de alert is geregistreerd sinds deze geopend werd, in een leesbaarder formaat. |
human_peak_value | String | Hoogste metric-waarde die voor de alert werd geregistreerd terwijl deze open was. |
human_mean_value | String | Gemiddelde metric-waarde voor de alert terwijl deze open was, in een leesbaarder formaat. |
human_comparison_value | String | Vergelijkingswaarde voor de alert-metric, ingesteld door de gebruiker, waarop de alert wordt geactiveerd, in een leesbaar formaat. |
created_at | String | Tijdstempel waarop de alert is aangemaakt. |
opened_at | String | Tijdstempel (ISO8601) waarop de alert is geopend. |
resolved_at | String | Tijdstempel (ISO8601) waarop de alert is opgelost. |
closed_at | String | Tijdstempel (ISO8601) waarop de alert is gesloten. |
warmup_duration | String | Tijd in minuten dat AppSignal wacht voordat een alert wordt geopend. |
cooldown_duration | String | Tijd in minuten dat AppSignal wacht voordat een alert wordt gesloten. |
alert_url | String | URL van de alert zodat de gebruiker deze in AppSignal kan bekijken. |
edit_trigger_url | String | URL van de alert zodat de gebruiker deze in AppSignal kan bewerken. |