Skip to main content

Overview

Easyalert automatically detects and processes Problem Notification webhooks from Dynatrace.

Requirements

  • Dynatrace account (SaaS or Managed)
  • Easyalert account and active tenant
  • Access to Settings > Integration > Problem notifications in Dynatrace

Setup Instructions

1

Create Integration in Easyalert

  1. Go to Integrations page from left menu
  2. Click Add Integration button
  3. Select Dynatrace as Source Type
  4. Enter a name (e.g., Dynatrace Production)
  5. Click Create to save
  6. Copy the generated Webhook URL
Example: https://api.easyalert.io/api/v1/webhooks/ingest/wh_abc123...
2

Create Webhook in Dynatrace

Go to Settings → Integration → Problem notifications → Add notification
FieldValue
Display nameEasyalert
Webhook URLYour Webhook URL
Notification typeCustom integration
3

Configure Payload Template

Use this recommended payload:
{
  "PID": "{PID}",
  "ProblemID": "{ProblemID}",
  "State": "{State}",
  "ProblemImpact": "{ProblemImpact}",
  "ProblemSeverity": "{ProblemSeverity}",
  "ProblemTitle": "{ProblemTitle}",
  "ProblemURL": "{ProblemURL}",
  "ProblemDetailsText": "{ProblemDetailsText}",
  "ImpactedEntities": {ImpactedEntities},
  "ImpactedEntityNames": "{ImpactedEntityNames}",
  "Tags": "{Tags}",
  "ProblemStartTime": {ProblemStartTime},
  "ProblemEndTime": {ProblemEndTime},
  "customer": "YOUR_CUSTOMER_NAME",
  "team": "YOUR_TEAM_NAME",
  "environment": "production"
}
IMPORTANT: {ImpactedEntities}, {ProblemStartTime}, {ProblemEndTime} must NOT be in quotes!
4

Test the Integration

Use the Send test notification button in Dynatrace

Placeholder Variables

PlaceholderDescription
{PID}Problem ID (short form)
{ProblemID}Full problem identifier
{ProblemTitle}Problem title
{ProblemDetailsText}Detailed description
{ProblemSeverity}Severity level
{ProblemImpact}Impact type (INFRASTRUCTURE, SERVICE, APPLICATION)
{State}OPEN, RESOLVED, or MERGED
{ProblemURL}Link to problem in Dynatrace
{ImpactedEntities}JSON array of affected entities
{ImpactedEntityNames}Entity names (comma-separated)
{RootCauseEntity}Root cause entity
{ProblemStartTime}Start time (epoch ms)
{ProblemEndTime}End time (epoch ms, -1 if open)
{Tags}Problem tags

Field Mapping

Dynatrace FieldEasyalert Field
PID / ProblemIDEvent ID
ProblemTitleTitle
ProblemDetailsTextDescription
StateStatus
ProblemSeveritySeverity
ProblemImpactImpact tag
ImpactedEntityNamesHost/Service
ProblemURLURL

State and Severity Mapping

Status Mapping

Dynatrace StateEasyalert Status
OPENProblem
RESOLVEDOK
MERGEDProblem (linked)

Severity Mapping

Dynatrace SeverityEasyalert Severity
AVAILABILITYCritical
ERRORCritical
PERFORMANCEHigh
RESOURCE_CONTENTIONWarning
CUSTOM_ALERTWarning

Custom Field → Tag Conversion

All custom fields and tags from {Tags} placeholder are automatically captured as tags.

Dynatrace Tags

{Tags} placeholder brings entity tags:
env:production,team:backend,customer:acme
In Easyalert:
tags.env = "production"
tags.team = "backend"
tags.customer = "acme"

Custom Field Example

Added to template:
{
  ...
  "datacenter": "EU-West",
  "project": "ecommerce"
}
In Easyalert:
tags.datacenter = "EU-West"
tags.project = "ecommerce"

Routing Examples

Escalation Routing:
tags.customer equals "AcmeCorp" → Acme Corp Policy
tags.env equals "production" → Production Policy
tags.team equals "backend" → Backend Team Policy
Notification Rules:
tags.ProblemSeverity equals "AVAILABILITY" → call + sms + email
tags.ProblemImpact equals "SERVICE" → Service Team channel

Impact Types

Dynatrace categorizes problem impact:
ImpactDescription
INFRASTRUCTUREAffects infrastructure components
SERVICEAffects monitored services
APPLICATIONAffects applications
ENVIRONMENTAffects entire environment
Impact is captured as a tag for routing.

Test

curl -X POST "YOUR_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "PID": "P-123",
    "ProblemID": "P-123",
    "State": "OPEN",
    "ProblemSeverity": "ERROR",
    "ProblemTitle": "High failure rate",
    "ProblemURL": "https://abc.dynatrace.com/#problems",
    "ImpactedEntities": [{"type": "SERVICE", "name": "api-service"}],
    "Tags": "env:production,team:backend",
    "ProblemStartTime": 1733234400000,
    "customer": "TestCustomer"
  }'

Recovery Test

curl -X POST "YOUR_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "PID": "P-123",
    "ProblemID": "P-123",
    "State": "RESOLVED",
    "ProblemEndTime": 1733238000000
  }'

Alerting Profile Integration

Configure which problems trigger notifications:
  1. Go to Settings → Alerting → Alerting profiles
  2. Create or edit a profile
  3. Define severity and scope rules
  4. Link to your webhook notification
This allows fine-grained control over which problems reach Easyalert.

Troubleshooting

  1. Verify webhook URL in Dynatrace settings 2. Test with “Send test notification” button 3. Check Dynatrace notification logs 4. Verify SSL/TLS settings if using HTTPS 5. Is notification enabled?
  1. Verify field is added to template 2. Check field name spelling 3. View webhook samples in Easyalert
  1. Ensure {ImpactedEntities} is NOT in quotes 2. Ensure {ProblemStartTime} is NOT in quotes 3. Ensure {ProblemEndTime} is NOT in quotes 4. Validate JSON syntax
  1. Ensure State field is in payload 2. Check that RESOLVED state is being sent 3. Verify PID matches between OPEN and RESOLVED
  1. Include {ImpactedEntityNames} in payload 2. Check that problem has entity association 3. Use {ImpactedEntities} for detailed JSON

Best Practices

Filter which problems send notifications to avoid noise from low-priority issues.
Always include {ProblemURL} so responders can quickly access Dynatrace for details.
Use Dynatrace tags (environment, team, service) for better routing in Easyalert.
Include customer, team, environment in payload for escalation routing.
Tune Dynatrace’s automatic problem detection to reduce false positives before they reach Easyalert.