### Prometheus Configuration Example Source: https://docs.allquiet.app/integrations/inbound/prometheus Configure your prometheus.yml to scrape metrics from allquiet.app and send alerts to your Alertmanager instance. Ensure your Alertmanager is correctly configured to forward these alerts to All Quiet. ```YAML scrape_configs: - job_name: 'allquiet.app' scrape_interval: 5s scheme: https metrics_path: /status static_configs: - targets: ['allquiet.app'] rule_files: - "*.rules" alerting: alertmanagers: - scheme: http static_configs: - targets: [ 'your-prometheus-alertmanager.yourdomain.com:9093' ] ``` -------------------------------- ### Send POST with cURL Source: https://docs.allquiet.app/integrations/inbound/webhook This example demonstrates how to send a POST request to the All Quiet webhook URL using cURL. The Content-Type header determines how the request body is parsed. ```APIDOC ## Send POST with cURL The Webhook accepts all HTTP Verbs and supports the following values for the HTTP header `Content-Type` : * `application/json` maps to property `jsonBody` * `application/x-www-form-urlencoded` maps to property `formBody` * `multipart/form-data` maps to property `formBody` * `text/plain` maps to property `textBody` * `text/xml`, `application/xml` and `application/xhtml+xml` map to property `xmlBody` Use the CURL command below as an example to trigger the webhook. ### Request Example ```curl curl -X POST 'https://allquiet.app/api/webhook/YOUR-WEBHOOK' \ -H 'Content-Type: application/json' \ -d '{"alertName": "Demo Alert", "alertStatus": "firing", "description": "This is a Demo Alert"}' ``` ``` -------------------------------- ### Terraform PRTG Integration Mapping Source: https://docs.allquiet.app/integrations/inbound/prtg Example Terraform configuration for the `allquiet_integration_mapping` resource for PRTG Network Monitor. This allows customization of incident fields. ```hcl resource "allquiet_integration_mapping" "prtg" { integration_id = "YOUR_PRTG_INTEGRATION_ID" mapping = { "colorofstate" = "custom_fields.prtg_colorofstate" "company" = "custom_fields.prtg_company" "comments" = "custom_fields.prtg_comments" "commentssensor" = "custom_fields.prtg_commentssensor" "commentsdevice" = "custom_fields.prtg_commentsdevice" "commentsgroup" = "custom_fields.prtg_commentsgroup" "commentsprobe" = "custom_fields.prtg_commentsprobe" "coverage" = "custom_fields.prtg_coverage" "cumsince" = "custom_fields.prtg_cumsince" "date" = "custom_fields.prtg_date" "datetime" = "custom_fields.prtg_datetime" "device" = "custom_fields.prtg_device" "deviceid" = "custom_fields.prtg_deviceid" "down" = "custom_fields.prtg_down" "downtime" = "custom_fields.prtg_downtime" "group" = "custom_fields.prtg_group" "groupid" = "custom_fields.prtg_groupid" "history" = "custom_fields.prtg_history" "home" = "custom_fields.prtg_home" "homem" = "custom_fields.prtg_homem" "host" = "custom_fields.prtg_host" "iconofstate" = "custom_fields.prtg_iconofstate" "lastcheck" = "custom_fields.prtg_lastcheck" "lastdown" = "custom_fields.prtg_lastdown" "lastmessage" = "custom_fields.prtg_lastmessage" "lastup" = "custom_fields.prtg_lastup" "lastvalue" = "custom_fields.prtg_lastvalue" "linkprobe" = "custom_fields.prtg_linkprobe" "linkgroup" = "custom_fields.prtg_linkgroup" "linkdevice" = "custom_fields.prtg_linkdevice" "linksensor" = "custom_fields.prtg_linksensor" "location" = "custom_fields.prtg_location" "message" = "custom_fields.prtg_message" "name" = "custom_fields.prtg_name" "nodename" = "custom_fields.prtg_nodename" "shortname" = "custom_fields.prtg_shortname" "prio" = "custom_fields.prtg_prio" "priority" = "custom_fields.prtg_priority" "probe" = "custom_fields.prtg_probe" "probeid" = "custom_fields.prtg_probeid" "programname" = "custom_fields.prtg_programname" "programversion" = "custom_fields.prtg_programversion" "sensor" = "custom_fields.prtg_sensor" "sensorid" = "custom_fields.prtg_sensorid" "server" = "custom_fields.prtg_server" "serviceurl" = "custom_fields.prtg_serviceurl" "settings" = "custom_fields.prtg_settings" "since" = "custom_fields.prtg_since" "sitename" = "custom_fields.prtg_sitename" "state" = "custom_fields.prtg_state" "statesince" = "custom_fields.prtg_statesince" "status" = "custom_fields.prtg_status" "summarycount" = "custom_fields.prtg_summarycount" "syslogerrors" = "custom_fields.prtg_syslogerrors" "syslogmessages" = "custom_fields.prtg_syslogmessages" "syslogwarnings" = "custom_fields.prtg_syslogwarnings" "systemdatetime" = "custom_fields.prtg_systemdatetime" "time" = "custom_fields.prtg_time" "timezone" = "custom_fields.prtg_timezone" "toaddress" = "custom_fields.prtg_toaddress" "traperrors" = "custom_fields.prtg_traperrors" "trapmessages" = "custom_fields.prtg_trapmessages" "trapwarnings" = "custom_fields.prtg_trapwarnings" "uptime" = "custom_fields.prtg_uptime" "elapsed_lastcheck" = "custom_fields.prtg_elapsed_lastcheck" "elapsed_lastdown" = "custom_fields.prtg_elapsed_lastdown" "elapsed_lastup" = "custom_fields.prtg_elapsed_lastup" "laststatus" = "custom_fields.prtg_laststatus" "objecttags" = "custom_fields.prtg_objecttags" "parenttags" = "custom_fields.prtg_parenttags" "tags" = "custom_fields.prtg_tags" } } ``` -------------------------------- ### ServiceNow Incident Payload Example Source: https://docs.allquiet.app/integrations/inbound/servicenow This is the JSON payload structure All Quiet receives from ServiceNow for incident updates. ```json { "source": "servicenow", "eventType": "updated", "incident": { "sys_id": "abc123", "number": "INC0010001", "state": "2", "state_desc": "In Progress", "priority": "3", "priority_desc": "3 - Moderate", "urgency": "2", "urgency_desc": "2 - Medium", "impact": "3", "impact_desc": "3 - Moderate", "short_description": "Interaction", "description": "Description", "assigned_to": "Assignee Name", "assignment_group": "", "service": "Example Service", "updated_at": "2026-03-31 11:08:03", "url": "https://yourservicenowinstance.com//incident.do?sys_id=abc123" } } ``` -------------------------------- ### Extract HTML Value with XPath Source: https://docs.allquiet.app/essentials/inbound Extract data from an HTML table by selecting the table cell that follows a cell with specific preceding text. This example gets the second table data cell in a row where the first cell contains 'Server'. ```HTML
Severity Critical
Server prod1
``` -------------------------------- ### Make Script Executable Source: https://docs.allquiet.app/integrations/inbound/observium Ensure the Observium integration script has execute permissions. ```bash chmod +x /usr/local/bin/observium-allquiet.sh ``` -------------------------------- ### Manual Test Invocation Source: https://docs.allquiet.app/integrations/inbound/observium Optional: Manually test the script with sample arguments to verify its functionality. ```bash /usr/local/bin/observium-allquiet.sh 040109 780431 0 critical "host.example" "status changed -> [DOWN]" "https://example/url" "" "" port ``` -------------------------------- ### Create New Incident in Slack Source: https://docs.allquiet.app/integrations/outbound/slack Use the `/aq new` command to trigger a new incident directly from Slack. You can select the team, severity, and provide a title and description. ```bash /aq new ``` -------------------------------- ### Custom Field Mapping Source: https://docs.allquiet.app/integrations/inbound/servicenow Extend the payload to include custom fields from your ServiceNow instance. This example shows how to map a custom field named 'u_custom_field'. ```javascript custom_field: current.u_custom_field.toString() ``` -------------------------------- ### API Key Authentication using X-Api-Key Header Source: https://docs.allquiet.app/advanced/api Use this method to authenticate API requests by including your API Key in the 'X-Api-Key' header. This is a straightforward way to provide your credentials for API access. ```http X-Api-Key: your-api-key-here ``` -------------------------------- ### Make Nagios Notification Scripts Executable Source: https://docs.allquiet.app/integrations/inbound/nagios These commands grant execute permissions to the Nagios notification scripts. Ensure you replace '{path}' with the actual directory where the scripts are saved. ```txt chmod +x {path}/notify-allquiet-service.sh chmod +x {path}/notify-allquiet-host.sh ``` -------------------------------- ### Add Authentication Header Source: https://docs.allquiet.app/integrations/inbound/servicenow Recommended for securing your integration. Add this script to your ServiceNow Business Rule to include an Authorization header with your token. ```javascript rm.setRequestHeader('Authorization', 'Bearer YOUR_TOKEN'); ``` -------------------------------- ### Extract JSON Value with JSONPath Source: https://docs.allquiet.app/essentials/inbound Extract a specific value from a JSON array based on a property match. This example targets the 'value' from the 'headers' array where 'field' equals 'Return-Path'. ```JSON { "headers": [{ "field": "Return-Path", "value": "" }] } ``` -------------------------------- ### Add Attribute to Incident via Outbound Webhook Patch Source: https://docs.allquiet.app/integrations/outbound/webhook This example demonstrates how to add a new attribute, such as a URL, to an incident when it's sent via the Outbound Webhook. This enriches the incident with external information. ```json { "operations": { "addAttributes": { "attributes": [ { "name": "ExampleToolURL", "value": "https://exampleurl.com/ID", "isImage": false, "hideInPreviews": false } ] } } } ```