---
title: AppKeeper
description: Appkeeper restarts service based on alerts from Datadog
breadcrumbs: Docs > Integrations > AppKeeper
---

# AppKeeper
Supported OS 
## Overview{% #overview %}

SIOS AppKeeper automatically restarts failed Amazon EC2 services when notifications are received from Datadog, removing the need for expensive manual intervention. When Datadog triggers an alert, it restarts the EC2 service using the AppKeeper Recovery API.

## Setup{% #setup %}

### Get the SIOS AppKeeper API key{% #get-the-sios-appkeeper-api-key %}

Get the SIOS AppKeeper API key from AppKeeper GUI.

1. Click **Account Information**, and open the modal dialog.
1. Click **Get Token**.
1. Copy the token.



### Install and configure the Webhooks integration{% #install-and-configure-the-webhooks-integration %}

1. On the Datadog site, navigate to the [Webhooks integration](https://app.datadoghq.com/account/settings#integrations/webhooks) and install the integration.
1. Select the **Configuration** tab.
1. Under the **Webhooks** header, click **New**.
1. Enter the following URL: "[https://api.appkeeper.sios.com/v2/integration/{AWS_account_ID}/actions/recover"](https://api.appkeeper.sios.com/v2/integration/%7bAWS_account_ID%7d/actions/recover%22)
1. Enter the `id` and name of `name` for the monitoring instance in the **Payload** section.
1. Register the AppKeeper API token in the **Custom Headers** section.



### Integrate with Datadog monitoring{% #integrate-with-datadog-monitoring %}

1. Create a new Datadog [Synthetic test](https://app.datadoghq.com/synthetics/list). Click **New Test** in the top right corner.
1. In the **Define requests** step, enter the URL you want to monitor.
1. In the **Define assertions** step, click **New Assertion** and add the following parameters: When `status code` is `200`. This triggers an alert when the status code is **not** 200. If the request requires notification based on a different status, replace 200 with your status code.
1. Click **New Assertion** again and add a second set of parameters: And `response time` is less than `2000` ms. This triggers an alert when the response time is longer than 2000ms. If you require a longer or shorter duration, replace `2000` with your duration.
1. In the **Notify your team** step, add the webhook, formatted as `@webhook-name_of_the_webhook`. Include a message for the notification. **Note**: The minimum monitoring interval for the **renotify if the monitor has not been resolved** setting in this step is `Every 10 Minutes`. Setting to **Never** inhibits the webhook to call on AppKeeper's recovery API.



Results of recoveries by AppKeeper are listed in AppKeeper's GUI.



## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

See [metadata.csv](https://github.com/DataDog/integrations-extras/blob/master/appkeeper/metadata.csv) for a list of metrics provided by this integration.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
