mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-28 09:08:58 +00:00
feat(scanner): expose replication repair kind metrics (#3476)
This commit is contained in:
@@ -292,6 +292,9 @@ Compare these fields between baseline and tuned runs:
|
||||
| `metrics.source_work` | Shows cumulative work found, queued, skipped, missed, executed, and failed by source. |
|
||||
| `metrics.current_cycle_source_work` | Shows which source is consuming the current scan cycle. |
|
||||
| `metrics.last_cycle_source_work` | Shows which source consumed the previous scan cycle. |
|
||||
| `metrics.replication_repair` | Splits scanner-discovered replication repair by source and kind, including bucket object, delete-marker, version-purge, existing-object repair, and site replication boundary states. |
|
||||
| `metrics.current_cycle_replication_repair` | Shows which replication repair kind is being discovered or admitted in the current cycle. |
|
||||
| `metrics.last_cycle_replication_repair` | Shows which replication repair kind consumed the previous cycle. |
|
||||
| `metrics.lifecycle_expiry.current_queued` | Shows scanner-driven expiry/delete work waiting in the expiry worker queue. |
|
||||
| `metrics.lifecycle_expiry.current_active` | Shows scanner-driven expiry/delete work currently running in expiry workers. |
|
||||
| `metrics.lifecycle_expiry.queue_missed` | Shows expiry/delete queue admission failures outside the scanner walk itself. |
|
||||
|
||||
@@ -99,6 +99,7 @@ metrics.lifecycle_transition.current_queued
|
||||
metrics.lifecycle_transition.scanner_missed
|
||||
metrics.maintenance_control.primary_control
|
||||
metrics.source_work
|
||||
metrics.replication_repair
|
||||
metrics.scan_checkpoint
|
||||
```
|
||||
|
||||
@@ -147,6 +148,28 @@ Use these counters to decide whether scan progress is limited by scanner pacing
|
||||
or by a downstream subsystem such as lifecycle transition, replication repair,
|
||||
or heal admission.
|
||||
|
||||
## Reading Replication Repair
|
||||
|
||||
`metrics.replication_repair`, `metrics.current_cycle_replication_repair`, and
|
||||
`metrics.last_cycle_replication_repair` split scanner-discovered replication
|
||||
repair work by source and repair kind.
|
||||
|
||||
Each entry has the same `checked`, `queued`, `executed`, `failed`, `skipped`,
|
||||
and `missed` counters used by `source_work`, plus:
|
||||
|
||||
| Field | Meaning |
|
||||
|---|---|
|
||||
| `source` | `bucket_replication` for bucket replication repair, or `site_replication` for site replication boundary signals. |
|
||||
| `kind` | Bucket repair kinds are `object`, `delete_marker`, `version_purge`, and `existing_object`. Site replication boundary kinds are `passive_requeue` and `active_resync`. |
|
||||
|
||||
For bucket replication, `queued` means scanner-discovered repair was admitted
|
||||
to the replication queue, `missed` means the queue or worker path could not
|
||||
accept it, and `skipped` means the object did not require a new repair task.
|
||||
|
||||
The site replication kinds keep passive scanner discovery separate from active
|
||||
resync. Scanner status may report site replication boundary counters, but the
|
||||
scanner should not be treated as the active site replication resync controller.
|
||||
|
||||
## Reading Maintenance Control
|
||||
|
||||
`metrics.maintenance_control` derives a source-level control snapshot from
|
||||
|
||||
Reference in New Issue
Block a user