Monitoring Bridge
HestiaStore monitoring is split into dedicated modules so the core engine
artifact has no runtime dependency on Micrometer or Prometheus.
Modules
engineCore storage/index implementation and runtime snapshot API.monitoring-rest-json-apiShared REST/JSON DTO contracts for monitoring and management.monitoring-micrometerMicrometer binder overSegmentIndex.metricsSnapshot().monitoring-prometheusPrometheus helper based on Micrometer Prometheus registry.monitoring-rest-jsonNode-local REST bridge exposing/api/v1/*for report/actions/config.monitoring-console-webOperator UI that polls one or more node-localmonitoring-rest-jsonendpoints.
How runtime data is produced
At runtime, each logical index exposes counters and state via
SegmentIndex.metricsSnapshot().
The snapshot includes:
- operation counters (
get/put/delete) - segment registry cache counters (hit/miss/load/evict, size, limit)
- current configuration-derived runtime limits shown in monitoring
- segment runtime state counts and queue pressure
- latency percentiles and bloom-filter counters
Because snapshots are immutable, readers (API/exporters/UI) can observe metrics without mutating index state.
Runtime model
- Core publishes immutable snapshots via
metricsSnapshot(). - Monitoring modules are optional and attached by the embedding application.
- If monitoring modules are not on classpath, core behavior is unchanged.
Exposed metric names
hestiastore_ops_get_totalhestiastore_ops_put_totalhestiastore_ops_delete_totalhestiastore_index_up
All counters use the stable index tag to identify the logical index name.