# ops
`src/features/ops/api.rs`
Background job tracking, health reporting, and metrics aggregation. Used internally by `StorageHandle` (compaction jobs) and available for higher-level observability.
---
## Background Jobs
```rust
pub struct BackgroundJobTracker { /* ... */ }
```
Tracks jobs through their lifecycle: `Queued → Running → Succeeded | Failed | Canceled`. Bounded by `max_queued_jobs`; retains the last `max_retained_terminal_jobs` completed records.
```rust
pub struct BackgroundJobConfig {
pub max_queued_jobs: usize, // default: 256
pub max_retained_terminal_jobs: usize, // default: 2048
}
```
```rust
pub struct BackgroundJobRecord {
pub job_id: u64,
pub job_kind: String,
pub attempts: u32,
pub state: BackgroundJobState,
}
pub enum BackgroundJobState {
Queued,
Running,
Succeeded,
Failed { reason: String },
Canceled,
}
```
```rust
pub enum BackgroundJobError {
InvalidInput(String),
Backpressure { queued_jobs: usize, max_queued_jobs: usize },
Shutdown,
NotFound(u64),
InvalidTransition(String),
}
pub type BackgroundJobResult<T> = std::result::Result<T, BackgroundJobError>;
```
---
## Health
```rust
pub enum HealthStatus {
Healthy,
Degraded,
Unhealthy,
}
pub struct HealthReport {
pub status: HealthStatus,
pub reason: String,
pub error_rate: f64,
}
```
---
## Metrics
Per-instance and per-core aggregated counters.
```rust
pub struct Metrics {
pub query_total: u64,
pub query_errors: u64,
pub query_avg_latency_micros: u64,
pub query_p95_latency_micros: u64,
pub query_p99_latency_micros: u64,
pub ingest_accepted: u64,
pub ingest_rejected: u64,
}
pub struct CoreMetrics {
pub core_id: CoreId,
pub query_total: u64,
pub query_errors: u64,
pub query_avg_latency_micros: u64,
pub ingest_accepted: u64,
pub ingest_rejected: u64,
}
pub struct CoreMetricsAggregate {
pub query_total: u64,
pub query_errors: u64,
pub query_avg_latency_micros: u64,
pub ingest_accepted: u64,
pub ingest_rejected: u64,
}
```