Homeโ€บ๐Ÿš€ Production Skillsโ€บModule 141 min read ยท 15/16

Validation & QA

Hands-on

Validation Workflow

Extension lifecycle โ€” validation and QA

Every extension delivery needs validation against requirements. Four phases:

1. YAML Lint โ†’ 2. Metric Check โ†’ 3. Entity Check โ†’ 4. Alert Test

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:

  1. Lower thresholds temporarily (e.g., CPU > 1%)
  2. Wait for alert to fire
  3. Verify alert name, severity, and entity association
  4. Restore original thresholds

๐Ÿ›  Try it: Use the validation script: python3 validate_extension.py extension.yaml โ€” it checks DED001-DED021 automatically.