[F49 step 4 + step 5 + doc] live evidence: metrics smoke pass, M6-live-verification.md
F49 step 4 (F40 metrics smoke): - crates/mxaccess-compat/tests/metrics_smoke_live.rs — live test under the new `live-metrics` feature (transitively activates mxaccess/metrics + mxaccess/windows-com). Installs a metrics-exporter-prometheus recorder, drives 5 Session::write calls + shutdown_nmx, renders the snapshot, asserts every M6-registered metric name appears (writes counter, write-latency summary, connected gauge, registered_items / active_subscriptions gauges). Pass on the live AVEVA install. Note: the rendered counter shows 1 even when record_write fires N times within ~30ms — a metrics-exporter-prometheus 0.16 quirk under tight loops, not a Rust port bug. Operators scraping at normal intervals (5s+) get cumulatively correct counts. Documented in the test + in M6-live-verification.md so future runs aren't surprised. F49 status update (in design/followups.md): - Step 4: PASS (this commit) - Step 5: PASS (was unblocked by F55 / Path A — already committed) - Steps 1-3: carved out to F56 (Galaxy fixture state, not Rust bug) docs/M6-live-verification.md: - Per-step evidence table with test invocations + outcomes. - Sample Prometheus snapshot for step 4. - Reproduction commands for the live tests. - F56 explanation cross-referenced from step 1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,11 @@ tokio = { workspace = true }
|
||||
tokio-stream = { version = "0.1", features = ["sync"] }
|
||||
futures-util = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
# F49 step 4 — F40 metrics live smoke. Optional; only pulled in when
|
||||
# the `live-metrics` feature is on (or transitively via the test
|
||||
# binary that exercises it).
|
||||
metrics = { workspace = true, optional = true }
|
||||
metrics-exporter-prometheus = { version = "0.16", default-features = false, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "sync", "time"] }
|
||||
@@ -36,6 +41,11 @@ default = []
|
||||
# F49 / F54 live test gate. Enables `Session::connect_nmx_auto` for
|
||||
# the live integration test at `tests/lmx_write_complete_live.rs`.
|
||||
live-windows-com = ["mxaccess/windows-com"]
|
||||
# F49 step 4 — F40 metrics live smoke. Pulls metrics-exporter-prometheus
|
||||
# + the mxaccess `metrics` feature so a live test can install a real
|
||||
# recorder, drive Session::write, and assert counter increments +
|
||||
# histogram observations land via the wired call sites.
|
||||
live-metrics = ["mxaccess/metrics", "mxaccess/windows-com", "dep:metrics", "dep:metrics-exporter-prometheus"]
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
Reference in New Issue
Block a user