Task · MQ-1

Add a QDEPTHHI exporter variant and safe multi-instance updater

Description

The distribution currently builds IBM’s pinned mq_prometheus unchanged (v6.0.0, commit 7bce9b8ef9ef513ff77688f022929843d5ba7eaf). It does not expose the local-queue QDEPTHHI attribute needed for queue-specific monitoring. Produce two clearly identified Prometheus exporter binaries from the same pinned upstream revision: the unchanged upstream-native build and an explicitly patched build that exports QDEPTHHI per local queue. Preserve the existing OTel distribution path.

The Linux installer currently installs one mq_prometheus per instance, normally under /opt/mq-exporter/; one host may run several queue managers on distinct ports and may have instances under an alternate –root. Extend packaging/installation so the intended variant is explicit, then provide a safe update command for all managed instances on a host. Do not include customer names, hosts, queue-policy mappings or credentials in this public repository.

Recreate the disposable AWS IBM MQ lab for end-to-end validation. Compare MQSC DISPLAY QLOCAL(*) QDEPTHHI with each patched exporter’s raw /metrics response and verify the metric survives installation and an upgrade of multiple simultaneous instances. A successful build or /metrics HTTP 200 alone is insufficient. Record the lab setup, tested MQ and OS versions, commands, results and teardown. If prior lab infrastructure is unavailable, reconstruct it and document the reproducible procedure before claiming live validation.

Acceptance Criteria

Implementation Notes

Published v6.0.0-1 (native, Latest), v6.0.0-custom-1 and v6.0.0-custom-2 (custom, not latest). Tracks: vX.Y.Z-N / vX.Y.Z-custom-N (build/versions.py, tests/version-vectors.json). Custom = build/patches/qdepthhi.patch -> ibmmq_queue_attribute_depth_high_limit, with an in-container regression test proven to fail without the guard. install.sh –custom/–native, release/variant records, host lock, –preflight-only; update.sh inventories managed and unmanaged exporters, snapshots, verifies new PID/exe/health, rolls back and handles signals; update.sh with no args updates to the newest release of each build, –custom/–native switch builds. Container test covers 11 updater scenarios. Live lab on RHEL 9.6 + MQ 9.3.0.35 with the 9.3.0.27 client passed install, rediscovery, updates, fault rollback, reboot, switching, and online updates of the published releases. The published payloads are byte-identical to the lab-tested candidates. Lab torn down and verified. Windows install.ps1/mq-dist.exe not natively retested (approved; MQ-4). Follow-ups MQ-2..MQ-5.

References

View the source file on GitHub