Add a New Device Type
Use this process for a new device role or a material change to the collection method. A single new host normally follows the shorter inventory update workflow.
Prerequisites
- Confirm service and device ownership.
- Define supported regions and source inventory.
- Identify stable
device_type,node_type, region, data-center, device, and customer labels. - Define required metrics, events, dashboard, service alerts, and scrape/ingestion-down coverage.
Step 1: Add to Inventory
- Update the authoritative source inventory.
- Add device and region mappings in
config/devices.yamlandconfig/regions.yamlif needed. - Run the matching
wxcdi-inventory-filesgenerator. - Regenerate syslog metadata, trap metadata, and the hosts cache.
- Review that only the intended targets changed.
Step 2: Configure Monitoring
Use an existing SNMP module/exporter when it satisfies the requirements. For a new exporter, define stable metrics, timeouts, error isolation, self-metrics, tests, secure credential loading, inventory consumption, chart/runtime values, and target discovery.
Verify target discovery, successful collection, Prometheus scrape, Mimir remote write, and Grafana query before claiming coverage.
Step 3: Configure Logging
Define source-side syslog/trap/file configuration, regional ingress, metadata enrichment, Splunk instance, index/sourcetype, data classification, and source-health monitoring. Test with non-sensitive representative data.
Step 4: Create Dashboards
Create service-health, resource, dependency, and telemetry-freshness panels. Use current labels, meaningful no-data behavior, source control, and ownership/runbook links.
Step 5: Configure Alerts
Add actionable service alerts and a scrape/ingestion-down alert. Test firing, grouping/suppression, notification delivery, acknowledgement, and recovery.
Step 6: Update Documentation
Update the matching observability-audit YAML and the existing device page in this portal. Do not mark the device covered while the dashboard, alerts, or loss-of-visibility control remain undefined.