apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-image-builder-worker-general labels: grafana_dashboard: "true" annotations: grafana-folder: /grafana-dashboard-definitions/Image-Builder data: grafana.json: |- { "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" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "datasource": { "uid": "${datasource}" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 212, "panels": [], "title": "Job Success Rate", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The percentage of successful jobs for the selected job type(s) and time range", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "index": 0, "text": "0%" } }, "type": "special" } ], "noValue": "0", "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": "0.95" }, { "color": "green", "value": "0.955" } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 1 }, "id": 197, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "text": {}, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "exemplar": true, "expr": "1 - (\n (\n sum(increase(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__range]))\n /\n sum(increase(image_builder_worker_total_jobs{type=~\"$jobtype\", status!=\"4xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__range])) \n ) OR on() vector(0) # set a fallback if the query result is empty\n)", "interval": "", "legendFormat": "", "refId": "A" } ], "title": "Job Success Rate", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The throughput rate of job errors and non-errors over time for the selected job type(s) and time range", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 11, "gradientMode": "opacity", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null } ] }, "unit": "none" }, "overrides": [ { "matcher": { "id": "byName", "options": "success/sec" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 4, "y": 1 }, "id": 202, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "(sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status!=\"4xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) OR on() vector(0))\n- \n(sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) OR on() vector(0))", "hide": false, "interval": "300", "legendFormat": "success/sec", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "(sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) OR on() vector(0))", "hide": false, "interval": "300", "legendFormat": "errors/sec", "range": true, "refId": "B" } ], "title": "Job Throughput Rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The number of job errors (as a percentage) over time for the selected job type(s) and time range", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "max": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 1 }, "id": 228, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "(\n sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval]))\n /\n sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status!=\"4xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval]))\n)\nOR on() vector(0) # set fallback incase the above query result is empty", "interval": "300", "legendFormat": "", "range": true, "refId": "A" } ], "title": "Job Error Rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "How long will it take to consume all our budget if our error consumption remains at the current rate for the selected date range.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "mappings": [ { "options": { "match": "null", "result": { "color": "green", "index": 0, "text": "∞" } }, "type": "special" }, { "options": { "from": 672, "result": { "index": 1, "text": "∞" }, "to": 3360100 }, "type": "range" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 504 }, { "color": "green", "value": 672 } ] }, "unit": "h" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 9 }, "id": 238, "maxDataPoints": 100, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "text": { "valueSize": 80 }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "exemplar": true, "expr": "28 * 24 * (1 - $stability_slo)\n/ \n(\n (\n sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n / \n sum(rate(image_builder_worker_total_jobs{type=~\"$jobtype\", status!=\"4xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n ) OR on() vector(0.01) # set fallback incase the above query result is empty\n)", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "title": "Error Budget Remaining", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The percentage of error budget consumed for the selected time range. ", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 100, "gradientMode": "scheme", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 0, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "#EAB839", "value": 0.95 }, { "color": "red", "value": 1 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 20, "x": 4, "y": 9 }, "id": 239, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "8.1.5", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "exemplar": true, "expr": "1 - (\n (\n 1 - $stability_slo - (\n (\n sum(increase(image_builder_worker_total_jobs{type=~\"$jobtype\", status=\"5xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n /\n sum(increase(image_builder_worker_total_jobs{type=~\"$jobtype\", status!=\"4xx\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n ) OR on() vector(0) # set fallback for empty query result\n ) \n ) \n)\n/ \n(1 - $stability_slo)", "instant": false, "interval": "", "intervalFactor": 10, "legendFormat": "errorbudget", "refId": "A" } ], "title": "Error Budget Consumed", "type": "timeseries" }, { "collapsed": false, "datasource": { "uid": "${datasource}" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 17 }, "id": 129, "panels": [], "title": "Job Duration", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The duration of 95% of jobs for the selected job type(s).", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "index": 0, "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "#EAB839", "value": "1228" }, { "color": "red", "value": "1536" } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 18 }, "id": 200, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "text": {}, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "exemplar": true, "expr": "histogram_quantile(0.95, sum(rate(image_builder_worker_job_duration_seconds_bucket{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__range])) by (le))", "interval": "", "legendFormat": "", "refId": "A" } ], "title": "Job Duration", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The duration of selected jobs over the selected date range, organized by percentiles. The purple line indicates the SLO target.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "seconds", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 35, "gradientMode": "scheme", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 3, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "dark-purple", "value": 30 }, { "color": "dark-purple", "value": 2400 } ] }, "unit": "s" }, "overrides": [ { "matcher": { "id": "byName", "options": "p50" }, "properties": [ { "id": "color", "value": { "fixedColor": "light-red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "p95" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "p99" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 4, "y": 18 }, "id": 201, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.99, sum(rate(image_builder_worker_job_duration_seconds_bucket{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "hide": false, "interval": "300", "legendFormat": "p99", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.95, sum(rate(image_builder_worker_job_duration_seconds_bucket{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "hide": false, "interval": "300", "legendFormat": "p95", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.5, sum(rate(image_builder_worker_job_duration_seconds_bucket{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "interval": "300", "legendFormat": "p50", "range": true, "refId": "A" } ], "title": "Job Duration", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Percent of requests exceeding the duration allowed by SLO.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "max": 1, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 18 }, "id": 210, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "1 - (\n sum(rate(image_builder_worker_job_duration_seconds_bucket{le=\"$target_duration\",type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval]))\n /\n sum(rate(image_builder_worker_job_duration_seconds_count{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval]))\n)", "interval": "300", "legendFormat": "", "range": true, "refId": "A" } ], "title": "Slow Request Rate ($target_duration)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "How long will it take to consume all our budget if our error consumption remains at the current rate for the selected date range.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "mappings": [ { "options": { "match": "null", "result": { "index": 0, "text": "∞" } }, "type": "special" }, { "options": { "from": 672, "result": { "index": 1, "text": "∞" }, "to": 3360100 }, "type": "range" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 504 }, { "color": "green", "value": 672 } ] }, "unit": "h" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 26 }, "id": 198, "maxDataPoints": 100, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "text": { "valueSize": 80 }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "28 * 24 * (1 - $latency_slo) \n/ \n( \n 1.001 - ( \n (\n sum(rate(image_builder_worker_job_duration_seconds_bucket{le=\"$target_duration\",type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n /\n sum(rate(image_builder_worker_job_duration_seconds_count{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n ) OR on() vector(1) # set fallback incase the above query result is empty\n )\n)", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "", "range": true, "refId": "A" } ], "title": "Err Budget Remain ($target_duration)", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The percentage of error budget consumed for the selected time range. ", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 100, "gradientMode": "scheme", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 0, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "#EAB839", "value": 0.95 }, { "color": "red", "value": 1 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 20, "x": 4, "y": 26 }, "id": 199, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "8.1.5", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "exemplar": true, "expr": "1 - (\n (\n (\n sum(increase(image_builder_worker_job_duration_seconds_bucket{le=\"$target_duration\",type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d]))\n /\n sum(increase(image_builder_worker_job_duration_seconds_count{type=~\"$jobtype\", tenant=~\"$tenant\", arch=~\"$arch\"}[28d])) \n ) OR on() vector(1) \n ) - $latency_slo\n)\n/\n(1 - $latency_slo)", "instant": false, "interval": "", "intervalFactor": 10, "legendFormat": "errorbudget", "refId": "A" } ], "title": "Error Budget Consumed ($target_duration)", "type": "timeseries" }, { "collapsed": false, "datasource": { "uid": "${datasource}" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 34 }, "id": 207, "panels": [], "title": "Job Wait Duration", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The duration of 95% of jobs waiting for execution in the job queue for the selection jobtype(s).", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "index": 0, "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "#EAB839", "value": "1228" }, { "color": "red", "value": "1536" } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 35 }, "id": 208, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "text": {}, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.95, sum(rate(image_builder_worker_job_wait_duration_seconds_bucket{type=~\"$jobtype\",tenant=~\"$tenant\", arch=~\"$arch\"}[$__range])) by (le))", "interval": "", "legendFormat": "", "range": true, "refId": "A" } ], "title": "Job Wait Duration", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "The duration for jobs waiting in the job queue over the selected date range, for the selected job type(s).", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "seconds", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 35, "gradientMode": "scheme", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 3, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "s" }, "overrides": [ { "matcher": { "id": "byName", "options": "p50" }, "properties": [ { "id": "color", "value": { "fixedColor": "light-red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "p95" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "p99" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 4, "y": 35 }, "id": 209, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.99, sum(rate(image_builder_worker_job_wait_duration_seconds_bucket{type=~\"$jobtype\",tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "hide": false, "interval": "300", "legendFormat": "p99", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.95, sum(rate(image_builder_worker_job_wait_duration_seconds_bucket{type=~\"$jobtype\",tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "hide": false, "interval": "300", "legendFormat": "p95", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.5, sum(rate(image_builder_worker_job_wait_duration_seconds_bucket{type=~\"$jobtype\",tenant=~\"$tenant\", arch=~\"$arch\"}[$__rate_interval])) by (le))", "interval": "300", "legendFormat": "p50", "range": true, "refId": "A" } ], "title": "Job Wait Duration", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Percent of requests exceeding duration allowed by SLO.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "max": 1, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 35 }, "id": 204, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "editorMode": "code", "exemplar": true, "expr": "1 - sum(rate(image_builder_worker_job_wait_duration_seconds_bucket{le=\"$target_duration\",type=~\"$jobtype\",tenant=~\"$tenant\"}[$__rate_interval]))/sum(rate(image_builder_worker_job_wait_duration_seconds_count{type=~\"$jobtype\",tenant=~\"$tenant\"}[$__rate_interval]))", "interval": "300", "legendFormat": "", "range": true, "refId": "A" } ], "title": "Slow Request Rate ($target_duration)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Maximum number of pending Jobs per type", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 52 }, "id": 246, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ "max" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "exemplar": false, "expr": "sum(image_builder_worker_pending_jobs) by (type)", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, "legendFormat": "{{type}}", "range": true, "refId": "A", "useBackend": false } ], "title": "Pending Jobs Max", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "description": "Pending Jobs per type over time", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "number of jobs", "axisPlacement": "auto", "barAlignment": 0, "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", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 4, "y": 52 }, "id": 245, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "10.4.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum(image_builder_worker_pending_jobs) by (type)", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, "legendFormat": "{{type}}", "range": true, "refId": "A", "useBackend": false } ], "title": "Pending Jobs", "type": "timeseries" } ], "refresh": false, "schemaVersion": 39, "tags": [], "templating": { "list": [ { "current": { "selected": false, "text": "app-sre-prod-04-prometheus", "value": "app-sre-prod-04-prometheus" }, "hide": 0, "includeAll": false, "multi": false, "name": "datasource", "options": [], "query": "prometheus", "queryValue": "", "refresh": 1, "regex": "/app-sre-(prod-04|stage-01)-prometheus/", "skipUrlSync": false, "type": "datasource" }, { "description": "Compose stability SLO target", "hide": 2, "name": "stability_slo", "query": "0.95", "skipUrlSync": false, "type": "constant" }, { "description": "Compose Duration SLO target", "hide": 2, "name": "latency_slo", "query": "0.95", "skipUrlSync": false, "type": "constant" }, { "allValue": ".*", "current": { "selected": true, "text": [ "All" ], "value": [ "$__all" ] }, "hide": 0, "includeAll": true, "multi": true, "name": "tenant", "options": [ { "selected": true, "text": "All", "value": "$__all" }, { "selected": false, "text": "crc stage", "value": "org-15877963" }, { "selected": false, "text": "fedora stage", "value": "org-15842261" }, { "selected": false, "text": "brew stage", "value": "org-16133643" }, { "selected": false, "text": "community stage", "value": "org-17546013" }, { "selected": false, "text": "crc production", "value": "org-15885990" }, { "selected": false, "text": "fedora production", "value": "org-16057323" }, { "selected": false, "text": "brew production", "value": "org-16135456" } ], "query": "crc stage : org-15877963,fedora stage : org-15842261,brew stage : org-16133643,community stage : org-17546013,crc production : org-15885990,fedora production : org-16057323,brew production : org-16135456", "queryValue": "", "skipUrlSync": false, "type": "custom" }, { "allValue": ".*", "current": { "selected": true, "text": [ "All" ], "value": [ "$__all" ] }, "hide": 0, "includeAll": true, "multi": true, "name": "arch", "options": [ { "selected": true, "text": "All", "value": "$__all" }, { "selected": false, "text": "x86_64", "value": "x86_64" }, { "selected": false, "text": "aarch64", "value": "aarch64" }, { "selected": false, "text": "ppc64le", "value": "ppc64le" }, { "selected": false, "text": "s390x", "value": "s390x" } ], "query": "x86_64, aarch64, ppc64le, s390x", "queryValue": "", "skipUrlSync": false, "type": "custom" }, { "allValue": ".*", "current": { "selected": true, "text": [ "All" ], "value": [ "$__all" ] }, "description": "The job type to display results for", "hide": 0, "includeAll": true, "label": "Job type", "multi": true, "name": "jobtype", "options": [ { "selected": true, "text": "All", "value": "$__all" }, { "selected": false, "text": "osbuild", "value": "osbuild" }, { "selected": false, "text": "depsolve", "value": "depsolve" }, { "selected": false, "text": "manifest-id-only", "value": "manifest-id-only" }, { "selected": false, "text": "container-resolve", "value": "container-resolve" }, { "selected": false, "text": "ostree-resolve", "value": "ostree-resolve" }, { "selected": false, "text": "aws-ec2-copy", "value": "aws-ec2-copy" }, { "selected": false, "text": "aws-ec2-share", "value": "aws-ec2-share" }, { "selected": false, "text": "koji-init", "value": "koji-init" }, { "selected": false, "text": "koji-finalize", "value": "koji-finalize" } ], "query": "osbuild, depsolve, manifest-id-only, container-resolve, ostree-resolve, aws-ec2-copy, aws-ec2-share, koji-init, koji-finalize", "queryValue": "", "skipUrlSync": false, "type": "custom" }, { "current": { "selected": false, "text": "50min", "value": "3000" }, "description": "The duration in seconds 95% of jobs should adhere to.", "hide": 0, "includeAll": false, "label": "Target duration", "multi": false, "name": "target_duration", "options": [ { "selected": false, "text": "30sec", "value": "30" }, { "selected": false, "text": "1min", "value": "60" }, { "selected": false, "text": "10min", "value": "600" }, { "selected": false, "text": "20min", "value": "1200" }, { "selected": false, "text": "30min", "value": "1800" }, { "selected": false, "text": "40min", "value": "2400" }, { "selected": true, "text": "50min", "value": "3000" }, { "selected": false, "text": "1h", "value": "3600" }, { "selected": false, "text": "2h", "value": "7200" }, { "selected": false, "text": "1d", "value": "86400" }, { "selected": false, "text": "3d", "value": "259200" } ], "query": "30sec : 30,1min : 60,10min : 600,20min : 1200,30min : 1800,40min : 2400,50min : 3000,1h : 3600,2h : 7200,1d : 86400,3d : 259200", "queryValue": "", "skipUrlSync": false, "type": "custom" } ] }, "time": { "from": "now-6h", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "28d" ] }, "timezone": "", "title": "Image Builder Worker Job Stats", "uid": "image-builder-worker", "version": 21, "weekStart": "" }