> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/ai-sre/ai-sre-for-administrators/set-up-alert-management/webhooks/integration-guides/monitoring/dynatrace.md).

# Dynatrace Integration Guide

Configure Dynatrace to send webhook notifications to Harness AI SRE when problems are detected.

### Before you begin <a href="#before-you-begin" id="before-you-begin"></a>

* **Harness webhook endpoint**: Create a Dynatrace webhook in Harness AI SRE using the [Dynatrace webhook template](/ai-sre/ai-sre-for-administrators/set-up-alert-management/webhooks/templates/monitoring/dynatrace.md).
* **Dynatrace permissions**: Access to configure problem notifications and integrations.
* **Webhook URL**: Copy the webhook URL from your Harness webhook configuration.
* **Dynatrace webhook documentation**: Go to [Problem Notifications](https://www.dynatrace.com/support/help/observe-and-explore/notifications-and-alerting/problem-notifications) to understand notification configuration.
* **Webhook integration reference**: Go to [Webhook Integration](https://www.dynatrace.com/support/help/observe-and-explore/notifications-and-alerting/problem-notifications/webhook-integration) for webhook-specific setup.

***

### Create webhook notification in Dynatrace <a href="#create-webhook-notification-in-dynatrace" id="create-webhook-notification-in-dynatrace"></a>

#### Navigate to notifications <a href="#navigate-to-notifications" id="navigate-to-notifications"></a>

Open the problem notifications page to add a custom integration:

1. In Dynatrace, go to **Settings**, then **Integration**, then **Problem notifications**
2. Click **Add notification**
3. Select **Custom integration**

#### Configure webhook <a href="#configure-webhook" id="configure-webhook"></a>

{% tabs %}
{% tab title="Basic configuration" %}
Configure these fields:

* **Display name**: `Harness AI SRE`
* **Webhook URL**: Your Harness webhook URL
* **Notification settings**: Configure when to call the webhook
  * Call the webhook when new events merge into an existing problem
  * Notify the webhook when a problem closes (in addition to the default open-problem notification)
    {% endtab %}

{% tab title="Custom payload" %}
Use a custom payload template:

```json
{
  "State": "{State}",
  "ProblemID": "{ProblemID}",
  "ProblemTitle": "{ProblemTitle}",
  "ProblemDetails": "{ProblemDetailsText}",
  "ImpactedEntity": "{ImpactedEntity}",
  "ProblemSeverity": "{ProblemSeverity}",
  "ProblemURL": "{ProblemURL}",
  "Tags": "{Tags}"
}
```

{% endtab %}

{% tab title="With filters" %}
Dynatrace filters which problems trigger the webhook through an **alerting profile** assigned to the notification, rather than through filter fields on the notification screen itself. Configure the alerting profile to filter by:

* **Severity**: Availability, Error, Slowdown, Resource, Custom, or Monitoring unavailable
* **Tags**: Filter by specific tags
* **Management zones**: Limit to specific zones
* **Problem duration and text filters**: Further narrow which problems generate notifications
  {% endtab %}
  {% endtabs %}

#### Test the notification <a href="#test-the-notification" id="test-the-notification"></a>

Send a test notification and activate it:

1. Click **Send test notification**
2. Verify the test appears in Harness AI SRE
3. Click **Save** to activate the notification

***

### Configure field mapping in Harness <a href="#configure-field-mapping-in-harness" id="configure-field-mapping-in-harness"></a>

Map Dynatrace problem fields to Harness alert properties.

#### Basic field mapping example <a href="#basic-field-mapping-example" id="basic-field-mapping-example"></a>

```yaml
title: "{{webhook.ProblemTitle}}"
message: |
  {{webhook.ProblemDetails}}
  
  Impacted Entity: {{webhook.ImpactedEntity}}
severity: |
  webhook.ProblemSeverity == "ERROR" ? "critical" :
  webhook.ProblemSeverity == "WARNING" ? "high" :
  webhook.ProblemSeverity == "RESOURCE_CONTENTION" ? "medium" : "low"
source: "dynatrace"
link: "{{webhook.ProblemURL}}"
tags:
  - "source:dynatrace"
  - "problem_id:{{webhook.ProblemID}}"
  - "state:{{webhook.State}}"
```

#### Advanced filtering with CEL <a href="#advanced-filtering-with-cel" id="advanced-filtering-with-cel"></a>

```cel
// Only process open problems
filter: webhook.State == "OPEN"

// Filter by severity
filter: webhook.ProblemSeverity in ["ERROR", "WARNING"]

// Filter by impacted entity type
filter: webhook.ImpactedEntity.contains("SERVICE")
```

***

### Available Dynatrace fields <a href="#available-dynatrace-fields" id="available-dynatrace-fields"></a>

| Field             | Description                  | Example                                 |
| ----------------- | ---------------------------- | --------------------------------------- |
| `State`           | Problem state                | `OPEN`, `RESOLVED`                      |
| `ProblemID`       | Unique problem identifier    | `-1234567890123456789_1234V2`           |
| `ProblemTitle`    | Problem summary              | `Response time degradation`             |
| `ProblemDetails`  | Detailed description         | `Response time increased by 200%`       |
| `ImpactedEntity`  | Affected entity name         | `SERVICE-ABC123`                        |
| `ProblemSeverity` | Severity level               | `ERROR`, `WARNING`                      |
| `ProblemURL`      | Link to problem in Dynatrace | `https://abc123.live.dynatrace.com/...` |
| `Tags`            | Associated tags              | `environment:production`                |

***

### Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

<details>

<summary>Dynatrace webhook is not triggering for Harness AI SRE</summary>

Verify the notification is enabled in Dynatrace, check that the problem severity matches your filter criteria, use 'Send test notification' to verify the webhook URL, and review the Dynatrace notification logs.

</details>

<details>

<summary>Dynatrace problems are not creating alerts in Harness AI SRE</summary>

Check that the CEL filter expressions allow the problem through, verify required fields (title, message) are mapped, test with a simpler payload first, and review the Harness webhook logs for errors.

</details>

<details>

<summary>Dynatrace is creating duplicate alerts for the same problem in Harness AI SRE</summary>

Use the problem ID for deduplication in route alerts, configure Dynatrace to only send 'Open problems' notifications, and add the CEL filter webhook.State == 'OPEN'.

</details>

***

### Next steps <a href="#next-steps" id="next-steps"></a>

* [Route alerts](/ai-sre/ai-sre-for-administrators/set-up-alert-management/alert-rules/overview.md): Route Dynatrace problems.
* [Use CEL in webhooks](/ai-sre/ai-sre-for-administrators/set-up-alert-management/webhooks/use-cel-webhooks.md): Add advanced filtering.
* [Dynatrace webhook template](/ai-sre/ai-sre-for-administrators/set-up-alert-management/webhooks/templates/monitoring/dynatrace.md): Review template details.

***

### Related documentation <a href="#related-documentation" id="related-documentation"></a>

#### Dynatrace official documentation <a href="#dynatrace-official-documentation" id="dynatrace-official-documentation"></a>

* [Problem notifications](https://www.dynatrace.com/support/help/observe-and-explore/notifications-and-alerting/problem-notifications): Complete guide to problem notification configuration.
* [Webhook integration](https://www.dynatrace.com/support/help/observe-and-explore/notifications-and-alerting/problem-notifications/webhook-integration): Webhook-specific setup and payload structure.
* [Problem API](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/problems-v2): Problem object structure and field definitions.
* [Placeholder reference](https://www.dynatrace.com/support/help/observe-and-explore/notifications-and-alerting/problem-notifications/webhook-integration#placeholder-reference): Available placeholder variables for custom payloads.
