6876 lines
165 KiB
JSON
6876 lines
165 KiB
JSON
{
|
|
"annotations": {
|
|
"list": []
|
|
},
|
|
"editable": true,
|
|
"fiscalYearStartMonth": 0,
|
|
"graphTooltip": 1,
|
|
"id": null,
|
|
"links": [],
|
|
"liveNow": false,
|
|
"panels": [
|
|
{
|
|
"id": 1,
|
|
"type": "row",
|
|
"title": "Overview",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "stat",
|
|
"title": "Request rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 1
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_requests_total[$__rate_interval]))",
|
|
"legendFormat": "req/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "stat",
|
|
"title": "5xx / errors rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 1
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_errors_total[$__rate_interval]))",
|
|
"legendFormat": "errors/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "stat",
|
|
"title": "Active exchanges",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 1
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_requests_active)",
|
|
"legendFormat": "active",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "stat",
|
|
"title": "Process RSS",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 1
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_process_rss_bytes",
|
|
"legendFormat": "RSS",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "timeseries",
|
|
"title": "Traffic and responses",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 6
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_requests_total[$__rate_interval]))",
|
|
"legendFormat": "requests/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_requests_completed_total[$__rate_interval]))",
|
|
"legendFormat": "completed/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rate(rust_proxy_errors_total[$__rate_interval]))",
|
|
"legendFormat": "errors/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "sum(rate(rust_proxy_requests_rejected_total[$__rate_interval]))",
|
|
"legendFormat": "rejected/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "timeseries",
|
|
"title": "Response status classes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 6
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (class) (rate(rust_proxy_responses_total[$__rate_interval]))",
|
|
"legendFormat": "{{class}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 112,
|
|
"type": "stat",
|
|
"title": "RustProxy build version",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 13
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "none",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "name",
|
|
"colorMode": "value",
|
|
"graphMode": "none",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "max by (version) (rust_proxy_build_info)",
|
|
"legendFormat": "{{version}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Value from the exporter build_info version label, one entry for each deployed version."
|
|
},
|
|
{
|
|
"id": 113,
|
|
"type": "stat",
|
|
"title": "Youngest process uptime",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 13
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "min(rust_proxy_uptime_seconds)",
|
|
"legendFormat": "uptime",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Minimum process uptime across scraped RustProxy instances; identifies a recent restart."
|
|
},
|
|
{
|
|
"id": 114,
|
|
"type": "gauge",
|
|
"title": "Request capacity in use",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 13
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "yellow",
|
|
"value": 80
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 95
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * (sum(rust_proxy_request_capacity) - sum(rust_proxy_request_permits_available)) / clamp_min(sum(rust_proxy_request_capacity), 1)",
|
|
"legendFormat": "in use",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Percentage of configured admitted-exchange permits currently in use; not TCP connection capacity.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 115,
|
|
"type": "stat",
|
|
"title": "Restart required",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 13
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "none",
|
|
"custom": {},
|
|
"mappings": [
|
|
{
|
|
"type": "value",
|
|
"options": {
|
|
"0": {
|
|
"text": "No",
|
|
"color": "green"
|
|
},
|
|
"1": {
|
|
"text": "Yes",
|
|
"color": "red"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 1
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "value",
|
|
"colorMode": "value",
|
|
"graphMode": "none",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "max(rust_proxy_restart_required)",
|
|
"legendFormat": "required",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "1 if a running instance requires restart for listener or exporter changes."
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "row",
|
|
"title": "Vhosts and backends",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 18
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 9,
|
|
"type": "timeseries",
|
|
"title": "Requests by vhost",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 19
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (vhost) (rate(rust_proxy_vhost_requests_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 10,
|
|
"type": "timeseries",
|
|
"title": "Vhost p95 exchange latency",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 19
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "histogram_quantile(0.95, sum by (le,vhost) (rate(rust_proxy_vhost_exchange_duration_seconds_bucket[$__rate_interval])))",
|
|
"legendFormat": "{{vhost}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "timeseries",
|
|
"title": "Backend health",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 26
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bool",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_up",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "timeseries",
|
|
"title": "Backend header latency",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 26
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_latency_seconds",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 13,
|
|
"type": "timeseries",
|
|
"title": "Backend active exchanges",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 26
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_active_exchanges",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 14,
|
|
"type": "timeseries",
|
|
"title": "Backend error rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 33
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_errors_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 15,
|
|
"type": "timeseries",
|
|
"title": "Backend traffic estimate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 33
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_traffic_bytes_per_second",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 83,
|
|
"type": "timeseries",
|
|
"title": "Backend client generation",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 40
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_upstream_client_generation",
|
|
"legendFormat": "{{vhost}} / {{backend}} generation",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_backend_upstream_client_generation_requests",
|
|
"legendFormat": "{{vhost}} / {{backend}} requests",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Current reusable upstream-client generation and the requests served by that generation."
|
|
},
|
|
{
|
|
"id": 84,
|
|
"type": "timeseries",
|
|
"title": "Backend client generation age",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 40
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_backend_upstream_client_generation_age_seconds",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Age of the currently active reusable upstream-client generation."
|
|
},
|
|
{
|
|
"id": 85,
|
|
"type": "timeseries",
|
|
"title": "Backend retries and rotations",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 40
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_retry_attempts_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}} retry attempts",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_retry_successes_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}} retry successes",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_upstream_client_rotations_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}} client rotations",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Backend retry attempts/successes and reusable upstream-client rotations per second."
|
|
},
|
|
{
|
|
"id": 116,
|
|
"type": "timeseries",
|
|
"title": "Backend queue and capacity rejections",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 47
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_queue_timeouts_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}} queue timeout",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (vhost,backend) (rate(rust_proxy_backend_capacity_rejections_total[$__rate_interval]))",
|
|
"legendFormat": "{{vhost}} / {{backend}} capacity rejection",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Failed backend acquisitions per second. Gauges or status flags are not mixed with event rates."
|
|
},
|
|
{
|
|
"id": 117,
|
|
"type": "timeseries",
|
|
"title": "Backend concurrency utilization",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 47
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
},
|
|
"min": 0,
|
|
"max": 100
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "(100 * rust_proxy_backend_active_exchanges / clamp_min(rust_proxy_backend_max_concurrent_requests,1)) and on(vhost,backend) (rust_proxy_backend_max_concurrent_requests > 0)",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "In-use backend exchanges divided by a positive per-backend concurrency limit; unlimited backends are omitted."
|
|
},
|
|
{
|
|
"id": 58,
|
|
"type": "row",
|
|
"title": "Docker vhosts",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 54
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 59,
|
|
"type": "stat",
|
|
"title": "Docker agents configured",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 55
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_agents_configured",
|
|
"legendFormat": "value",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 60,
|
|
"type": "stat",
|
|
"title": "Docker vhosts configured",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 55
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_vhosts_configured",
|
|
"legendFormat": "value",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 61,
|
|
"type": "stat",
|
|
"title": "Docker vhosts enabled",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 55
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_docker_vhost_enabled{agent=~\"$docker_agent\",service=~\"$docker_service\"})",
|
|
"legendFormat": "value",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 62,
|
|
"type": "stat",
|
|
"title": "Docker backend pools ready",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 55
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_docker_backend_pool_ready{agent=~\"$docker_agent\",service=~\"$docker_service\"})",
|
|
"legendFormat": "value",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 63,
|
|
"type": "timeseries",
|
|
"title": "Docker request rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 60
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service) (rate(rust_proxy_docker_vhost_requests_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 64,
|
|
"type": "timeseries",
|
|
"title": "Docker errors and rejects",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 60
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service) (rate(rust_proxy_docker_vhost_errors_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} errors",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (agent,service) (rate(rust_proxy_docker_vhost_rejected_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} rejected",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 65,
|
|
"type": "timeseries",
|
|
"title": "Docker p95 exchange latency",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 60
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "histogram_quantile(0.95, sum by (le,agent,service) (rate(rust_proxy_docker_vhost_exchange_duration_seconds_bucket{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval])))",
|
|
"legendFormat": "{{agent}} / {{service}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 66,
|
|
"type": "timeseries",
|
|
"title": "Docker backend health",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 67
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bool",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_backend_up{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 67,
|
|
"type": "timeseries",
|
|
"title": "Docker backend EWMA latency",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 67
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_backend_ewma_latency_seconds{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 68,
|
|
"type": "timeseries",
|
|
"title": "Docker backend active exchanges",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 67
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_backend_active_exchanges{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 69,
|
|
"type": "timeseries",
|
|
"title": "Docker backend error rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 74
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_errors_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 70,
|
|
"type": "timeseries",
|
|
"title": "Docker backend traffic",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 74
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_bytes_in_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} in",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_bytes_out_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} out",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 71,
|
|
"type": "timeseries",
|
|
"title": "Docker backend probe age",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 74
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "time() - rust_proxy_docker_backend_last_probe_timestamp_seconds{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 86,
|
|
"type": "timeseries",
|
|
"title": "Docker client generation",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 81
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_backend_upstream_client_generation{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} generation",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_docker_backend_upstream_client_generation_requests{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} requests",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Current reusable upstream-client generation and requests for Docker-discovered backends."
|
|
},
|
|
{
|
|
"id": 87,
|
|
"type": "timeseries",
|
|
"title": "Docker client generation age",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 81
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_docker_backend_upstream_client_generation_age_seconds{agent=~\"$docker_agent\",service=~\"$docker_service\"}",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Age of the active reusable upstream-client generation for Docker-discovered backends."
|
|
},
|
|
{
|
|
"id": 88,
|
|
"type": "timeseries",
|
|
"title": "Docker retries and rotations",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 81
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_retry_attempts_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} retry attempts",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_retry_successes_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} retry successes",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_upstream_client_rotations_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} client rotations",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Retry attempts/successes and reusable upstream-client rotations for Docker-discovered backends."
|
|
},
|
|
{
|
|
"id": 118,
|
|
"type": "timeseries",
|
|
"title": "Docker backend queue and capacity rejections",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 88
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_queue_timeouts_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} queue timeout",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (agent,service,backend) (rate(rust_proxy_docker_backend_capacity_rejections_total{agent=~\"$docker_agent\",service=~\"$docker_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}} capacity rejection",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Docker backend acquisition failures per second; respects Docker agent and service filters."
|
|
},
|
|
{
|
|
"id": 119,
|
|
"type": "timeseries",
|
|
"title": "Docker backend concurrency utilization",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 88
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
},
|
|
"min": 0,
|
|
"max": 100
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "(100 * rust_proxy_docker_backend_active_exchanges{agent=~\"$docker_agent\",service=~\"$docker_service\"} / clamp_min(rust_proxy_docker_backend_max_concurrent_requests{agent=~\"$docker_agent\",service=~\"$docker_service\"},1)) and on(agent,service,vhost,backend) (rust_proxy_docker_backend_max_concurrent_requests{agent=~\"$docker_agent\",service=~\"$docker_service\"} > 0)",
|
|
"legendFormat": "{{agent}} / {{service}} / {{backend}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Percentage of configured positive Docker backend concurrency limit that is in use."
|
|
},
|
|
{
|
|
"id": 16,
|
|
"type": "row",
|
|
"title": "Cache",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 95
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 17,
|
|
"type": "stat",
|
|
"title": "Hot cache RAM",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 96
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_resident_bytes",
|
|
"legendFormat": "hot",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 18,
|
|
"type": "stat",
|
|
"title": "Transient cache RAM",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 96
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_transient_bytes",
|
|
"legendFormat": "transient",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 19,
|
|
"type": "stat",
|
|
"title": "Cold cache disk",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 96
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_cold_bytes",
|
|
"legendFormat": "cold",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 20,
|
|
"type": "stat",
|
|
"title": "Hot objects",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 96
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_entries",
|
|
"legendFormat": "hot objects",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 21,
|
|
"type": "timeseries",
|
|
"title": "Cache decision rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 101
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rate(rust_proxy_cache_hits_total[$__rate_interval])",
|
|
"legendFormat": "HIT/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rate(rust_proxy_cache_misses_total[$__rate_interval])",
|
|
"legendFormat": "MISS/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rate(rust_proxy_cache_bypasses_total[$__rate_interval])",
|
|
"legendFormat": "BYPASS/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rate(rust_proxy_cache_rejected_fills_total[$__rate_interval])",
|
|
"legendFormat": "rejected fills/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 22,
|
|
"type": "timeseries",
|
|
"title": "Transient cache breakdown",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 101
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_fill_bytes_active",
|
|
"legendFormat": "fill",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_cache_cold_queue_bytes",
|
|
"legendFormat": "cold queue",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rust_proxy_cache_cold_write_bytes_active",
|
|
"legendFormat": "cold write",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rust_proxy_cache_cold_read_bytes_active",
|
|
"legendFormat": "cold read",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 23,
|
|
"type": "timeseries",
|
|
"title": "Cold tier movement",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 108
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rate(rust_proxy_cache_cold_hits_total[$__rate_interval])",
|
|
"legendFormat": "cold hits/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rate(rust_proxy_cache_cold_promotions_total[$__rate_interval])",
|
|
"legendFormat": "cold->hot/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rate(rust_proxy_cache_hot_demotions_total[$__rate_interval])",
|
|
"legendFormat": "hot->cold/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rate(rust_proxy_cache_cold_evictions_total[$__rate_interval])",
|
|
"legendFormat": "cold evictions/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "E",
|
|
"expr": "rate(rust_proxy_cache_cold_errors_total[$__rate_interval])",
|
|
"legendFormat": "cold errors/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 24,
|
|
"type": "timeseries",
|
|
"title": "Cache domain hit ratio",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 108
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percentunit",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cache_domain_hit_ratio",
|
|
"legendFormat": "{{vhost}} / {{domain}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 120,
|
|
"type": "gauge",
|
|
"title": "Hot cache usage",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 115
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "yellow",
|
|
"value": 80
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 95
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rust_proxy_cache_resident_bytes) / clamp_min(sum(rust_proxy_cache_hot_limit_bytes),1)",
|
|
"legendFormat": "used",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Usage relative to configured limit: rust_proxy_cache_resident_bytes / rust_proxy_cache_hot_limit_bytes.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 121,
|
|
"type": "gauge",
|
|
"title": "Transient RAM usage",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 115
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "yellow",
|
|
"value": 80
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 95
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rust_proxy_cache_transient_bytes) / clamp_min(sum(rust_proxy_cache_transient_limit_bytes),1)",
|
|
"legendFormat": "used",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Usage relative to configured limit: rust_proxy_cache_transient_bytes / rust_proxy_cache_transient_limit_bytes.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 122,
|
|
"type": "gauge",
|
|
"title": "Cold cache usage",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 115
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "yellow",
|
|
"value": 80
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 95
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rust_proxy_cache_cold_bytes) / clamp_min(sum(rust_proxy_cache_cold_limit_bytes),1)",
|
|
"legendFormat": "used",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Usage relative to configured limit: rust_proxy_cache_cold_bytes / rust_proxy_cache_cold_limit_bytes.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 123,
|
|
"type": "gauge",
|
|
"title": "Cold queue usage",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 115
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "yellow",
|
|
"value": 80
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 95
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rust_proxy_cache_cold_queue_bytes) / clamp_min(sum(rust_proxy_cache_cold_queue_limit_bytes),1)",
|
|
"legendFormat": "used",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Usage relative to configured limit: rust_proxy_cache_cold_queue_bytes / rust_proxy_cache_cold_queue_limit_bytes.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 124,
|
|
"type": "timeseries",
|
|
"title": "Cache pressure and contention",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 120
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_cache_memory_pressure_rejections_total[$__rate_interval]))",
|
|
"legendFormat": "memory pressure rejects/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_cache_hot_eviction_limited_total[$__rate_interval]))",
|
|
"legendFormat": "hot eviction limited/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rate(rust_proxy_cache_cold_queue_dropped_total[$__rate_interval]))",
|
|
"legendFormat": "cold queue drops/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "sum(rate(rust_proxy_cache_collapse_timeouts_total[$__rate_interval]))",
|
|
"legendFormat": "collapsed fill timeouts/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Cache pressure, eviction limitations, asynchronous cold-write queue losses and collapsed-fill timeouts (events per second)."
|
|
},
|
|
{
|
|
"id": 125,
|
|
"type": "timeseries",
|
|
"title": "Cache fill and proactive activity",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 120
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_cache_collapsed_fills_total[$__rate_interval]))",
|
|
"legendFormat": "collapsed fills/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_cache_proactive_scheduled_total[$__rate_interval]))",
|
|
"legendFormat": "proactive scheduled/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rate(rust_proxy_cache_proactive_started_total[$__rate_interval]))",
|
|
"legendFormat": "proactive started/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "sum(rate(rust_proxy_cache_proactive_skipped_total[$__rate_interval]))",
|
|
"legendFormat": "proactive skipped/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Rate of cache fill collapsing and proactive refresh scheduling, starts and skips."
|
|
},
|
|
{
|
|
"id": 25,
|
|
"type": "row",
|
|
"title": "Process and host diagnostics",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 127
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 26,
|
|
"type": "timeseries",
|
|
"title": "Process memory breakdown",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 8,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 128
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_process_rss_bytes",
|
|
"legendFormat": "RSS total",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_process_rss_anon_bytes",
|
|
"legendFormat": "RSS anon",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rust_proxy_process_rss_file_bytes",
|
|
"legendFormat": "RSS file",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rust_proxy_process_rss_shmem_bytes",
|
|
"legendFormat": "RSS shmem",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "E",
|
|
"expr": "rust_proxy_process_data_bytes",
|
|
"legendFormat": "VmData",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "F",
|
|
"expr": "rust_proxy_process_swap_bytes",
|
|
"legendFormat": "swap",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 27,
|
|
"type": "timeseries",
|
|
"title": "Cgroup memory",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 8,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 128
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bytes",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_cgroup_memory_current_bytes",
|
|
"legendFormat": "current",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_cgroup_memory_max_bytes",
|
|
"legendFormat": "max",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 28,
|
|
"type": "timeseries",
|
|
"title": "CPU",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 136
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_process_cpu_percent",
|
|
"legendFormat": "process",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_system_cpu_percent",
|
|
"legendFormat": "system",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 29,
|
|
"type": "timeseries",
|
|
"title": "Load average",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 136
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_system_load1",
|
|
"legendFormat": "load1",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_system_load5",
|
|
"legendFormat": "load5",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rust_proxy_system_load15",
|
|
"legendFormat": "load15",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 30,
|
|
"type": "timeseries",
|
|
"title": "Process resources",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 136
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_process_open_fds",
|
|
"legendFormat": "open FDs",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_process_threads",
|
|
"legendFormat": "threads",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 31,
|
|
"type": "timeseries",
|
|
"title": "Network throughput",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 143
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_system_network_rx_bytes_per_second",
|
|
"legendFormat": "RX",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_system_network_tx_bytes_per_second",
|
|
"legendFormat": "TX",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 32,
|
|
"type": "timeseries",
|
|
"title": "Process disk I/O",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 143
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "clamp_min(deriv(rust_proxy_process_read_bytes[$__rate_interval]), 0)",
|
|
"legendFormat": "read",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "clamp_min(deriv(rust_proxy_process_write_bytes[$__rate_interval]), 0)",
|
|
"legendFormat": "write",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Approximate bytes/second from cumulative process I/O gauges sampled by Linux; negative deltas are clamped to zero."
|
|
},
|
|
{
|
|
"id": 33,
|
|
"type": "row",
|
|
"title": "Protocols",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 150
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 34,
|
|
"type": "timeseries",
|
|
"title": "HTTP protocol requests",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 151
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rate(rust_proxy_http1_requests_total[$__rate_interval])",
|
|
"legendFormat": "HTTP/1.1",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rate(rust_proxy_http2_requests_total[$__rate_interval])",
|
|
"legendFormat": "HTTP/2",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rate(rust_proxy_http3_requests_total[$__rate_interval])",
|
|
"legendFormat": "HTTP/3",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 35,
|
|
"type": "timeseries",
|
|
"title": "Connections",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 151
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_connections_active",
|
|
"legendFormat": "all active",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_http3_active_connections",
|
|
"legendFormat": "H3 active",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 36,
|
|
"type": "timeseries",
|
|
"title": "TLS / H3 rejects",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 151
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rate(rust_proxy_tls_handshake_errors_total[$__rate_interval])",
|
|
"legendFormat": "TLS handshake errors/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rate(rust_proxy_http3_rejected_connections_total[$__rate_interval])",
|
|
"legendFormat": "H3 rejects/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 37,
|
|
"type": "timeseries",
|
|
"title": "Active WebSocket tunnels",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 158
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_websocket_tunnels_active)",
|
|
"legendFormat": "active",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Open HTTP/1.1, HTTP/2 and HTTP/3 WebSocket transports (gauge), not tunnel creation rate."
|
|
},
|
|
{
|
|
"id": 38,
|
|
"type": "timeseries",
|
|
"title": "Compression",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 158
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rate(rust_proxy_compression_gzip_total[$__rate_interval])",
|
|
"legendFormat": "gzip/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rate(rust_proxy_compression_br_total[$__rate_interval])",
|
|
"legendFormat": "br/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rate(rust_proxy_compression_zstd_total[$__rate_interval])",
|
|
"legendFormat": "zstd/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rate(rust_proxy_compression_deflate_total[$__rate_interval])",
|
|
"legendFormat": "deflate/s",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 126,
|
|
"type": "timeseries",
|
|
"title": "WebSocket tunnel events",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 165
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_websocket_tunnels_total[$__rate_interval]))",
|
|
"legendFormat": "opened/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_websocket_errors_total[$__rate_interval]))",
|
|
"legendFormat": "transport errors/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rate(rust_proxy_websocket_handshake_errors_total[$__rate_interval]))",
|
|
"legendFormat": "handshake errors/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Rates for established WebSocket tunnels, transport errors and rejected upgrade handshakes."
|
|
},
|
|
{
|
|
"id": 127,
|
|
"type": "timeseries",
|
|
"title": "Active WebSockets by HTTP version",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 165
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_websocket_h1_tunnels_active)",
|
|
"legendFormat": "HTTP/1.1",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rust_proxy_websocket_h2_rfc8441_tunnels_active)",
|
|
"legendFormat": "HTTP/2 RFC 8441",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rust_proxy_websocket_h3_rfc9220_tunnels_active)",
|
|
"legendFormat": "HTTP/3 RFC 9220",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Currently open WebSocket tunnels per public transport protocol, all gauges."
|
|
},
|
|
{
|
|
"id": 39,
|
|
"type": "row",
|
|
"title": "Layer-4 streams and logging",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 172
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 40,
|
|
"type": "timeseries",
|
|
"title": "Active stream sessions",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 173
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (stream, protocol) (rust_proxy_stream_active)",
|
|
"legendFormat": "{{stream}} ({{protocol}})",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Active Layer-4 TCP/UDP sessions by stream and protocol (gauge)."
|
|
},
|
|
{
|
|
"id": 41,
|
|
"type": "timeseries",
|
|
"title": "Stream throughput",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 173
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (stream) (rate(rust_proxy_stream_bytes_in_total[$__rate_interval]))",
|
|
"legendFormat": "{{stream}} in",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (stream) (rate(rust_proxy_stream_bytes_out_total[$__rate_interval]))",
|
|
"legendFormat": "{{stream}} out",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 128,
|
|
"type": "timeseries",
|
|
"title": "Stream session event rates",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 180
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (stream,protocol) (rate(rust_proxy_stream_sessions_total[$__rate_interval]))",
|
|
"legendFormat": "{{stream}} ({{protocol}}) started",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum by (stream,protocol) (rate(rust_proxy_stream_errors_total[$__rate_interval]))",
|
|
"legendFormat": "{{stream}} ({{protocol}}) errors",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum by (stream,protocol) (rate(rust_proxy_stream_rejected_total[$__rate_interval]))",
|
|
"legendFormat": "{{stream}} ({{protocol}}) rejected",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Layer-4 TCP/UDP started, failed and rejected sessions per second."
|
|
},
|
|
{
|
|
"id": 129,
|
|
"type": "timeseries",
|
|
"title": "Stream backend health state",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 180
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
},
|
|
"mappings": [
|
|
{
|
|
"type": "value",
|
|
"options": {
|
|
"0": {
|
|
"text": "Unverified",
|
|
"color": "gray"
|
|
},
|
|
"1": {
|
|
"text": "Checking",
|
|
"color": "yellow"
|
|
},
|
|
"2": {
|
|
"text": "Healthy",
|
|
"color": "green"
|
|
},
|
|
"3": {
|
|
"text": "Unhealthy",
|
|
"color": "red"
|
|
},
|
|
"4": {
|
|
"text": "Disabled",
|
|
"color": "gray"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"min": 0,
|
|
"max": 4,
|
|
"decimals": 0
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_stream_backend_health_state",
|
|
"legendFormat": "{{stream}} ({{protocol}}) / {{backend}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Backend health state codes: 0 unverified, 1 checking, 2 healthy, 3 unhealthy, 4 disabled. Available only for configured active stream backends."
|
|
},
|
|
{
|
|
"id": 130,
|
|
"type": "timeseries",
|
|
"title": "Stream capacity utilization",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 180
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
},
|
|
"min": 0,
|
|
"max": 100
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * rust_proxy_stream_active / clamp_min(rust_proxy_stream_max_connections,1)",
|
|
"legendFormat": "{{stream}} ({{protocol}})",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Active stream sessions relative to its configured maximum connection/session capacity."
|
|
},
|
|
{
|
|
"id": 42,
|
|
"type": "timeseries",
|
|
"title": "Structured log queue capacity",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 187
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_log_sink_queue_capacity)",
|
|
"legendFormat": "queue capacity",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Configured number of log sink queue slots (gauge); log delivery and dropped event rates are shown separately."
|
|
},
|
|
{
|
|
"id": 43,
|
|
"type": "timeseries",
|
|
"title": "Admin request rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 187
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_admin_requests_total[$__rate_interval]))",
|
|
"legendFormat": "admin requests/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Requests to the control plane per second. Request permits and required restarts are shown separately."
|
|
},
|
|
{
|
|
"id": 131,
|
|
"type": "timeseries",
|
|
"title": "Structured log sink event rates",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 194
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ops",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_log_sink_sent_total[$__rate_interval]))",
|
|
"legendFormat": "delivered/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_log_sink_queue_dropped_total[$__rate_interval]))",
|
|
"legendFormat": "dropped/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rate(rust_proxy_log_sink_errors_total[$__rate_interval]))",
|
|
"legendFormat": "delivery errors/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Log delivery, queue overflow and sink failure event rates per second."
|
|
},
|
|
{
|
|
"id": 132,
|
|
"type": "timeseries",
|
|
"title": "Request permits and limits",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 194
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_request_capacity)",
|
|
"legendFormat": "capacity",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rust_proxy_request_permits_available)",
|
|
"legendFormat": "available",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rust_proxy_request_capacity - rust_proxy_request_permits_available)",
|
|
"legendFormat": "in use",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Concurrent request capacity, available permits and in-use permits across scraped instances (gauges)."
|
|
},
|
|
{
|
|
"id": 44,
|
|
"type": "row",
|
|
"title": "Inventory",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 201
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 45,
|
|
"type": "timeseries",
|
|
"title": "Configured objects",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 202
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_vhosts_configured",
|
|
"legendFormat": "vhosts",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "rust_proxy_redirect_hosts_configured",
|
|
"legendFormat": "redirects",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "rust_proxy_not_found_hosts_configured",
|
|
"legendFormat": "404 hosts",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "D",
|
|
"expr": "rust_proxy_stream_hosts_configured",
|
|
"legendFormat": "streams",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "E",
|
|
"expr": "rust_proxy_certificates_configured",
|
|
"legendFormat": "certificates",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "F",
|
|
"expr": "rust_proxy_acl_profiles_configured",
|
|
"legendFormat": "ACL profiles",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "G",
|
|
"expr": "rust_proxy_web_services_configured",
|
|
"legendFormat": "web services",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 46,
|
|
"type": "timeseries",
|
|
"title": "Listener protocols",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 202
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bool",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_listener_protocol_enabled",
|
|
"legendFormat": "{{address}} / {{protocol}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 47,
|
|
"type": "row",
|
|
"title": "Certificates and GeoIP",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 209
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "s",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"id": 48,
|
|
"type": "timeseries",
|
|
"title": "Certificate expiry remaining",
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 210
|
|
},
|
|
"description": "Seconds until the observed certificate notAfter timestamp.",
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_certificate_renewal_not_after_timestamp_seconds - time()",
|
|
"legendFormat": "{{certificate}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"id": 49,
|
|
"type": "timeseries",
|
|
"title": "Certificate renewal failures",
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 210
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_certificate_renewal_failures",
|
|
"legendFormat": "{{certificate}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 50,
|
|
"type": "stat",
|
|
"title": "GeoIP loaded",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 210
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "bool",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_geoip_loaded",
|
|
"legendFormat": "loaded",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 217
|
|
},
|
|
"id": 51,
|
|
"panels": [],
|
|
"title": "Deep backend and certificate diagnostics",
|
|
"type": "row"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"description": "Smoothed backend latency maintained by the pool.",
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": {
|
|
"mode": "palette-classic"
|
|
},
|
|
"custom": {
|
|
"axisCenteredZero": false,
|
|
"axisColorMode": "text",
|
|
"axisLabel": "",
|
|
"axisPlacement": "auto",
|
|
"barAlignment": 0,
|
|
"drawStyle": "line",
|
|
"fillOpacity": 10,
|
|
"gradientMode": "none",
|
|
"hideFrom": {
|
|
"legend": false,
|
|
"tooltip": false,
|
|
"viz": false
|
|
},
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"pointSize": 5,
|
|
"scaleDistribution": {
|
|
"type": "linear"
|
|
},
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"stacking": {
|
|
"group": "A",
|
|
"mode": "none"
|
|
},
|
|
"thresholdsStyle": {
|
|
"mode": "off"
|
|
}
|
|
},
|
|
"mappings": [],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 80
|
|
}
|
|
]
|
|
},
|
|
"unit": "s"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 218
|
|
},
|
|
"id": 52,
|
|
"options": {
|
|
"legend": {
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"showLegend": true
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_backend_ewma_latency_seconds",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true,
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"title": "Backend EWMA latency",
|
|
"type": "timeseries"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"description": "Passive and consecutive health failure counters/gauges.",
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": {
|
|
"mode": "palette-classic"
|
|
},
|
|
"custom": {
|
|
"axisCenteredZero": false,
|
|
"axisColorMode": "text",
|
|
"axisLabel": "",
|
|
"axisPlacement": "auto",
|
|
"barAlignment": 0,
|
|
"drawStyle": "line",
|
|
"fillOpacity": 10,
|
|
"gradientMode": "none",
|
|
"hideFrom": {
|
|
"legend": false,
|
|
"tooltip": false,
|
|
"viz": false
|
|
},
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"pointSize": 5,
|
|
"scaleDistribution": {
|
|
"type": "linear"
|
|
},
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"stacking": {
|
|
"group": "A",
|
|
"mode": "none"
|
|
},
|
|
"thresholdsStyle": {
|
|
"mode": "off"
|
|
}
|
|
},
|
|
"mappings": [],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 80
|
|
}
|
|
]
|
|
},
|
|
"unit": "short"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 218
|
|
},
|
|
"id": 53,
|
|
"options": {
|
|
"legend": {
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"showLegend": true
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_backend_passive_failures",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true,
|
|
"refId": "A"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_backend_consecutive_failures",
|
|
"legendFormat": "consecutive {{vhost}} / {{backend}}",
|
|
"range": true,
|
|
"refId": "B"
|
|
}
|
|
],
|
|
"title": "Backend passive failures",
|
|
"type": "timeseries"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"description": "Seconds since the most recent recorded backend health probe.",
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": {
|
|
"mode": "palette-classic"
|
|
},
|
|
"custom": {
|
|
"axisCenteredZero": false,
|
|
"axisColorMode": "text",
|
|
"axisLabel": "",
|
|
"axisPlacement": "auto",
|
|
"barAlignment": 0,
|
|
"drawStyle": "line",
|
|
"fillOpacity": 10,
|
|
"gradientMode": "none",
|
|
"hideFrom": {
|
|
"legend": false,
|
|
"tooltip": false,
|
|
"viz": false
|
|
},
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"pointSize": 5,
|
|
"scaleDistribution": {
|
|
"type": "linear"
|
|
},
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"stacking": {
|
|
"group": "A",
|
|
"mode": "none"
|
|
},
|
|
"thresholdsStyle": {
|
|
"mode": "off"
|
|
}
|
|
},
|
|
"mappings": [],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 80
|
|
}
|
|
]
|
|
},
|
|
"unit": "s"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 218
|
|
},
|
|
"id": 54,
|
|
"options": {
|
|
"legend": {
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"showLegend": true
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "time() - rust_proxy_backend_last_probe_timestamp_seconds",
|
|
"legendFormat": "{{vhost}} / {{backend}}",
|
|
"range": true,
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"title": "Backend probe age",
|
|
"type": "timeseries"
|
|
},
|
|
{
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 225
|
|
},
|
|
"id": 55,
|
|
"panels": [],
|
|
"title": "Renewal scheduler details",
|
|
"type": "row"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"description": "Time until next renewal check and time since last check.",
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": {
|
|
"mode": "palette-classic"
|
|
},
|
|
"custom": {
|
|
"axisCenteredZero": false,
|
|
"axisColorMode": "text",
|
|
"axisLabel": "",
|
|
"axisPlacement": "auto",
|
|
"barAlignment": 0,
|
|
"drawStyle": "line",
|
|
"fillOpacity": 10,
|
|
"gradientMode": "none",
|
|
"hideFrom": {
|
|
"legend": false,
|
|
"tooltip": false,
|
|
"viz": false
|
|
},
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"pointSize": 5,
|
|
"scaleDistribution": {
|
|
"type": "linear"
|
|
},
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"stacking": {
|
|
"group": "A",
|
|
"mode": "none"
|
|
},
|
|
"thresholdsStyle": {
|
|
"mode": "off"
|
|
}
|
|
},
|
|
"mappings": [],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 80
|
|
}
|
|
]
|
|
},
|
|
"unit": "s"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 226
|
|
},
|
|
"id": 56,
|
|
"options": {
|
|
"legend": {
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"showLegend": true
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_certificate_renewal_next_check_timestamp_seconds - time()",
|
|
"legendFormat": "next check {{certificate}}",
|
|
"range": true,
|
|
"refId": "A"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "time() - rust_proxy_certificate_renewal_last_checked_timestamp_seconds",
|
|
"legendFormat": "since check {{certificate}}",
|
|
"range": true,
|
|
"refId": "B"
|
|
}
|
|
],
|
|
"title": "Certificate renewal schedule",
|
|
"type": "timeseries"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"description": "Latest bounded renewal status and configured auto-renew switch.",
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"color": {
|
|
"mode": "palette-classic"
|
|
},
|
|
"custom": {
|
|
"axisCenteredZero": false,
|
|
"axisColorMode": "text",
|
|
"axisLabel": "",
|
|
"axisPlacement": "auto",
|
|
"barAlignment": 0,
|
|
"drawStyle": "line",
|
|
"fillOpacity": 10,
|
|
"gradientMode": "none",
|
|
"hideFrom": {
|
|
"legend": false,
|
|
"tooltip": false,
|
|
"viz": false
|
|
},
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"pointSize": 5,
|
|
"scaleDistribution": {
|
|
"type": "linear"
|
|
},
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"stacking": {
|
|
"group": "A",
|
|
"mode": "none"
|
|
},
|
|
"thresholdsStyle": {
|
|
"mode": "off"
|
|
}
|
|
},
|
|
"mappings": [],
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{
|
|
"color": "green",
|
|
"value": null
|
|
},
|
|
{
|
|
"color": "red",
|
|
"value": 80
|
|
}
|
|
]
|
|
},
|
|
"unit": "short"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 226
|
|
},
|
|
"id": 57,
|
|
"options": {
|
|
"legend": {
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"showLegend": true
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_certificate_renewal_status_info",
|
|
"legendFormat": "{{certificate}} / {{status}}",
|
|
"range": true,
|
|
"refId": "A"
|
|
},
|
|
{
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"editorMode": "code",
|
|
"expr": "rust_proxy_certificate_auto_renew_enabled",
|
|
"legendFormat": "auto renew {{certificate}}",
|
|
"range": true,
|
|
"refId": "B"
|
|
}
|
|
],
|
|
"title": "Certificate renewal status",
|
|
"type": "timeseries"
|
|
},
|
|
{
|
|
"id": 72,
|
|
"type": "row",
|
|
"title": "Traffic analytics and Web Server",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 233
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 73,
|
|
"type": "stat",
|
|
"title": "Web Server request rate",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 234
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_traffic_source_requests_total{vhost=~\"$traffic_vhost\",source=\"web_server\"}[$__rate_interval]))",
|
|
"legendFormat": "web server",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 74,
|
|
"type": "stat",
|
|
"title": "Traffic samples dropped",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 234
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "rust_proxy_traffic_queue_dropped_total",
|
|
"legendFormat": "dropped",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 75,
|
|
"type": "bargauge",
|
|
"title": "Top countries",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 12,
|
|
"y": 234
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"min": 0,
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"orientation": "horizontal",
|
|
"displayMode": "basic",
|
|
"showUnfilled": true,
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (country) (rust_proxy_traffic_country_requests{vhost=~\"$traffic_vhost\"})",
|
|
"legendFormat": "{{country}}",
|
|
"range": false,
|
|
"instant": true
|
|
}
|
|
],
|
|
"description": "Bounded Traffic country analytics. Requires country capture in Settings -> Logging; verified Cloudflare uses trusted CF-IPCountry with GeoIP fallback."
|
|
},
|
|
{
|
|
"id": 76,
|
|
"type": "bargauge",
|
|
"title": "User-Agent families",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 6,
|
|
"x": 18,
|
|
"y": 234
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"min": 0,
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"orientation": "horizontal",
|
|
"displayMode": "basic",
|
|
"showUnfilled": true,
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (family) (rust_proxy_traffic_user_agent_family_requests_total{vhost=~\"$traffic_vhost\"})",
|
|
"legendFormat": "{{family}}",
|
|
"range": false,
|
|
"instant": true
|
|
}
|
|
],
|
|
"description": "Fixed-cardinality User-Agent families. Full raw User-Agent values are intentionally not exported to Prometheus."
|
|
},
|
|
{
|
|
"id": 77,
|
|
"type": "timeseries",
|
|
"title": "Requests by serving source",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 241
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (source) (rate(rust_proxy_traffic_source_requests_total{vhost=~\"$traffic_vhost\"}[$__rate_interval]))",
|
|
"legendFormat": "{{source}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 78,
|
|
"type": "timeseries",
|
|
"title": "Requests by HTTP method",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 241
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (method) (rate(rust_proxy_traffic_method_requests_total{vhost=~\"$traffic_vhost\"}[$__rate_interval]))",
|
|
"legendFormat": "{{method}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 79,
|
|
"type": "timeseries",
|
|
"title": "Traffic status classes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 248
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (class) (rate(rust_proxy_traffic_status_class_requests_total{vhost=~\"$traffic_vhost\"}[$__rate_interval]))",
|
|
"legendFormat": "{{class}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 80,
|
|
"type": "timeseries",
|
|
"title": "Traffic cache outcomes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 248
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "linear",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 10,
|
|
"showPoints": "never",
|
|
"spanNulls": false,
|
|
"axisPlacement": "auto"
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "list",
|
|
"placement": "bottom",
|
|
"calcs": []
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (cache) (rate(rust_proxy_traffic_cache_requests_total{vhost=~\"$traffic_vhost\"}[$__rate_interval]))",
|
|
"legendFormat": "{{cache}}",
|
|
"range": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 81,
|
|
"type": "stat",
|
|
"title": "Traffic capture state",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 255
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 1
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
},
|
|
"targets": [
|
|
{
|
|
"expr": "rust_proxy_traffic_country_capture_enabled",
|
|
"legendFormat": "country capture",
|
|
"refId": "A",
|
|
"range": false,
|
|
"instant": true
|
|
},
|
|
{
|
|
"expr": "rust_proxy_traffic_user_agent_capture_enabled",
|
|
"legendFormat": "User-Agent capture",
|
|
"refId": "B",
|
|
"range": false,
|
|
"instant": true
|
|
}
|
|
],
|
|
"description": "Shows whether Traffic country and User-Agent capture are enabled. Country/UA dimension series are populated only when the matching capture setting is enabled."
|
|
},
|
|
{
|
|
"id": 82,
|
|
"type": "bargauge",
|
|
"title": "Top configured routes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 5,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 255
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"min": 0,
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"orientation": "horizontal",
|
|
"displayMode": "basic",
|
|
"showUnfilled": true,
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"expr": "sum by (route) (rust_proxy_traffic_route_requests{vhost=~\"$traffic_vhost\"})",
|
|
"legendFormat": "{{route}}",
|
|
"refId": "A",
|
|
"range": false,
|
|
"instant": true
|
|
}
|
|
],
|
|
"description": "Approximate bounded Traffic request counts by currently configured route ID. Raw request paths are intentionally not Prometheus labels."
|
|
},
|
|
{
|
|
"id": 89,
|
|
"type": "row",
|
|
"title": "Web Server",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 260
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 90,
|
|
"type": "timeseries",
|
|
"title": "Web requests/s",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 261
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_web_server_requests_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "All WWW",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_php_requests_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "PHP",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Counts requests handled by the local Web Server, including PHP; labels are configured service IDs.",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 91,
|
|
"type": "timeseries",
|
|
"title": "Web Server response headers",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 261
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "ms",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "1e-3 * sum(rate(rust_proxy_web_server_response_header_duration_microseconds_total{web_service=~\"$web_service\"}[$__rate_interval])) / clamp_min(sum(rate(rust_proxy_web_server_requests_total{web_service=~\"$web_service\"}[$__rate_interval])), 1e-9)",
|
|
"legendFormat": "WWW mean",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "1e-3 * sum(rate(rust_proxy_php_response_header_duration_microseconds_total{web_service=~\"$web_service\"}[$__rate_interval])) / clamp_min(sum(rate(rust_proxy_php_requests_total{web_service=~\"$web_service\"}[$__rate_interval])), 1e-9)",
|
|
"legendFormat": "PHP mean",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Mean time to response headers only. Streaming body transfer is excluded.",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 92,
|
|
"type": "piechart",
|
|
"title": "WWW HTTP status classes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 268
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (class) (rate(rust_proxy_web_server_responses_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{class}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"displayLabels": [
|
|
"name",
|
|
"percent"
|
|
],
|
|
"pieType": "donut",
|
|
"tooltip": {
|
|
"mode": "single"
|
|
},
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "right",
|
|
"values": [
|
|
"value",
|
|
"percent"
|
|
]
|
|
},
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 93,
|
|
"type": "piechart",
|
|
"title": "Static / PHP / other",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 8,
|
|
"y": 268
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (kind) (rate(rust_proxy_web_server_request_kind_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{kind}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Other includes early rejections; Static means dispatched static files or directory listings.",
|
|
"options": {
|
|
"displayLabels": [
|
|
"name",
|
|
"percent"
|
|
],
|
|
"pieType": "donut",
|
|
"tooltip": {
|
|
"mode": "single"
|
|
},
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "right",
|
|
"values": [
|
|
"value",
|
|
"percent"
|
|
]
|
|
},
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 94,
|
|
"type": "gauge",
|
|
"title": "WWW 5xx %",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 8,
|
|
"x": 16,
|
|
"y": 268
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rate(rust_proxy_web_server_responses_total{web_service=~\"$web_service\",class=\"5xx\"}[$__rate_interval])) / clamp_min(sum(rate(rust_proxy_web_server_requests_total{web_service=~\"$web_service\"}[$__rate_interval])), 1e-9)",
|
|
"legendFormat": "5xx share",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 95,
|
|
"type": "timeseries",
|
|
"title": "Web Server body bytes/s",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 275
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "Bps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_web_server_response_body_bytes_total{web_service=~\"$web_service\"}[$__rate_interval])) - (sum(rate(rust_proxy_php_response_body_bytes_total{web_service=~\"$web_service\"}[$__rate_interval])) or vector(0))",
|
|
"legendFormat": "Non-PHP",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_php_response_body_bytes_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "PHP",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Source body bytes observed while streaming, prior to any later compression or network transport. Not wire bandwidth.",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 96,
|
|
"type": "timeseries",
|
|
"title": "Status-class rates",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 275
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (class) (rate(rust_proxy_web_server_responses_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{class}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 97,
|
|
"type": "row",
|
|
"title": "PHP-FPM / FastCGI",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 282
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 98,
|
|
"type": "stat",
|
|
"title": "PHP requests/s",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 6,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 283
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_php_requests_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "PHP/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"textMode": "auto",
|
|
"colorMode": "value",
|
|
"graphMode": "area",
|
|
"justifyMode": "auto"
|
|
}
|
|
},
|
|
{
|
|
"id": 99,
|
|
"type": "gauge",
|
|
"title": "PHP permit use %",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 6,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 283
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"custom": {},
|
|
"min": 0,
|
|
"max": 100
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "100 * sum(rust_proxy_php_concurrency_in_use{web_service=~\"$web_service\"}) / clamp_min(sum(rust_proxy_php_concurrency_limit{web_service=~\"$web_service\"}),1)",
|
|
"legendFormat": "RustProxy permits",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Concurrency limits are RustProxy request permits, not measured PHP-FPM worker capacity.",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "auto",
|
|
"showThresholdLabels": false,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 100,
|
|
"type": "timeseries",
|
|
"title": "PHP concurrency",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 6,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 283
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rust_proxy_php_concurrency_in_use{web_service=~\"$web_service\"})",
|
|
"legendFormat": "In use",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rust_proxy_php_concurrency_available{web_service=~\"$web_service\"})",
|
|
"legendFormat": "Available",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "C",
|
|
"expr": "sum(rust_proxy_php_concurrency_limit{web_service=~\"$web_service\"})",
|
|
"legendFormat": "Limit",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 101,
|
|
"type": "timeseries",
|
|
"title": "FastCGI failures by reason",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 289
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (reason) (rate(rust_proxy_php_failures_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{reason}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 102,
|
|
"type": "piechart",
|
|
"title": "PHP response classes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 289
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "short",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (class) (rate(rust_proxy_php_responses_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{class}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"displayLabels": [
|
|
"name",
|
|
"percent"
|
|
],
|
|
"pieType": "donut",
|
|
"tooltip": {
|
|
"mode": "single"
|
|
},
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "right",
|
|
"values": [
|
|
"value",
|
|
"percent"
|
|
]
|
|
},
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 103,
|
|
"type": "row",
|
|
"title": "Per Web Service",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 296
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 104,
|
|
"type": "bargauge",
|
|
"title": "Top Web Services",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 297
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (web_service) (rate(rust_proxy_web_server_requests_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{web_service}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"reduceOptions": {
|
|
"values": false,
|
|
"calcs": [
|
|
"lastNotNull"
|
|
],
|
|
"fields": ""
|
|
},
|
|
"orientation": "horizontal",
|
|
"displayMode": "gradient",
|
|
"showUnfilled": true
|
|
}
|
|
},
|
|
{
|
|
"id": 105,
|
|
"type": "timeseries",
|
|
"title": "WWW requests by method",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 297
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (method) (rate(rust_proxy_web_server_methods_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{method}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 106,
|
|
"type": "timeseries",
|
|
"title": "Selected HTTP status codes",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 304
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (status) (rate(rust_proxy_web_server_status_code_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{status}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 107,
|
|
"type": "timeseries",
|
|
"title": "PHP errors per service",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 304
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (web_service) (rate(rust_proxy_php_failures_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{web_service}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 108,
|
|
"type": "row",
|
|
"title": "WWW / PHP correlation",
|
|
"collapsed": false,
|
|
"gridPos": {
|
|
"h": 1,
|
|
"w": 24,
|
|
"x": 0,
|
|
"y": 311
|
|
},
|
|
"panels": []
|
|
},
|
|
{
|
|
"id": 109,
|
|
"type": "timeseries",
|
|
"title": "Cache hits and PHP requests",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 312
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_cache_hits_total[$__rate_interval]))",
|
|
"legendFormat": "Cache HIT/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_php_requests_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "PHP/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Cache and PHP rates can be compared, but the source groups need not match.",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 110,
|
|
"type": "timeseries",
|
|
"title": "WWW 5xx and PHP timeout rates",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 12,
|
|
"y": 312
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false,
|
|
"showPoints": "never",
|
|
"axisPlacement": "auto",
|
|
"stacking": {
|
|
"mode": "none",
|
|
"group": "A"
|
|
}
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum(rate(rust_proxy_web_server_responses_total{web_service=~\"$web_service\",class=\"5xx\"}[$__rate_interval]))",
|
|
"legendFormat": "WWW 5xx/s",
|
|
"range": true
|
|
},
|
|
{
|
|
"refId": "B",
|
|
"expr": "sum(rate(rust_proxy_php_failures_total{web_service=~\"$web_service\",reason=~\".*timeout\"}[$__rate_interval]))",
|
|
"legendFormat": "PHP timeouts/s",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "",
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
},
|
|
"tooltip": {
|
|
"mode": "multi",
|
|
"sort": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": 111,
|
|
"type": "timeseries",
|
|
"title": "Web Server compression by codec",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"gridPos": {
|
|
"h": 7,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 319
|
|
},
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "reqps",
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineInterpolation": "smooth",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": false
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"showLegend": true,
|
|
"displayMode": "list",
|
|
"placement": "bottom"
|
|
}
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"expr": "sum by (encoding) (rate(rust_proxy_web_server_compression_total{web_service=~\"$web_service\"}[$__rate_interval]))",
|
|
"legendFormat": "{{encoding}}",
|
|
"range": true
|
|
}
|
|
],
|
|
"description": "Only downstream compression performed by RustProxy; already precompressed files are not counted."
|
|
}
|
|
],
|
|
"refresh": "15s",
|
|
"schemaVersion": 40,
|
|
"tags": [
|
|
"rustproxy",
|
|
"reverse-proxy",
|
|
"web-server",
|
|
"php-fpm",
|
|
"prometheus",
|
|
"operations"
|
|
],
|
|
"templating": {
|
|
"list": [
|
|
{
|
|
"name": "DS_PROMETHEUS",
|
|
"label": "Prometheus",
|
|
"type": "datasource",
|
|
"query": "prometheus",
|
|
"current": {},
|
|
"hide": 0,
|
|
"refresh": 1
|
|
},
|
|
{
|
|
"name": "traffic_vhost",
|
|
"label": "Traffic vhost",
|
|
"type": "query",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"query": {
|
|
"qryType": 1,
|
|
"query": "rust_proxy_traffic_requests_total",
|
|
"label": "vhost",
|
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
|
},
|
|
"definition": "label_values(rust_proxy_traffic_requests_total, vhost)",
|
|
"current": {
|
|
"selected": false,
|
|
"text": "All",
|
|
"value": "$__all"
|
|
},
|
|
"hide": 0,
|
|
"includeAll": true,
|
|
"allValue": ".*",
|
|
"multi": true,
|
|
"options": [],
|
|
"refresh": 1,
|
|
"regex": "",
|
|
"skipUrlSync": false,
|
|
"sort": 1
|
|
},
|
|
{
|
|
"name": "docker_agent",
|
|
"label": "Docker agent",
|
|
"type": "query",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"query": {
|
|
"qryType": 1,
|
|
"query": "rust_proxy_docker_agent_enabled",
|
|
"label": "agent",
|
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
|
},
|
|
"definition": "label_values(rust_proxy_docker_agent_enabled, agent)",
|
|
"current": {
|
|
"selected": false,
|
|
"text": "All",
|
|
"value": "$__all"
|
|
},
|
|
"hide": 0,
|
|
"includeAll": true,
|
|
"allValue": ".*",
|
|
"multi": true,
|
|
"options": [],
|
|
"refresh": 1,
|
|
"regex": "",
|
|
"skipUrlSync": false,
|
|
"sort": 1
|
|
},
|
|
{
|
|
"name": "docker_service",
|
|
"label": "Docker service",
|
|
"type": "query",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"query": {
|
|
"qryType": 1,
|
|
"query": "rust_proxy_docker_vhost_enabled{agent=~\"$docker_agent\"}",
|
|
"label": "service",
|
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
|
},
|
|
"definition": "label_values(rust_proxy_docker_vhost_enabled{agent=~\"$docker_agent\"}, service)",
|
|
"current": {
|
|
"selected": false,
|
|
"text": "All",
|
|
"value": "$__all"
|
|
},
|
|
"hide": 0,
|
|
"includeAll": true,
|
|
"allValue": ".*",
|
|
"multi": true,
|
|
"options": [],
|
|
"refresh": 1,
|
|
"regex": "",
|
|
"skipUrlSync": false,
|
|
"sort": 1
|
|
},
|
|
{
|
|
"name": "web_service",
|
|
"label": "Web Service",
|
|
"type": "query",
|
|
"datasource": {
|
|
"type": "prometheus",
|
|
"uid": "${DS_PROMETHEUS}"
|
|
},
|
|
"query": {
|
|
"qryType": 1,
|
|
"query": "rust_proxy_web_server_requests_total",
|
|
"label": "web_service",
|
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
|
},
|
|
"definition": "label_values(rust_proxy_web_server_requests_total, web_service)",
|
|
"current": {
|
|
"selected": false,
|
|
"text": "All",
|
|
"value": "$__all"
|
|
},
|
|
"hide": 0,
|
|
"includeAll": true,
|
|
"allValue": ".*",
|
|
"multi": true,
|
|
"options": [],
|
|
"refresh": 1,
|
|
"regex": "",
|
|
"skipUrlSync": false,
|
|
"sort": 1
|
|
}
|
|
]
|
|
},
|
|
"time": {
|
|
"from": "now-6h",
|
|
"to": "now"
|
|
},
|
|
"timepicker": {},
|
|
"timezone": "browser",
|
|
"title": "RustProxy 0.34.15 - Operations",
|
|
"uid": "rustproxy-0170",
|
|
"version": 7,
|
|
"weekStart": "",
|
|
"description": "RustProxy 0.34.15 Prometheus operations dashboard: traffic and errors, vhosts and backends, Docker discovery, cache capacity and pressure, process and system diagnostics, HTTP/2, HTTP/3, TLS, WebSockets, Layer-4 streams, log sinks, Web Server and PHP-FPM. Some metrics are optional depending on exporter collector settings and enabled services."
|
|
} |