New to Kestra?
Use blueprints to kickstart your first workflows.
Audits Dynatrace Synthetic browser monitors for failed transaction steps, evaluates user journey regressions, and alerts SRE teams via Slack.
Modern web applications rely on complex multi-step user journeys such as single sign-on authentication, shopping cart checkouts, and SaaS onboarding flows. Dynatrace Synthetic Browser Monitors execute scripted real-browser sessions across global vantage points to validate critical user paths. However, frontend releases often introduce subtle DOM selector changes, JavaScript runtime crashes, or third-party script timeouts that cause individual browser steps to fail. If synthetic monitoring failures are siloed within Dynatrace dashboards, engineering teams may take hours to notice broken customer conversion funnels. This sentinel inspects the Dynatrace Environment API v2 on a 15-minute interval, isolates step-level execution failures, and routes actionable incident notifications to on-call SRE teams on Slack with direct root-cause waterfall links.
*/15 * * * *) or runs on-demand via manual execution./api/v2/synthetic/execution/{id} within the configured rolling time window.io.kestra.plugin.core.flow.If flowable determines whether failed executions meet or exceed max_failed_executions_threshold.#sre-synthetic-alerts containing monitor identifiers and deep links to Dynatrace waterfall diagrams.flowchart TD
A[fifteen_minute_dynatrace_audit Schedule Trigger] --> B[evaluate_dynatrace_browser_steps Python Script]
B --> C[check_synthetic_failure Flowable If]
C -- Executions Failed --> D[notify_slack_synthetic_failure Webhook]
C -- Executions Nominal --> E[log_synthetic_status Log]
D --> E
E --> F[export_dynatrace_manifest Return]
Dynatrace captures deep synthetic browser execution traces, but incident escalation and cross-platform automation require orchestrating multiple tools. Kestra acts as the operational nerve center, polling the Dynatrace API, correlating test status with deployment events, and routing notifications into Slack channels with specific runbooks. With Kestra's containerized Python runner and native secret management, teams can securely query enterprise APM platforms without managing brittle cron infrastructure.
| Name | Type | Default | Description |
|---|---|---|---|
dynatrace_tenant_uri |
STRING |
https://abc12345.live.dynatrace.com |
Base URL of your Dynatrace SaaS environment or Managed cluster endpoint. |
synthetic_monitor_id |
STRING |
SYNTHETIC_TEST-1234567890ABCDEF |
Dynatrace Synthetic Browser Monitor entity ID to audit for step failures. |
max_failed_executions_threshold |
INT |
1 |
Maximum allowable failed executions in the recent evaluation window before triggering an incident. |
check_window_minutes |
INT |
15 |
Rolling lookback duration in minutes for evaluating synthetic browser test executions. |
alert_on_failure |
BOOL |
true |
Whether to dispatch automated Slack incident alerts when synthetic browser step failures are detected. |
{{ outputs.evaluate_dynatrace_browser_steps.vars.monitor_name }}: Human-readable display name of the evaluated synthetic monitor.{{ outputs.evaluate_dynatrace_browser_steps.vars.failed_executions_count }}: Number of failed test executions recorded within the time window.{{ outputs.evaluate_dynatrace_browser_steps.vars.has_failures }}: Boolean flag indicating whether the failure threshold was breached.{{ outputs.export_dynatrace_manifest.value }}: Structured dictionary containing the consolidated synthetic evaluation manifest.synthetic.read and synthetic.execute permission scopes.DYNATRACE_API_TOKEN: Dynatrace Environment API v2 token with permissions to read synthetic monitor configurations and executions.SLACK_WEBHOOK_URL: Slack Incoming Webhook URL used to dispatch incident notifications.DYNATRACE_API_TOKEN and SLACK_WEBHOOK_URL in your Kestra secret storage.company.sre namespace.dynatrace_tenant_uri with your Dynatrace tenant domain and provide your target synthetic_monitor_id.Read synthetic monitors, locations, and nodes (API v2) scope; missing scopes result in 403 Forbidden errors.SYNTHETIC_TEST-XXXXXXXXXXXXXXXX; verifying this ID in the Dynatrace URL prevents 404 errors.check_window_minutes is set to at least 15 to capture at least one execution.io.kestra.plugin.core.flow.ForEach task to monitor an entire suite of core synthetic tests.