2022-11-16 13:27:24 +01:00
{
"__elements" : { } ,
"__requires" : [
{
"type" : "grafana" ,
"id" : "grafana" ,
"name" : "Grafana" ,
2026-09-19 19:52:43 +00:00
"version" : "12.4.1"
2022-11-16 13:27:24 +01:00
} ,
{
"type" : "datasource" ,
"id" : "prometheus" ,
"name" : "Prometheus" ,
"version" : "1.0.0"
} ,
{
"type" : "panel" ,
"id" : "timeseries" ,
"name" : "Time series" ,
"version" : ""
}
] ,
"annotations" : {
"list" : [
{
"builtIn" : 1 ,
"datasource" : {
"type" : "datasource" ,
"uid" : "grafana"
} ,
"enable" : true ,
"hide" : true ,
"iconColor" : "rgba(0, 211, 255, 1)" ,
"name" : "Annotations & Alerts" ,
"target" : {
"limit" : 100 ,
"matchAny" : false ,
"tags" : [ ] ,
"type" : "dashboard"
} ,
"type" : "dashboard"
}
]
} ,
2026-09-19 19:52:43 +00:00
"description" : "The garage default dashboard for performance and monitoring" ,
2022-11-16 13:27:24 +01:00
"editable" : true ,
"fiscalYearStartMonth" : 0 ,
2026-09-19 19:52:43 +00:00
"graphTooltip" : 1 ,
2022-11-16 13:27:24 +01:00
"links" : [ ] ,
"panels" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of garage block disk IO across all cluster nodes" ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 24 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "Bps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 9 ,
"w" : 8 ,
"x" : 0 ,
"y" : 0
} ,
"id" : 10 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"editorMode" : "code" ,
2022-11-16 13:27:24 +01:00
"exemplar" : true ,
2026-09-19 19:52:43 +00:00
"expr" : "sum(rate(block_bytes_read{job=\"garage\"}[$__rate_interval]))" ,
2022-11-16 13:27:24 +01:00
"interval" : "" ,
"legendFormat" : "Disk bytes read" ,
2026-09-19 19:52:43 +00:00
"range" : true ,
2022-11-16 13:27:24 +01:00
"refId" : "A"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"editorMode" : "code" ,
2022-11-16 13:27:24 +01:00
"exemplar" : true ,
2026-09-19 19:52:43 +00:00
"expr" : "-sum(rate(block_bytes_written{job=\"garage\"}[$__rate_interval]))" ,
2022-11-16 13:27:24 +01:00
"interval" : "" ,
"legendFormat" : "Disk bytes written" ,
2026-09-19 19:52:43 +00:00
"range" : true ,
2022-11-16 13:27:24 +01:00
"refId" : "B"
}
] ,
"title" : "Disk I/O" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of all API request per S3 endpoint across all nodes" ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "reqps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 9 ,
"w" : 8 ,
"x" : 8 ,
"y" : 0
} ,
"id" : 3 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"editorMode" : "code" ,
"exemplar" : true ,
"expr" : "sum by (api_endpoint) (rate(api_s3_request_counter {job=\"garage\"}[$__rate_interval]))" ,
"interval" : "" ,
"legendFormat" : "{{api_endpoint}}" ,
"range" : true ,
"refId" : "A"
}
] ,
"title" : "API requests" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of all request on the web endpoint across all nodes" ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "reqps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 9 ,
"w" : 8 ,
"x" : 16 ,
"y" : 0
} ,
"id" : 9 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "sum(rate(web_request_counter {job=\"garage\"}[$__rate_interval]))" ,
"interval" : "" ,
"legendFormat" : "Web request rate" ,
"refId" : "A"
}
] ,
"title" : "Web requests" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of all internal RPC requests across all nodes " ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "reqps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 0 ,
"y" : 9
} ,
"id" : 2 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "sum by (rpc_endpoint) (rate(rpc_request_counter {job=\"garage\"}[$__rate_interval]))" ,
"interval" : "" ,
"legendFormat" : "{{rpc_endpoint}}" ,
"refId" : "A"
}
] ,
"title" : "RPC requests" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of all API request error per S3 endpoint across all nodes" ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "reqps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 8 ,
"y" : 9
} ,
"id" : 4 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"editorMode" : "code" ,
"exemplar" : true ,
"expr" : "sum by (api_endpoint, status_code) (rate(api_s3_error_counter {job=\"garage\"}[$__rate_interval]))" ,
"interval" : "" ,
"legendFormat" : "{{api_endpoint}} {{status_code}}" ,
"range" : true ,
"refId" : "A"
}
] ,
"title" : "API errors" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Sum of all web request error across all nodes" ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
} ,
"unit" : "reqps"
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 16 ,
"y" : 9
} ,
"id" : 11 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "sum by(status_code) (rate(web_error_counter {job=\"garage\"}[$__rate_interval]))" ,
"interval" : "" ,
"legendFormat" : "{{status_code}}" ,
"refId" : "A"
}
] ,
"title" : "Web errors" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Number of blocks in the resync queue on each node. A block ends up here as a result of each write. Each node \"consumes\" its resync queue, getting missing blocks from other nodes. If the resync queue is growing, it indicates either performance issues on that node or connectivity issues in the cluster. Repair commands can also lead to blocks being queue into resync. The resync queue is persisted to disk, stored in the metadata database. As of garage 2.4.1, the resync queue can contain duplicated blocks, so what matters here is more the evolution (growing or shrinking)." ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
}
} ,
2025-06-15 13:40:15 +00:00
"overrides" : [ ]
2022-11-16 13:27:24 +01:00
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 0 ,
"y" : 17
} ,
"id" : 6 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "block_resync_queue_length{job=\"garage\"}" ,
"interval" : "" ,
"legendFormat" : "{{instance}}" ,
"refId" : "A"
}
] ,
"title" : "Resync queue length" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Rows waiting to be purged from the metadata database. It is expected to see a certain amount of objects, version and block_ref here when S3 objects gets overwritten or deleted, as garage will keep the references in store for 24h. If you have not deleted files in the last 24h and this is not going down, you might have an issue." ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
}
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 8 ,
"y" : 17
} ,
"id" : 7 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "sum by(table_name) (table_gc_todo_queue_length{job=\"garage\"})" ,
"interval" : "" ,
"legendFormat" : "{{ table_name}}" ,
"refId" : "A"
}
] ,
"title" : "Table GC queue length" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Table syn between nodes. This should usually be close to zero, and will increase if a node re-join the cluster after being split. It should decrease soon afterward. If this is permanently high, you might have a node with a metadata performance issue." ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
}
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 16 ,
"y" : 17
} ,
"id" : 8 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "sum by(table_name) (table_merkle_updater_todo_queue_length{job=\"garage\"})" ,
"interval" : "" ,
"legendFormat" : "{{ table_name}}" ,
"refId" : "A"
}
] ,
"title" : "Table Merkle updater queue length" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "When a node try to re-sync a block and encounter an error, it enters this queue. This can happen as part of normal operation (because connectivity was broken), but in general this should be zero or close to zero in normal operation." ,
2022-11-16 13:27:24 +01:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2022-11-16 13:27:24 +01:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2022-11-16 13:27:24 +01:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2022-11-16 13:27:24 +01:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2022-11-16 13:27:24 +01:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2022-11-16 13:27:24 +01:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
}
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 0 ,
"y" : 25
} ,
"id" : 12 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2022-11-16 13:27:24 +01:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2022-11-16 13:27:24 +01:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2022-11-16 13:27:24 +01:00
} ,
"exemplar" : true ,
"expr" : "block_resync_errored_blocks{job=\"garage\"}" ,
"interval" : "" ,
"legendFormat" : "{{instance}}" ,
"refId" : "A"
}
] ,
"title" : "Resync errored blocks" ,
"type" : "timeseries"
2026-08-25 20:13:53 +02:00
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2026-08-25 20:13:53 +02:00
} ,
2026-09-19 19:52:43 +00:00
"description" : "Amount of free buffer in the cache used by garage for its blocks. Should not be zero in normal operations." ,
2026-08-25 20:13:53 +02:00
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
2026-09-19 19:52:43 +00:00
"axisBorderShow" : false ,
2026-08-25 20:13:53 +02:00
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
2026-09-19 19:52:43 +00:00
"barWidthFactor" : 0.6 ,
2026-08-25 20:13:53 +02:00
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
2026-09-19 19:52:43 +00:00
"insertNulls" : false ,
2026-08-25 20:13:53 +02:00
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
2026-09-19 19:52:43 +00:00
"showValues" : false ,
2026-08-25 20:13:53 +02:00
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
2026-09-19 19:52:43 +00:00
"value" : 0
2026-08-25 20:13:53 +02:00
} ,
{
"color" : "red" ,
"value" : 80
}
]
2026-09-19 19:52:43 +00:00
} ,
"unit" : "deckbytes"
2026-08-25 20:13:53 +02:00
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 8 ,
"y" : 25
} ,
"id" : 13 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
2026-09-19 19:52:43 +00:00
"hideZeros" : false ,
2026-08-25 20:13:53 +02:00
"mode" : "single" ,
"sort" : "none"
}
} ,
2026-09-19 19:52:43 +00:00
"pluginVersion" : "12.4.1" ,
2026-08-25 20:13:53 +02:00
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2026-08-25 20:13:53 +02:00
} ,
"editorMode" : "code" ,
"exemplar" : true ,
2026-09-19 19:52:43 +00:00
"expr" : "block_ram_buffer_free_kb{job=\"garage\"}" ,
"interval" : "" ,
"legendFormat" : "{{instance}}" ,
"range" : true ,
"refId" : "A"
}
] ,
"title" : "Block write buffer free" ,
"type" : "timeseries"
} ,
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2026-09-19 19:52:43 +00:00
} ,
"description" : "Deleted blocks by the garage garbage collector, per node." ,
"fieldConfig" : {
"defaults" : {
"color" : {
"mode" : "palette-classic"
} ,
"custom" : {
"axisBorderShow" : false ,
"axisCenteredZero" : false ,
"axisColorMode" : "text" ,
"axisLabel" : "" ,
"axisPlacement" : "auto" ,
"barAlignment" : 0 ,
"barWidthFactor" : 0.6 ,
"drawStyle" : "line" ,
"fillOpacity" : 0 ,
"gradientMode" : "none" ,
"hideFrom" : {
"legend" : false ,
"tooltip" : false ,
"viz" : false
} ,
"insertNulls" : false ,
"lineInterpolation" : "linear" ,
"lineWidth" : 1 ,
"pointSize" : 5 ,
"scaleDistribution" : {
"type" : "linear"
} ,
"showPoints" : "auto" ,
"showValues" : false ,
"spanNulls" : false ,
"stacking" : {
"group" : "A" ,
"mode" : "none"
} ,
"thresholdsStyle" : {
"mode" : "off"
}
} ,
"mappings" : [ ] ,
"thresholds" : {
"mode" : "absolute" ,
"steps" : [
{
"color" : "green" ,
"value" : 0
} ,
{
"color" : "red" ,
"value" : 80
}
]
}
} ,
"overrides" : [ ]
} ,
"gridPos" : {
"h" : 8 ,
"w" : 8 ,
"x" : 16 ,
"y" : 25
} ,
"id" : 14 ,
"options" : {
"legend" : {
"calcs" : [ ] ,
"displayMode" : "list" ,
"placement" : "bottom" ,
"showLegend" : true
} ,
"tooltip" : {
"hideZeros" : false ,
"mode" : "single" ,
"sort" : "none"
}
} ,
"pluginVersion" : "12.4.1" ,
"targets" : [
{
"datasource" : {
"type" : "prometheus" ,
2026-09-28 22:52:11 +02:00
"uid" : "${datasource}"
2026-09-19 19:52:43 +00:00
} ,
"editorMode" : "code" ,
"exemplar" : true ,
"expr" : "sum by (instance) (rate(block_delete_counter{job=\"garage\"}[$__rate_interval]))" ,
2026-08-25 20:13:53 +02:00
"interval" : "" ,
"legendFormat" : "{{instance}}" ,
"range" : true ,
"refId" : "A"
}
] ,
"title" : "Deleted blocks" ,
"type" : "timeseries"
2022-11-16 13:27:24 +01:00
}
] ,
2026-09-19 19:52:43 +00:00
"preload" : false ,
"refresh" : "" ,
"schemaVersion" : 42 ,
"tags" : [
"garage" ,
"s3" ,
"storage"
] ,
2022-11-16 13:27:24 +01:00
"templating" : {
2026-09-28 22:52:11 +02:00
"list" : [
{
"current" : { } ,
"hide" : 0 ,
"includeAll" : false ,
"label" : "Data source" ,
"multi" : false ,
"name" : "datasource" ,
"options" : [ ] ,
"query" : "prometheus" ,
"refresh" : 1 ,
"regex" : "" ,
"skipUrlSync" : false ,
"type" : "datasource"
}
]
2022-11-16 13:27:24 +01:00
} ,
"time" : {
2026-09-19 19:52:43 +00:00
"from" : "now-3h" ,
2022-11-16 13:27:24 +01:00
"to" : "now"
} ,
"timepicker" : { } ,
2026-09-19 19:52:43 +00:00
"timezone" : "browser" ,
2022-11-16 13:27:24 +01:00
"title" : "Garage" ,
"uid" : "ys3pnpZ4k" ,
2026-09-19 19:52:43 +00:00
"version" : 36 ,
2022-11-16 13:27:24 +01:00
"weekStart" : ""
2026-09-28 22:52:11 +02:00
}