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

Validation & QA

Hands-on2 exercises

Validation Workflow

Every extension delivery needs validation against requirements. Four phases:

  1. Code validation โ€” Does the YAML/Python match requirements?
  2. Data validation โ€” Do metrics have actual datapoints in the environment?
  3. Screen validation โ€” Are all metrics displayed in the UI?
  4. Alert validation โ€” Do alerts match requirement thresholds?

Code Validation

Map each requirement to the extension code:

CheckWhat to VerifyTool
Metric key existsOID/API endpoint maps to requirementManual code review
Metric type correctgauge vs count matches data behaviorvalidate_extension.py
Unit conversion%, hours, Mbps match requirementManual + API query
SNMP lintDED errors (cross-table, scalar/table)validate_extension.py
Key naming.count suffix on count metricsDED006/DED007

Data Validation

Query the Metrics API to verify data flows:

curl "$BASE/api/v2/metrics/query?metricSelector=my_ext.cpu&from=now-24h" \
  -H "Authorization: Api-Token $TOKEN"

โš ๏ธ "No data" doesn't always mean a bug โ€” the device might not support that feature, or the feature set isn't enabled in the monitoring config.

๐Ÿ›  Try it

This extension has a scalar OID missing .0 and a count metric with the wrong key. Fix both bugs.

extension.yamlYAML
Loading...

Screen Validation

CheckError CodeImpact
Chart card key matches layoutDED008Blank card on entity page
Layout references existing cardDED009Card defined but never shown
metricSelector has :splitBy()โ€”Chart shows no data
Entity list uses correct selectorโ€”Children don't appear

Combined Report Format

Requirement Name
  Code:   VALID / BUG (description + line number)
  Data:   VALID / NO DATA (reason)
  Screen: VALID / MISSING

๐Ÿ’ก Always deliver both .docx and .md versions of the report. Color-code: green = VALID, red = BUG, orange = NO DATA.

๐Ÿ›  Try itExercise 2

This table subgroup has a scalar OID ending in .0 (remove it) and an ipAddrTable OID mixed with ifTable OIDs (cross-table bug โ€” move it to its own subgroup or remove it).

extension.yamlYAML
Loading...

What's Next

Module 15 โ€” Real-world case studies from production extensions.