containerd / containerd/overlaybd

OverlayBD_Alive metric produces malformed Prometheus output — missing node label value

Open
#402 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
410
Forks
85
Avg merge
2d 14h
Merged PRs (30d)
10

Description

### What happened in your environment?

The /metrics endpoint emits an invalid Prometheus line for OverlayBD_Alive:
OverlayBD_Alive{node="1.000000 1778265650342

Expected:
OverlayBD_Alive{node=""} 1.000000 1778265650342

Root cause: In src/exporter_handler.h, alive.render(1) (line 68) is called without a string argument for the {node} label. The template's backtick-based renderer fills the label placeholder with the metric value and timestamp instead, producing a malformed line that Prometheus scrapers cannot parse.

### What did you expect to happen?

The /metrics endpoint emits an invalid Prometheus line for OverlayBD_Alive:
OverlayBD_Alive{node="1.000000 1778265650342

Expected:
OverlayBD_Alive{node=""} 1.000000 1778265650342

### How can we reproduce it?

```
curl http://localhost:9863/metrics

# HELP OverlayBD_Alive
# TYPE OverlayBD_Alive gauge
OverlayBD_Alive{node="1.000000 1776711174990

# HELP OverlayBD_Read_Throughtput Bytes / sec
# TYPE OverlayBD_Read_Throughtput gauge
OverlayBD_Read_Throughtput{node="pread",type="0.000000 1776711174990
OverlayBD_Read_Throughtput{node="download",type="0.000000 1776711174990

# HELP OverlayBD_QPS
# TYPE OverlayBD_QPS gauge
OverlayBD_QPS{node="pread",type="0.000000 1776711174990
OverlayBD_QPS{node="download",type="0.000000 1776711174990

# HELP OverlayBD_MaxLatency us
# TYPE OverlayBD_MaxLatency gauge
OverlayBD_MaxLatency{node="pread",type="0.000000 1776711174990
OverlayBD_MaxLatency{node="download",type="0.000000 1776711174990

# HELP OverlayBD_Count Bytes
# TYPE OverlayBD_Count gauge
OverlayBD_Count{node="pread",type="0.000000 1776711174990
OverlayBD_Count{node="download",type="0.000000 1776711174990
```
### What is the version of your Overlaybd?

```
cat /etc/overlaybd/overlaybd.json
{
"logConfig": {
"logLevel": 1,
"logPath": "/var/log/overlaybd.log"
},
"cacheConfig": {
"cacheType": "file",
"cacheDir": "/opt/overlaybd/registry_cache",
"cacheSizeGB": 32
},
"gzipCacheConfig": {
"enable": true,
"cacheDir": "/opt/overlaybd/gzip_cache",
"cacheSizeGB": 4
},
"credentialConfig": {
"mode": "http",
"path": "localhost:8578/auth"
},
"ioEngine": 0,
"download": {
"enable": false,
"delay": 600,
"delayExtra": 30,
"maxMBps": 100
},
"p2pConfig": {
"enable": false,
"address": "localhost:19145/dadip2p"
},
"exporterConfig": {
"enable": true,
"uriPrefix": "/metrics",
"port": 9863,
"updateInterval": 60000000
},
"enableAudit": true,
"auditPath": "/var/log/overlaybd-audit.log",
"registryFsVersion": "v2",
"userAgent": "azure-overlaybd/v1.0.16"
}
```

### What is your OS environment?

Ubuntu 22.04

### Are you willing to submit PRs to fix it?

- [ ] Yes, I am willing to fix it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.