Validation Workflow
Extension lifecycle โ validation and QA
Every extension delivery needs validation against requirements. Four phases:
Phase 1: YAML Lint (DED Codes)
Check for common YAML errors using diagnostic codes:
Code What It Checks Severity
โโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ
DED001 Missing required fields Error
DED003 Invalid metric type Error
DED005 Metric key doesn't match extension name Warning
DED010 Scalar OID missing .0 suffix Error
DED011 Table OID has .0 suffix Error
DED018 Cross-table OIDs in same subgroup Error
DED021 Dimension key conflicts Warning
โ ๏ธ DED018 is the #1 bug in production extensions. It means you mixed OIDs from different SNMP tables in one subgroup. Each subgroup = one table.
Phase 2: Metric Verification
After deployment, verify every metric has data:
// Check which metrics are reporting
fetch dt.metrics
| filter matchesPhrase(metric.key, "com.dynatrace.extension.my-ext")
| fields metric.key, metric.unit, metric.description
Phase 3: Entity Verification
// Check entities were created
fetch dt.entity.my-ext:device
| fields entity.name, device_address, entity.detected_name
Phase 4: Alert Testing
Trigger each alert to verify it fires correctly:
- Lower thresholds temporarily (e.g., CPU > 1%)
- Wait for alert to fire
- Verify alert name, severity, and entity association
- Restore original thresholds
๐ Try it: Use the validation script: python3 validate_extension.py extension.yaml โ it checks DED001-DED021 automatically.