Skip to content

chore(collectd): remove unbundled collector configs (SNMP-only overlay) - #400

Merged
pbrane merged 2 commits into
developfrom
chore/remove-vmware-wmi-collectors
Jul 2, 2026
Merged

pbrane merged 2 commits into
developfrom
chore/remove-vmware-wmi-collectors

Conversation

@indigo423

@indigo423 indigo423 commented Jul 1, 2026 •

Copy link
Copy Markdown
Collaborator

Why

delta-v's collectd is SNMP-only by design: core/daemon-boot-collectd/pom.xml bundles SnmpCollector and no other concrete collector (explicit <!-- SNMP collector — SnmpCollector -->). Verified against the freshly-built deltav/collectd:latest: of every collector the overlay registered, only SnmpCollector is present on the classpath — Jsr160Collector, JdbcCollector, PrometheusCollector, WsManCollector, and XmlCollector are all absent. delta-v daemons report self/exporter metrics via /actuator/prometheus → Kafka → VictoriaMetrics, not through collectd, and no node is provisioned or auto-detected with any of these services.

So the overlay carried a large amount of dead collector config — registrations for collectors that cannot run. This PR removes it.

What changed (two commits)

1. Remove dead VMware/WMI collectors — no source, no jar, no datacollection config anywhere; documented as intentionally unbundled:

  • vmware6/vmware7 packages, the WMI service, and the VMware/WMI <collector> registrations
  • the four VMware/WMI <include-collection> entries + the orphaned datacollection/{vmware6,vmware7,vmware-cim,wmi}.xml groups (removed in lockstep)

2. Strip collectd to SNMP-only — remove the remaining unbundled collectors:

  • delete the opennms package (OpenNMS-JVM, JMX-Minion, JMX-Kafka, OpenNMS-DB, OpenNMS-DB-Stats)
  • trim example1 to its SNMP service (drop WS-Man, PostgreSQL, Elasticsearch, Windows-Exporter, Node-Exporter)
  • drop the 10 corresponding <collector> registrations
  • add a comment documenting the SNMP-only design so unbundled collectors aren't re-added

Plus a NOTE refresh in shared/poller-services.yaml.

Deliberately out of scope

JMX-Cassandra (the cassandra-via-jmx package + its two collectors) is left untouched — it's retired separately on chore/collectd-rrd-amputation, and duplicating that here would collide. Once both land, collectd is fully SNMP-only.

⚠️ Merge coordination: this PR and chore/collectd-rrd-amputation both edit collectd-configuration.xml. That branch removes the cassandra-via-jmx package and edits params inside the opennms package that this PR deletes wholesale — expect a modify/delete conflict on the second to merge (trivial resolution: the deletion wins).

Verification

  • New config validates against collectd-configuration.xsd (from opennms-config-jaxb-1.0.19.jar — the schema the MOXy unmarshaller enforces at boot, the same gate that hard-fails RRD-element removals).
  • Every remaining <service> has a matching <collector> (SNMP + the two JMX-Cassandra holdovers); no dangling references.
  • No requisition, detector, seed SQL, poller catalog entry, or test references the removed services.
  • Commit 1's SNMP-only removal was additionally proven live earlier (collectd boots Up (healthy) and keeps publishing to deltav-timeseries); commit 2 removes the same class of optional/repeated elements.

Scope

Greenfield / zero-back-compat: recoverable from git history if any collector is reintroduced (jar + config + provisioning together).

🤖 Generated with Claude Code

@indigo423
indigo423 requested a review from pbrane as a code owner July 1, 2026 14:36
@indigo423
indigo423 force-pushed the chore/remove-vmware-wmi-collectors branch from 4fbf46d to 3355246 Compare July 1, 2026 14:53
@indigo423 indigo423 changed the title chore(collectd): remove dead VMware/WMI collectors from overlay chore(collectd): remove unbundled collector configs (SNMP-only overlay) Jul 1, 2026
indigo423 added 2 commits July 1, 2026 17:14
delta-v does not bundle the VMware or WMI collectors: VmwareCollector,
VmwareCimCollector, and WmiCollector exist nowhere in the repo, no
vmware/wmi collector jar ships in the collectd image (only snmp-collector
is a concrete collector impl), and no vmware-datacollection-config.xml /
wmi-datacollection-config.xml exists anywhere. The collectd overlay still
advertised them, so the config registered implementations that are not on
the classpath and pointed at datacollection configs that do not exist.

Remove the dead config:
- drop the vmware6 and vmware7 packages, the WMI service (already
  status="off"), and the four VMware/WMI <collector> registrations from
  collectd-configuration.xml
- drop the four VMware/WMI <include-collection> entries from
  datacollection-config.xml and delete the now-orphaned datacollection
  groups (vmware6.xml, vmware7.xml, vmware-cim.xml, wmi.xml) in lockstep
  so no dangling group reference survives
- extend the VMware NOTE in shared/poller-services.yaml to record that
  the collectors are gone too, not just the monitors

Every edit removes an optional/repeated element, so the schema-validating
MOXy unmarshaller accepts the config (unlike the RRD-element removals that
hard-fail at parse time). Verified: collectd rebuilt with the amputated
overlay boots Up (healthy), the datacollection config parses with no
dangling group reference, and the collectd producer keeps publishing to
deltav-timeseries with zero failures
(deltav_timeseries_batches_published_total{producer="collectd"} > 0).

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Ronny Trommer <ronny@no42.org>
The collectd boot module bundles only the SNMP collector: daemon-boot-collectd/
pom.xml declares SnmpCollector and no other concrete collector. The JMX/Jsr160,
JDBC, Prometheus, WS-Man, and XML collectors that the overlay still registered are
not on the collectd classpath (verified in deltav/collectd:latest: SnmpCollector
is the only concrete collector class present), and delta-v daemons report self and
exporter metrics via /actuator/prometheus -> Kafka -> VictoriaMetrics rather than
through collectd. No node is provisioned or auto-detected with any of these
services, so they never scheduled.

Remove the dead, unbundled collector config from collectd-configuration.xml:
- delete the `opennms` package (OpenNMS-JVM, JMX-Minion, JMX-Kafka, OpenNMS-DB,
  OpenNMS-DB-Stats)
- trim `example1` to its SNMP service, dropping WS-Man, PostgreSQL, Elasticsearch,
  Windows-Exporter, Node-Exporter
- drop the 10 corresponding <collector> registrations (PrometheusCollector,
  XmlCollector, JdbcCollector, WsManCollector, Jsr160Collector for the above)
- add a comment documenting the SNMP-only design so unbundled collectors are not
  re-added

JMX-Cassandra (the cassandra-via-jmx package and its two collectors) is left
untouched here: it is retired separately on chore/collectd-rrd-amputation, and
duplicating that removal would collide. After both land, collectd is SNMP-only.

The result validates against collectd-configuration.xsd from opennms-config-jaxb-
1.0.19.jar (the schema the MOXy unmarshaller enforces at boot), and every remaining
<service> has a matching <collector>.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Ronny Trommer <ronny@no42.org>
@indigo423
indigo423 force-pushed the chore/remove-vmware-wmi-collectors branch from 91199e3 to 27dff02 Compare July 1, 2026 15:14
@pbrane
pbrane merged commit 2c26b03 into develop Jul 2, 2026
4 checks passed
@pbrane
pbrane deleted the chore/remove-vmware-wmi-collectors branch July 2, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants