Alerting Profiles โ Workflows
Hands-on2 exercises
Alerting Profiles โ Workflows
Gen2 used a two-step notification system: alerting profiles (filter which problems) + problem notifications (send to channel). Gen3 replaces both with Workflows โ a single, powerful automation engine.
Migration Path
GEN2 GEN3
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Alerting profile: Workflow trigger:
Severity filter (ERROR only) Davis problem trigger
Management zone filter + DQL filter in first task
Tag filter + condition on task
Problem notification: Workflow action:
Email integration dynatrace.email:send-email
Slack webhook dynatrace.slack:slack-send-message
PagerDuty integration HTTP action โ PagerDuty API
ServiceNow integration dynatrace.jira:jira-create-issue
Custom webhook HTTP action โ any URL
Workflow Example: Problem โ Email
{
"title": "Problem Alert Email",
"trigger": {
"eventTrigger": {
"isActive": true,
"triggerConfiguration": {
"type": "davis-problem",
"value": {"categories": {"error": true, "availability": true}}
}
}
},
"tasks": {
"send_email": {
"name": "send_email",
"action": "dynatrace.email:send-email",
"input": {
"to": ["ops@company.com"],
"cc": [],
"bcc": [],
"subject": "Problem: {{ event()['event.name'] }}",
"content": "**Problem:** {{ event()['event.name'] }}\n**Status:** {{ event()['event.status'] }}"
}
}
}
}
Workflow Advantages Over Classic Notifications
- DQL enrichment โ query additional context before notifying
- JavaScript logic โ format messages, make decisions, calculate severity
- Conditional branching โ different actions based on problem type
- Multiple channels โ email + Slack + Jira in one workflow
- Auto-remediation โ take action, not just notify
- Schedule triggers โ daily reports, weekly summaries
Email Action Rules
Field Required Notes
โโโโโโโโโโ โโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
to Yes Array of email strings
cc Yes Must be [] (empty array, not omitted!)
bcc Yes Must be [] (empty array, not omitted!)
subject Yes String, supports Jinja: {{ event()['field'] }}
content Yes Markdown body (NOT "body" or "message")