feat: add Prometheus exporter for DBLab metrics
Summary
Add comprehensive Prometheus metrics endpoint at /metrics for monitoring the DBLab Engine.
Changes
New Files
-
engine/internal/srv/metrics/metrics.go- Defines all Prometheus metrics -
engine/internal/srv/metrics/collector.go- Implements metrics collection logic -
engine/internal/srv/metrics/metrics_test.go- Unit tests -
PROMETHEUS.md- Detailed documentation
Modified Files
-
engine/internal/srv/server.go- Added/metricsendpoint -
engine/go.mod- Added prometheus/client_golang dependency -
README.md- Added mention of Prometheus metrics in features
Metrics Exposed
| Category | Key Metrics |
|---|---|
| Disk |
dblab_disk_free_bytes, dblab_disk_total_bytes, dblab_disk_used_by_snapshots_bytes, dblab_disk_used_by_clones_bytes
|
| Clones |
dblab_clones_total, dblab_clone_age_seconds, dblab_clone_max_age_seconds, dblab_clone_diff_size_bytes, dblab_clone_cpu_usage_percent, dblab_clone_memory_usage_bytes
|
| Snapshots |
dblab_snapshots_total, dblab_snapshot_age_seconds, dblab_snapshot_max_age_seconds, dblab_snapshot_data_lag_seconds, dblab_snapshot_physical_size_bytes
|
| Branches |
dblab_branches_total, dblab_branch_info
|
| Datasets |
dblab_datasets_total, dblab_datasets_available
|
Closes #668 (closed)