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 /metrics endpoint
  • 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)

Merge request reports

Loading