add registry low cache hit rate alert [ci skip]

This commit is contained in:
Viktor Barzin 2025-12-29 10:37:13 +00:00
parent a3624f80e0
commit 42403e0b35
No known key found for this signature in database
GPG key ID: 4056458DBDBF8863
3 changed files with 240 additions and 155 deletions

View file

@ -18,7 +18,7 @@
"editable": true, "editable": true,
"fiscalYearStartMonth": 0, "fiscalYearStartMonth": 0,
"graphTooltip": 0, "graphTooltip": 0,
"id": 24, "id": 0,
"links": [], "links": [],
"panels": [ "panels": [
{ {
@ -182,10 +182,12 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"editorMode": "code",
"expr": "registry_registry_storage_cache_total{instance=\"$instance\",type=\"Request\"}", "expr": "registry_registry_storage_cache_total{instance=\"$instance\",type=\"Request\"}",
"format": "time_series", "format": "time_series",
"intervalFactor": 1, "intervalFactor": 1,
"legendFormat": "{{ type }}", "legendFormat": "{{ type }}",
"range": true,
"refId": "A" "refId": "A"
} }
], ],
@ -260,10 +262,12 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"editorMode": "code",
"expr": "registry_registry_storage_cache_total{instance=\"$instance\",type=\"Hit\"}", "expr": "registry_registry_storage_cache_total{instance=\"$instance\",type=\"Hit\"}",
"format": "time_series", "format": "time_series",
"intervalFactor": 1, "intervalFactor": 1,
"legendFormat": "{{ type }}", "legendFormat": "{{ type }}",
"range": true,
"refId": "A" "refId": "A"
} }
], ],
@ -353,38 +357,30 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"description": "Process Resident Memory Usage",
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "color": {
"fixedColor": "rgb(31, 120, 193)", "mode": "thresholds"
"mode": "fixed"
}, },
"mappings": [ "mappings": [],
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ {
"color": "green", "color": "dark-red",
"value": 0 "value": 0
}, },
{ {
"color": "red", "color": "#EAB839",
"value": 80 "value": 0.3
},
{
"color": "green",
"value": 0.8
} }
] ]
}, },
"unit": "decbytes" "unit": "percentunit"
}, },
"overrides": [] "overrides": []
}, },
@ -394,17 +390,16 @@
"x": 19, "x": 19,
"y": 1 "y": 1
}, },
"id": 24, "id": 45,
"maxDataPoints": 100,
"options": { "options": {
"colorMode": "none", "colorMode": "value",
"graphMode": "area", "graphMode": "area",
"justifyMode": "auto", "justifyMode": "auto",
"orientation": "horizontal", "orientation": "auto",
"percentChangeColorMode": "standard", "percentChangeColorMode": "standard",
"reduceOptions": { "reduceOptions": {
"calcs": [ "calcs": [
"mean" "lastNotNull"
], ],
"fields": "", "fields": "",
"values": false "values": false
@ -421,15 +416,14 @@
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"editorMode": "code", "editorMode": "code",
"expr": "avg(registry_process_resident_memory_bytes{instance=\"$instance\"})", "expr": "(sum by (job) (rate(registry_registry_storage_cache_total{type=\"Hit\"}[15m]))) / (sum by (job) (rate(registry_registry_storage_cache_total{type=\"Request\"}[15m])))",
"format": "time_series", "instant": false,
"intervalFactor": 2, "legendFormat": "__auto",
"legendFormat": "",
"range": true, "range": true,
"refId": "A" "refId": "A"
} }
], ],
"title": "Resident Memory Usage", "title": "Cache Hit Rate",
"type": "stat" "type": "stat"
}, },
{ {
@ -784,48 +778,24 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"description": "The HTTP requests", "description": "Process Resident Memory Usage",
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "color": {
"mode": "palette-classic" "fixedColor": "rgb(31, 120, 193)",
"mode": "fixed"
}, },
"custom": { "mappings": [
"axisBorderShow": false, {
"axisCenteredZero": false, "options": {
"axisColorMode": "text", "match": "null",
"axisLabel": "", "result": {
"axisPlacement": "auto", "text": "N/A"
"barAlignment": 0, }
"barWidthFactor": 0.6, },
"drawStyle": "line", "type": "special"
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
} }
}, ],
"mappings": [],
"min": 0,
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
@ -839,31 +809,34 @@
} }
] ]
}, },
"unit": "short" "unit": "decbytes"
}, },
"overrides": [] "overrides": []
}, },
"gridPos": { "gridPos": {
"h": 8, "h": 5,
"w": 8, "w": 8,
"x": 0, "x": 0,
"y": 12 "y": 12
}, },
"id": 26, "id": 24,
"maxDataPoints": 100,
"options": { "options": {
"legend": { "colorMode": "none",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [ "calcs": [
"lastNotNull" "mean"
], ],
"displayMode": "list", "fields": "",
"placement": "bottom", "values": false
"showLegend": true
}, },
"tooltip": { "showPercentChange": false,
"hideZeros": false, "textMode": "auto",
"mode": "multi", "wideLayout": true
"sort": "none"
}
}, },
"pluginVersion": "12.3.0", "pluginVersion": "12.3.0",
"targets": [ "targets": [
@ -872,15 +845,17 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"expr": "ceil(rate(registry_registry_http_requests_total{instance=\"$instance\"}[5m]))", "editorMode": "code",
"expr": "avg(registry_process_resident_memory_bytes{instance=\"$instance\"})",
"format": "time_series", "format": "time_series",
"intervalFactor": 1, "intervalFactor": 2,
"legendFormat": "{{ handler }}", "legendFormat": "",
"range": true,
"refId": "A" "refId": "A"
} }
], ],
"title": "HTTP Requests", "title": "Resident Memory Usage",
"type": "timeseries" "type": "stat"
}, },
{ {
"datasource": { "datasource": {
@ -1091,6 +1066,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"description": "The HTTP requests",
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "color": {
@ -1114,7 +1090,7 @@
}, },
"insertNulls": false, "insertNulls": false,
"lineInterpolation": "linear", "lineInterpolation": "linear",
"lineWidth": 1, "lineWidth": 3,
"pointSize": 5, "pointSize": 5,
"scaleDistribution": { "scaleDistribution": {
"type": "linear" "type": "linear"
@ -1124,7 +1100,7 @@
"spanNulls": false, "spanNulls": false,
"stacking": { "stacking": {
"group": "A", "group": "A",
"mode": "normal" "mode": "none"
}, },
"thresholdsStyle": { "thresholdsStyle": {
"mode": "off" "mode": "off"
@ -1145,28 +1121,30 @@
} }
] ]
}, },
"unit": "s" "unit": "short"
}, },
"overrides": [] "overrides": []
}, },
"gridPos": { "gridPos": {
"h": 7, "h": 8,
"w": 8, "w": 8,
"x": 0, "x": 0,
"y": 20 "y": 17
}, },
"id": 44, "id": 26,
"options": { "options": {
"legend": { "legend": {
"calcs": [], "calcs": [
"displayMode": "table", "lastNotNull"
"placement": "right", ],
"displayMode": "list",
"placement": "bottom",
"showLegend": true "showLegend": true
}, },
"tooltip": { "tooltip": {
"hideZeros": false, "hideZeros": false,
"mode": "multi", "mode": "multi",
"sort": "desc" "sort": "none"
} }
}, },
"pluginVersion": "12.3.0", "pluginVersion": "12.3.0",
@ -1176,17 +1154,14 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"expr": "increase(registry_registry_storage_action_seconds_sum{instance=\"$instance\"}[2m]) * 1000", "expr": "ceil(rate(registry_registry_http_requests_total{instance=\"$instance\"}[5m]))",
"format": "time_series", "format": "time_series",
"instant": false, "intervalFactor": 1,
"intervalFactor": 2, "legendFormat": "{{ handler }}",
"legendFormat": "{{ action }}", "refId": "A"
"refId": "A",
"step": 10,
"target": ""
} }
], ],
"title": "Registry Action Latency", "title": "HTTP Requests",
"type": "timeseries" "type": "timeseries"
}, },
{ {
@ -1364,16 +1339,59 @@
}, },
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": {
"mode": "palette-classic"
},
"custom": { "custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": { "hideFrom": {
"legend": false, "legend": false,
"tooltip": false, "tooltip": false,
"viz": false "viz": false
}, },
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": { "scaleDistribution": {
"type": "linear" "type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
} }
} },
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
}, },
"overrides": [] "overrides": []
}, },
@ -1381,46 +1399,20 @@
"h": 7, "h": 7,
"w": 8, "w": 8,
"x": 0, "x": 0,
"y": 27 "y": 25
}, },
"id": 2, "id": 44,
"options": { "options": {
"calculate": true,
"calculation": {},
"cellGap": 2,
"cellValues": {},
"color": {
"exponent": 0.5,
"fill": "#b4ff00",
"mode": "scheme",
"reverse": false,
"scale": "exponential",
"scheme": "Oranges",
"steps": 128
},
"exemplars": {
"color": "rgba(255,0,255,0.7)"
},
"filterValues": {
"le": 1e-9
},
"legend": { "legend": {
"show": false "calcs": [],
"displayMode": "table",
"placement": "right",
"showLegend": true
}, },
"rowsFrame": {
"layout": "auto"
},
"showValue": "never",
"tooltip": { "tooltip": {
"mode": "single", "hideZeros": false,
"showColorScale": false, "mode": "multi",
"yHistogram": false "sort": "desc"
},
"yAxis": {
"axisPlacement": "left",
"min": "0",
"reverse": false,
"unit": "short"
} }
}, },
"pluginVersion": "12.3.0", "pluginVersion": "12.3.0",
@ -1430,16 +1422,18 @@
"type": "prometheus", "type": "prometheus",
"uid": "PBFA97CFB590B2093" "uid": "PBFA97CFB590B2093"
}, },
"editorMode": "code", "expr": "increase(registry_registry_storage_action_seconds_sum{instance=\"$instance\"}[2m]) * 1000",
"expr": "rate(registry_http_request_duration_seconds_bucket{handler=\"blob_upload\"}[10m])", "format": "time_series",
"format": "heatmap", "instant": false,
"intervalFactor": 1, "intervalFactor": 2,
"range": true, "legendFormat": "{{ action }}",
"refId": "A" "refId": "A",
"step": 10,
"target": ""
} }
], ],
"title": "Upload HTTP Request Latencies in seconds (blob_upload)", "title": "Registry Action Latency",
"type": "heatmap" "type": "timeseries"
}, },
{ {
"datasource": { "datasource": {
@ -1606,6 +1600,90 @@
], ],
"title": "Catalog HTTP Request Latencies in seconds (catalog)", "title": "Catalog HTTP Request Latencies in seconds (catalog)",
"type": "heatmap" "type": "heatmap"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"fieldConfig": {
"defaults": {
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"scaleDistribution": {
"type": "linear"
}
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 0,
"y": 32
},
"id": 2,
"options": {
"calculate": true,
"calculation": {},
"cellGap": 2,
"cellValues": {},
"color": {
"exponent": 0.5,
"fill": "#b4ff00",
"mode": "scheme",
"reverse": false,
"scale": "exponential",
"scheme": "Oranges",
"steps": 128
},
"exemplars": {
"color": "rgba(255,0,255,0.7)"
},
"filterValues": {
"le": 1e-9
},
"legend": {
"show": false
},
"rowsFrame": {
"layout": "auto"
},
"showValue": "never",
"tooltip": {
"mode": "single",
"showColorScale": false,
"yHistogram": false
},
"yAxis": {
"axisPlacement": "left",
"min": "0",
"reverse": false,
"unit": "short"
}
},
"pluginVersion": "12.3.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "rate(registry_http_request_duration_seconds_bucket{handler=\"blob_upload\"}[10m])",
"format": "heatmap",
"intervalFactor": 1,
"range": true,
"refId": "A"
}
],
"title": "Upload HTTP Request Latencies in seconds (blob_upload)",
"type": "heatmap"
} }
], ],
"preload": false, "preload": false,
@ -1675,12 +1753,12 @@
] ]
}, },
"time": { "time": {
"from": "now-6h", "from": "now-12h",
"to": "now" "to": "now"
}, },
"timepicker": {}, "timepicker": {},
"timezone": "", "timezone": "",
"title": "Docker Registry", "title": "Docker Registry",
"uid": "CoBSgj8iz", "uid": "CoBSgj8iz",
"version": 6 "version": 10
} }

View file

@ -212,13 +212,6 @@ serverFiles:
severity: page severity: page
annotations: annotations:
summary: "High system load: {{ $value }}. Can signal runaway process." summary: "High system load: {{ $value }}. Can signal runaway process."
- alert: DockerRegistryDown
expr: (registry_process_start_time_seconds or on() vector(0)) == 0
for: 10m
labels:
severity: page
annotations:
summary: "Docker registry is down"
- name: Nvidia Tesla T4 GPU - name: Nvidia Tesla T4 GPU
rules: rules:
- alert: HighGPUTemp - alert: HighGPUTemp
@ -294,6 +287,20 @@ serverFiles:
severity: page severity: page
annotations: annotations:
summary: Node {{$labels.instance}} down. summary: Node {{$labels.instance}} down.
- alert: DockerRegistryDown
expr: (registry_process_start_time_seconds or on() vector(0)) == 0
for: 10m
labels:
severity: page
annotations:
summary: "Docker registry is down"
- alert: RegistryLowCacheHitRate
expr: (sum by (job) (rate(registry_registry_storage_cache_total{type="Hit"}[15m]))) / (sum by (job) (rate(registry_registry_storage_cache_total{type="Request"}[15m]))) * 100 < 50
for: 12h
labels:
severity: page
annotations:
summary: "Low registry cache hit rate"
- alert: NodeHighCPUUsage - alert: NodeHighCPUUsage
expr: node_load1{instance!="pve-node-r730"} > 2 expr: node_load1{instance!="pve-node-r730"} > 2
for: 20m for: 20m

Binary file not shown.