Skip to content

Commit ffd30a2

Browse files
committed
feat: add Prometheus exporter for DBLab metrics
Add comprehensive Prometheus metrics endpoint at /metrics for monitoring the DBLab Engine. The exporter collects and exposes metrics for: - Instance info and uptime - Pool/disk usage (total, free, used, snapshots, clones) - Clone metrics (count, age, diff size, CPU/RAM usage per clone) - Snapshot metrics (count, age, physical/logical size, data lag) - Branch metrics (count, info) - Dataset availability for logical mode The metrics are collected on each request to /metrics and include Docker container stats for CPU and memory usage per clone. Also add PROMETHEUS.md with detailed documentation of all metrics, example Prometheus configuration, and alerting rules.
1 parent 583e4dd commit ffd30a2

8 files changed

Lines changed: 1125 additions & 29 deletions

File tree

PROMETHEUS.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# Prometheus Metrics
2+
3+
DBLab Engine exposes Prometheus metrics via the `/metrics` endpoint. These metrics can be used to monitor the health and performance of the DBLab instance.
4+
5+
## Endpoint
6+
7+
```
8+
GET /metrics
9+
```
10+
11+
The endpoint is publicly accessible (no authentication required) and returns metrics in Prometheus text format.
12+
13+
## Available Metrics
14+
15+
### Instance Metrics
16+
17+
| Metric Name | Type | Labels | Description |
18+
|-------------|------|--------|-------------|
19+
| `dblab_instance_info` | Gauge | `instance_id`, `version`, `edition` | Information about the DBLab instance (always 1) |
20+
| `dblab_instance_uptime_seconds` | Gauge | - | Time in seconds since the DBLab instance started |
21+
| `dblab_instance_status` | Gauge | `status_code` | Status of the DBLab instance (1=active for status) |
22+
| `dblab_retrieval_status` | Gauge | `mode`, `status` | Status of data retrieval (1=active for status) |
23+
24+
### Disk/Pool Metrics
25+
26+
| Metric Name | Type | Labels | Description |
27+
|-------------|------|--------|-------------|
28+
| `dblab_disk_total_bytes` | Gauge | `pool` | Total disk space in bytes |
29+
| `dblab_disk_free_bytes` | Gauge | `pool` | Free disk space in bytes |
30+
| `dblab_disk_used_bytes` | Gauge | `pool` | Used disk space in bytes |
31+
| `dblab_disk_used_by_snapshots_bytes` | Gauge | `pool` | Disk space used by snapshots in bytes |
32+
| `dblab_disk_used_by_clones_bytes` | Gauge | `pool` | Disk space used by clones in bytes |
33+
| `dblab_disk_data_size_bytes` | Gauge | `pool` | Size of the data directory in bytes |
34+
| `dblab_disk_compress_ratio` | Gauge | `pool` | Compression ratio of the filesystem (ZFS) |
35+
| `dblab_pool_status` | Gauge | `pool`, `mode`, `status` | Status of the pool (1=active for status) |
36+
37+
### Clone Metrics
38+
39+
| Metric Name | Type | Labels | Description |
40+
|-------------|------|--------|-------------|
41+
| `dblab_clones_total` | Gauge | - | Total number of clones |
42+
| `dblab_clone_info` | Gauge | `clone_id`, `branch`, `snapshot_id`, `pool`, `status`, `protected` | Information about a clone (always 1) |
43+
| `dblab_clone_age_seconds` | Gauge | `clone_id` | Age of the clone in seconds since creation |
44+
| `dblab_clone_max_age_seconds` | Gauge | - | Maximum age of any clone in seconds |
45+
| `dblab_clone_diff_size_bytes` | Gauge | `clone_id` | Extra disk space used by the clone (diff from snapshot) |
46+
| `dblab_clone_logical_size_bytes` | Gauge | `clone_id` | Logical size of the clone data |
47+
| `dblab_clone_cpu_usage_percent` | Gauge | `clone_id` | CPU usage percentage of the clone container |
48+
| `dblab_clone_memory_usage_bytes` | Gauge | `clone_id` | Memory usage in bytes of the clone container |
49+
| `dblab_clone_memory_limit_bytes` | Gauge | `clone_id` | Memory limit in bytes of the clone container |
50+
51+
### Snapshot Metrics
52+
53+
| Metric Name | Type | Labels | Description |
54+
|-------------|------|--------|-------------|
55+
| `dblab_snapshots_total` | Gauge | - | Total number of snapshots |
56+
| `dblab_snapshot_info` | Gauge | `snapshot_id`, `pool`, `branch` | Information about a snapshot (always 1) |
57+
| `dblab_snapshot_age_seconds` | Gauge | `snapshot_id` | Age of the snapshot in seconds since creation |
58+
| `dblab_snapshot_max_age_seconds` | Gauge | - | Maximum age of any snapshot in seconds |
59+
| `dblab_snapshot_physical_size_bytes` | Gauge | `snapshot_id` | Physical disk space used by the snapshot |
60+
| `dblab_snapshot_logical_size_bytes` | Gauge | `snapshot_id` | Logical size of the snapshot data |
61+
| `dblab_snapshot_data_lag_seconds` | Gauge | `snapshot_id` | Time difference between snapshot data state and now |
62+
| `dblab_snapshot_max_data_lag_seconds` | Gauge | - | Maximum data lag of any snapshot in seconds |
63+
| `dblab_snapshot_num_clones` | Gauge | `snapshot_id` | Number of clones using this snapshot |
64+
65+
### Branch Metrics
66+
67+
| Metric Name | Type | Labels | Description |
68+
|-------------|------|--------|-------------|
69+
| `dblab_branches_total` | Gauge | - | Total number of branches |
70+
| `dblab_branch_info` | Gauge | `branch_name`, `pool`, `snapshot_id` | Information about a branch (always 1) |
71+
72+
### Dataset Metrics
73+
74+
| Metric Name | Type | Labels | Description |
75+
|-------------|------|--------|-------------|
76+
| `dblab_datasets_total` | Gauge | `pool` | Total number of datasets (slots) in the pool |
77+
| `dblab_datasets_available` | Gauge | `pool` | Number of available (non-busy) dataset slots for reuse |
78+
| `dblab_dataset_info` | Gauge | `pool`, `dataset_name` | Information about a dataset (1=busy, 0=available) |
79+
80+
## Prometheus Configuration
81+
82+
Add the following to your `prometheus.yml`:
83+
84+
```yaml
85+
scrape_configs:
86+
- job_name: 'dblab'
87+
static_configs:
88+
- targets: ['<dblab-host>:<dblab-port>']
89+
metrics_path: /metrics
90+
```
91+
92+
## Example Queries
93+
94+
### Free Disk Space Percentage
95+
96+
```promql
97+
100 * dblab_disk_free_bytes / dblab_disk_total_bytes
98+
```
99+
100+
### Number of Active Clones
101+
102+
```promql
103+
dblab_clones_total
104+
```
105+
106+
### Maximum Clone Age in Hours
107+
108+
```promql
109+
dblab_clone_max_age_seconds / 3600
110+
```
111+
112+
### Data Freshness (lag from current time)
113+
114+
```promql
115+
dblab_snapshot_max_data_lag_seconds / 60
116+
```
117+
118+
### Memory Usage per Clone
119+
120+
```promql
121+
dblab_clone_memory_usage_bytes{clone_id="my-clone"}
122+
```
123+
124+
### CPU Usage per Clone
125+
126+
```promql
127+
dblab_clone_cpu_usage_percent{clone_id="my-clone"}
128+
```
129+
130+
## Alerting Examples
131+
132+
### Low Disk Space Alert
133+
134+
```yaml
135+
- alert: DBLabLowDiskSpace
136+
expr: (dblab_disk_free_bytes / dblab_disk_total_bytes) * 100 < 20
137+
for: 5m
138+
labels:
139+
severity: warning
140+
annotations:
141+
summary: "DBLab low disk space"
142+
description: "DBLab pool {{ $labels.pool }} has less than 20% free disk space"
143+
```
144+
145+
### Stale Snapshot Alert
146+
147+
```yaml
148+
- alert: DBLabStaleSnapshot
149+
expr: dblab_snapshot_max_data_lag_seconds > 86400
150+
for: 10m
151+
labels:
152+
severity: warning
153+
annotations:
154+
summary: "DBLab snapshot data is stale"
155+
description: "DBLab snapshot data is more than 24 hours old"
156+
```
157+
158+
### High Clone Count Alert
159+
160+
```yaml
161+
- alert: DBLabHighCloneCount
162+
expr: dblab_clones_total > 50
163+
for: 5m
164+
labels:
165+
severity: warning
166+
annotations:
167+
summary: "DBLab has many clones"
168+
description: "DBLab has {{ $value }} clones running"
169+
```

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ Read more:
119119
- Resource quotas: CPU, RAM
120120
- Monitoring & security
121121
- `/healthz` API endpoint (no auth), extended `/status` endpoint ([API docs](https://api.dblab.dev))
122+
- Prometheus metrics endpoint (`/metrics`) for monitoring
122123
- Netdata module for insights
123124

124125
## How to contribute

engine/go.mod

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ require (
2222
github.com/lib/pq v1.10.9
2323
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
2424
github.com/pkg/errors v0.9.1
25+
github.com/prometheus/client_golang v1.23.2
2526
github.com/robfig/cron/v3 v3.0.1
2627
github.com/rs/xid v1.5.0
2728
github.com/sergi/go-diff v1.3.1
2829
github.com/sethvargo/go-password v0.2.0
2930
github.com/shirou/gopsutil v3.21.11+incompatible
30-
github.com/stretchr/testify v1.11.0
31+
github.com/stretchr/testify v1.11.1
3132
github.com/testcontainers/testcontainers-go v0.40.0
3233
github.com/urfave/cli/v2 v2.25.7
3334
github.com/wagslane/go-password-validator v0.3.0
@@ -42,7 +43,9 @@ require (
4243
dario.cat/mergo v1.0.2 // indirect
4344
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
4445
github.com/Microsoft/go-winio v0.6.2 // indirect
46+
github.com/beorn7/perks v1.0.1 // indirect
4547
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
48+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
4649
github.com/containerd/errdefs v1.0.0 // indirect
4750
github.com/containerd/errdefs/pkg v0.3.0 // indirect
4851
github.com/containerd/log v0.1.0 // indirect
@@ -75,10 +78,14 @@ require (
7578
github.com/moby/sys/userns v0.1.0 // indirect
7679
github.com/moby/term v0.5.0 // indirect
7780
github.com/morikuni/aec v1.0.0 // indirect
81+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
7882
github.com/opencontainers/go-digest v1.0.0 // indirect
7983
github.com/opencontainers/image-spec v1.1.1 // indirect
8084
github.com/pmezard/go-difflib v1.0.0 // indirect
8185
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
86+
github.com/prometheus/client_model v0.6.2 // indirect
87+
github.com/prometheus/common v0.66.1 // indirect
88+
github.com/prometheus/procfs v0.16.1 // indirect
8289
github.com/russross/blackfriday/v2 v2.1.0 // indirect
8390
github.com/shirou/gopsutil/v4 v4.25.6 // indirect
8491
github.com/sirupsen/logrus v1.9.3 // indirect
@@ -95,8 +102,9 @@ require (
95102
go.opentelemetry.io/otel/sdk v1.21.0 // indirect
96103
go.opentelemetry.io/otel/trace v1.35.0 // indirect
97104
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
105+
go.yaml.in/yaml/v2 v2.4.2 // indirect
98106
golang.org/x/sys v0.38.0 // indirect
99107
golang.org/x/text v0.31.0 // indirect
100108
golang.org/x/time v0.12.0 // indirect
101-
google.golang.org/protobuf v1.35.2 // indirect
109+
google.golang.org/protobuf v1.36.8 // indirect
102110
)

engine/go.sum

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhP
1616
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
1717
github.com/aws/aws-sdk-go v1.44.309 h1:IPJOFBzXekakxmEpDwd4RTKmmBR6LIAiXgNsM51bWbU=
1818
github.com/aws/aws-sdk-go v1.44.309/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
19+
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
20+
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
1921
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
2022
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
23+
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
24+
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
2125
github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
2226
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
2327
github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
@@ -187,6 +191,8 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
187191
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
188192
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
189193
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
194+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
195+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
190196
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
191197
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
192198
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
@@ -200,6 +206,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
200206
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
201207
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
202208
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
209+
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
210+
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
211+
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
212+
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
213+
github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
214+
github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
215+
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
216+
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
203217
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
204218
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
205219
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
@@ -242,6 +256,7 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
242256
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
243257
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
244258
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
259+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
245260
github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU=
246261
github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY=
247262
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
@@ -287,6 +302,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E
287302
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
288303
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
289304
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
305+
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
306+
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
290307
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
291308
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
292309
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -384,6 +401,8 @@ google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw=
384401
google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
385402
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
386403
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
404+
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
405+
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
387406
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
388407
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
389408
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)