Description
The network_topology construct models a topology-discovery exporter, not snmp_exporter or Alloy’s prometheus.exporter.snmp. AI Factory designs still poll SNMP for rack PDU metering, cooling distribution units and some switch health, and SNMP is the only practical path for most facility-side equipment. Metric names come from snmp_exporter generator output for real MIBs, so the construct must follow a pinned generated snmp.yml.
Acceptance Criteria
- #1 The construct emits snmp_exporter metric shapes for if_mib plus at least one PDU module and one cooling module drawn from real published MIBs, with modules selectable per device declaration
- #2 Per-target scrape meta-series (up, scrape duration, walk duration and the snmp_exporter collection-health series) are emitted, with failure modes for device unreachable, SNMPv3 authentication failure and slow walks
- #3 A device declared once can feed both this construct and network_topology without an identity collision, and the interplay is documented
- #4 Vendor MIB objects with no published generator module are PENDING in cantfind.md
- #5 Every metric, label, attribute and log field is sourced from vendor documentation or a capture at a pinned version and recorded with provenance in the named signals/ area file; anything unconfirmed is a PENDING in cantfind.md, never an invented name
- #6 Rates, counts and cardinality in any shipped blueprint are plausible for a real deployment, with the real-world basis stated in a comment; nothing is raised to force emission
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/
Implementation Notes
loop47: admitted R03 vendor-contract research; implementation waits for fixture landing
loop47: corrected R03 plus final R14 source search pin complete IF-MIB/PDU outputs but no authoritative published facility-cooling generated module for required AC1. Dell chassis fans are not facility cooling; mirrored Liebert objects without generated module remain PENDING. Resume with a vendor/model-pinned cooling MIB and sourced generated snmp_exporter module/exposition, plus landed fixture. Implementation0, infra0, review-repairs0, not rejected; no partial metric source treated as complete AC.
2026-10-05: raised to high. A network-observability demo for a team coming from LogicMonitor exposed this as the main gap: nettopo gives topology but no per-device interface traffic, errors, CPU or memory, which is the first thing that audience looks for.