> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allquiet.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Elastic Observability

> Connect Your Elastic Observability Projects with All Quiet

<Info>Setup time: 5 Min</Info>

Easily integrate Elastic with All Quiet. Automatically forward alerts from your Elastic observability projects to All Quiet, streamline your incident response.

## 1. Create Elastic Integration on All Quiet

Sign in to your All Quiet account.

### Create Integration

1. Click on the `Inbound Integrations` tab.
2. Click on `+ Create`.

<img className="elastic_Create" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/01.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=2ce3b947f007f87434d868e250752a1d" width="2740" height="678" data-path="images/elastic-observability/01.png" />

### Select Elastic Observability as the Integration's Type

1. Enter a `Display Name` for your integration, e.g. "Elastic Observability".
2. Select a `Team`.
3. Select `Elastic Observability` as the integration's type.
4. Click `Create Inbound Integration`.

<img className="elastic_Select" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/02.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=4e2bd82d7c31d0afb1475cf3151ce422" width="2132" height="1862" data-path="images/elastic-observability/02.png" />

### Get the All Quiet Webhook URL

After creating the integration on All Quiet, you can view the unique All Quiet Webhook URL of your Elastic integration.
You will require it in step 2 when configuring the custom integration on Elastic.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/03.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=941b6663d3c8fa0206cb7b15557a7800" width="2114" height="872" data-path="images/elastic-observability/03.png" />

## 2. Configure a custom integration with Elastic Observability

Once you've set up an integration of type "Elastic Observability" with All Quiet, the next step is connect your Elastic Observability Project with All Quiet to forward Alerts to All Quiet.

Sign in to your Elastic account and open the project you want to connect with All Quiet.

<img className="Elastic_Project" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/04.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=4ff43c36459b04a94831b360808cbc00" width="3456" height="1069" data-path="images/elastic-observability/04.png" />

### Create Connector

To send alerts to All Quiet, you first need to create a connection with All Quiet. Here's how:

1. Click on `Project settings`.
2. Then, select `Management`.
3. In the Management section, select `Connectors`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/05.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=f4e8219a70048782e9fc49569f9b5d5e" width="2588" height="1934" data-path="images/elastic-observability/05.png" />

Click `Create connector`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/06.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=5499171ae82d1a0bb01ba0afdbd38c02" width="2320" height="878" data-path="images/elastic-observability/06.png" />

As connector, select `Webhook`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/07.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=6361598f178634052b1c6af36bc4ea65" width="1476" height="1376" data-path="images/elastic-observability/07.png" />

Set up a webhook that you can use to connect Elastic with All Quiet.

1. Select a name, e.g. `All Quiet`
2. As Method, select `Post`.
3. As `URL`, paste in the All Quiet Webhook URL you've obtained in step [Get the All Quiet Webhook URL](/integrations/inbound/elastic-observability#get-the-all-quiet-webhook-url).
4. As authentication method, select `None`.
5. Then, click `Save & Test`. In the next step, we can check if the connection was successful.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/08.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=4190c0ecea4d57fab5e361d175f59b97" width="1484" height="1524" data-path="images/elastic-observability/08.png" />

1. To test the connection, paste in the following body. You will also need it later when configuring rules for [real alerts](/integrations/inbound/elastic-observability#create-all-quiet-incidents-from-elastic-observability-alerts).

```Body elastic-observability-payload theme={null}
rule_url={{rule.url}}&rule_name={{rule.name}}&rule_type={{rule.type}}&rule_params={{rule.params}}&alert_id={{alert.id}}&alert_uuid={{alert.uuid}}&alert_actionGroup={{alert.actionGroup}}&alert_actionGroupName={{alert.actionGroupName}}&context_alertDetailsUrl={{context.alertDetailsUrl}}&context_alertState={{context.alertState}}&context_reason={{context.reason}}&context_value={{context.value}}&context_metric={{context.metric}}&context_tags={{context.tags}}&context_group={{context.group}}&context_threshold={{context.threshold}}
```

2. Click `Run`.
3. If the connection was establish, you will receive a sucess notification...

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/09.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=de2eaadb6b7eb1f41678f98bd2361300" width="1450" height="1410" data-path="images/elastic-observability/09.png" />

...and you will also find a test incident in All Quiet.

<Info>Please note since the're no real data to fill the body, you will only see the variable names in this case.</Info>

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/10.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=32ad9cb97bb769ab080bbaed0ae4636b" width="2380" height="504" data-path="images/elastic-observability/10.png" />

### Create All Quiet Incidents From Elastic Observability Alerts

Now, we want to use the connector we just created to send real alerts to All Quiet.

In the following, you can find an example how to set up an alerting rule for an incident in All Quiet. You can use your All Quiet connector for all your alerting rules in your Elastic Observability project and forward incidents to All Quiet.

1. First, Select `Alerts`.
2. Click `Manage Rules`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/11.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=72055690e0b8563d7191ce5791020a80" width="2586" height="930" data-path="images/elastic-observability/11.png" />

You can either add the All Quiet connector as an Action to your existing Rules or create a new one. Here, we create a new rule.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/12.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=c5e07083b317b5a2f0960263b50a82be" width="2052" height="1038" data-path="images/elastic-observability/12.png" />

For the example, we select "rule type" `Inventory`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/13.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=ff4f9148a049b11889dea42e25d4a71c" width="2462" height="1140" data-path="images/elastic-observability/13.png" />

Now, we define a rule

1. Enter a `Name` and, optionally `Tags`. Note tha based on our pre-configured [default mapping](/essentials/inbound#mapping-payloads), this info will also be visible in All Quiet after an incident is created.
2. Select the conditions that trigger the rule. For "rule type" `Inventory`, you can add a `Warning` Threshold. By default, these alerts will trigger an All Quiet incident of severity "Warning", why `Alert` will trigger an incident with `Critical` severity.

Scroll down to add the actions.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/14.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=d842c793fea90488008c613152ffcc7d" width="1351" height="1857" data-path="images/elastic-observability/14.png" />

Select Webhook.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/15.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=f2d65d31e2a3ceaa0fbdfc0801c4f784" width="1365" height="1872" data-path="images/elastic-observability/15.png" />

1. Select the All Quiet Webhook connector you [set up earlier](/integrations/inbound/elastic-observability#create-connector).
2. We recommend setting Action frequency to "For each alert" and "On status changes". This means that the webhook will be triggered when the status is changed to the status selected in 3 and forward the new information to All Quiet.
3. With this selection, the webhook is only triggered when the status changes to `Alert`.**Note** that it will not be triggered if there's a chance to another status (that's why we added 5.)
4. Paste in this same `Body` to send a payload that works in All Quiet.

```Body elastic-observability-payload.json theme={null}
rule_url={{rule.url}}&rule_name={{rule.name}}&rule_type={{rule.type}}&rule_params={{rule.params}}&alert_id={{alert.id}}&alert_uuid={{alert.uuid}}&alert_actionGroup={{alert.actionGroup}}&alert_actionGroupName={{alert.actionGroupName}}&context_alertDetailsUrl={{context.alertDetailsUrl}}&context_alertState={{context.alertState}}&context_reason={{context.reason}}&context_value={{context.value}}&context_metric={{context.metric}}&context_tags={{context.tags}}&context_group={{context.group}}&context_threshold={{context.threshold}}
```

5. As we also want to be updated when the status changes to `Warning` or `Recovered`, we need to add 2 more actions in this case.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/16.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=7274828ea062475df07ae804687a1a73" width="1352" height="1578" data-path="images/elastic-observability/16.png" />

1. Set up the same action as before, but change the status that makes it run, here `Recovered`.
2. Paste in the same body.
3. Add a third action for `Warning` (only if you added a `Warning` condition earlier).

After configuring all Actions, safe the rule.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/17.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=f399a29653cf7eb6de1299b23f32c080" width="1330" height="1564" data-path="images/elastic-observability/17.png" />

You can now find and edit it under `Rules`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/D1e9B8-bvRRd-3lb/images/elastic-observability/18.png?fit=max&auto=format&n=D1e9B8-bvRRd-3lb&q=85&s=9e156b19900a1444fba0c141b46a437f" width="3620" height="843" data-path="images/elastic-observability/18.png" />

<Check>You have successfully connected All Quiet with your Elastic Observability project. Add the All Quiet connector as Action(s) to all your rules to forward all Alerts to All Quiet. </Check>

Below, you can see how the All Quiet incident looks based on the Inventory rule we created above.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/19.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=4fcd797cdfae05e0f155cced021a95aa" width="2176" height="494" data-path="images/elastic-observability/19.png" />

When the status in your Elastic project changes to to `Recovered` adding the extra action for recovered ensures the incident in All Quiet is also `Resolved`.

<img className="Elastic_Get" src="https://mintcdn.com/allquiet/yRGxDqzYDDNPb4wy/images/elastic-observability/20.png?fit=max&auto=format&n=yRGxDqzYDDNPb4wy&q=85&s=f658d529008fc3be0fbedd6c7ff2f583" width="1802" height="1112" data-path="images/elastic-observability/20.png" />

### Adjust Payload Mapping

Looking to customize the fields of your incidents by adjusting the pre-built payload mapping? Simply head over to the “Payload” tab within your integration and make the necessary edits to the mapping. For detailed guidance, you may check out our [payload mapping documentation](/essentials/inbound#how-does-attribute-mapping-work).

<Tip>Using our Terraform provider? [Download](https://allquiet.app/api/integrations/terraform/default/ElasticObservability.tf) the default mapping of the `allquiet_integration_mapping` resource for the Elastic Observability integration. Simply copy the syntax to your .tf file and tailor the resource to your team's needs!</Tip>
