{ "__inputs": [ { "name": "DS_POSTGRESQL", "label": "PostgreSQL", "description": "", "type": "datasource", "pluginId": "postgres", "pluginName": "PostgreSQL" } ], "__elements": {}, "__requires": [ { "type": "panel", "id": "bargauge", "name": "Bar gauge", "version": "" }, { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "9.3.2" }, { "type": "panel", "id": "piechart", "name": "Pie chart", "version": "" }, { "type": "datasource", "id": "postgres", "name": "PostgreSQL", "version": "1.0.0" }, { "type": "panel", "id": "stat", "name": "Stat", "version": "" }, { "type": "panel", "id": "table", "name": "Table", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "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": false, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 16, "panels": [], "title": "Builds", "type": "row" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "center", "displayMode": "auto", "filterable": true, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "duration" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "url" }, "properties": [ { "id": "custom.width", "value": 287 } ] }, { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "custom.width", "value": 107 } ] }, { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "links", "value": [ { "title": "", "url": "/d/dmVtrz-4k/build-details?orgId=1&var-build_id=${__value.raw}" } ] } ] } ] }, "gridPos": { "h": 3, "w": 24, "x": 0, "y": 1 }, "id": 10, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "duration" } ] }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "hide": false, "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n b.id, \n b.url, \n b.created_at * 1000 as created,\n b.finished_at * 1000 as finished,\n (SELECT COUNT(id) FROM build_tasks AS bt WHERE bt.build_id = b.id) AS task_count,\n b.finished_at - b.created_at as duration\nFROM builds as b \nWHERE id = $build_id ", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Build info", "transformations": [ { "id": "convertFieldType", "options": { "conversions": [ { "destinationType": "time", "targetField": "created" }, { "destinationType": "time", "targetField": "finished" } ], "fields": {} } } ], "type": "table" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [] }, "overrides": [ { "matcher": { "id": "byName", "options": "running" }, "properties": [ { "id": "color", "value": { "fixedColor": "semi-dark-blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "completed" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "idle" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "failed" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "excluded" }, "properties": [ { "id": "color", "value": { "fixedColor": "text", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 7, "x": 0, "y": 4 }, "id": 4, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS idle FROM build_tasks \nWHERE build_id = $build_id AND status_id = 0;", "refId": "idle", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS started FROM build_tasks \nWHERE build_id = $build_id AND status_id = 1;", "refId": "started", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS completed FROM build_tasks \nWHERE build_id = $build_id AND status_id = 2;", "refId": "completed", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS failed FROM build_tasks \nWHERE build_id = $build_id AND status_id = 3;", "refId": "failed", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS excluded FROM build_tasks \nWHERE build_id = $build_id AND status_id = 4;", "refId": "excluded", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Build tasks by status", "type": "piechart" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [] }, "overrides": [ { "matcher": { "id": "byName", "options": "running" }, "properties": [ { "id": "color", "value": { "fixedColor": "semi-dark-blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "completed" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "idle" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "failed" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "excluded" }, "properties": [ { "id": "color", "value": { "fixedColor": "text", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "x86_64" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "i686" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-orange", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "aarch64" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "ppc64le" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 7, "x": 7, "y": 4 }, "id": 6, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS i686 FROM build_tasks \nWHERE build_id = $build_id AND arch_id = 0;", "refId": "i686", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS x86_64 FROM build_tasks \nWHERE build_id = $build_id AND arch_id = 1;", "refId": "x86_64", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS aarch64 FROM build_tasks \nWHERE build_id = $build_id AND arch_id = 2;", "refId": "aarch64", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS ppc64le FROM build_tasks \nWHERE build_id = $build_id AND arch_id = 3;", "refId": "ppc64le", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT COUNT(id) AS s390x FROM build_tasks \nWHERE build_id = $build_id AND arch_id = 4;", "refId": "s390x", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Build tasks by arch", "type": "piechart" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "Averages for build tasks with \"completed\"\nstatus", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 4, "w": 10, "x": 14, "y": 4 }, "id": 12, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT MAX(finished_at - started_at) AS MAX\nFROM build_tasks\nWHERE build_id = $build_id AND status_id = 2", "refId": "max", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" }, { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "hide": false, "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT MIN(finished_at - started_at) AS MIN\nFROM build_tasks\nWHERE build_id = $build_id AND status_id = 2", "refId": "min", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" }, { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "hide": false, "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY durations.duration) as median FROM \n(SELECT (finished_at - started_at) AS duration\nFROM build_tasks\nWHERE build_id = $build_id AND status_id = 2) as durations\n\n\n", "refId": "median", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT PERCENTILE_CONT(0.95) WITHIN GROUP(ORDER BY durations.duration) as \"95th percentile\" FROM \n(SELECT (finished_at - started_at) AS duration\nFROM build_tasks\nWHERE build_id = $build_id AND status_id = 2) as durations", "refId": "95th percentile", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Build tasks duration (completed)", "type": "stat" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "How much time were spent in queue. \n\nStats for \"completed\" build tasks only", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null } ] }, "unit": "s" }, "overrides": [ { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "unit", "value": "none" }, { "id": "links", "value": [ { "title": "", "url": "/d/vtQClqxVk/build-task-details?orgId=1&var-build_task=${__value.raw}\n\n" } ] } ] }, { "matcher": { "id": "byName", "options": "wait-time" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 4, "w": 10, "x": 14, "y": 8 }, "id": 14, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT\n bt.id, \n SUM(bt.finished_at - bt.started_at) AS task_duration,\n (SELECT SUM(end_ts - start_ts) \n FROM web_node_stats AS ws \n WHERE ws.build_task_id = bt.id AND stat_name_id=0) AS web_node_duration,\n (SELECT SUM(end_ts - start_ts) \n FROM build_node_stats AS bs \n WHERE bs.build_task_id = bt.id AND stat_name_id=6) AS build_node_duration\nFROM build_tasks AS bt\nWHERE build_id = $build_id AND status_id = 2\nGROUP BY bt.id;", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Build task wait time (completed)", "transformations": [ { "id": "calculateField", "options": { "binary": { "left": "web_node_duration", "reducer": "sum", "right": "build_node_duration" }, "mode": "binary", "reduce": { "reducer": "sum" } } }, { "id": "calculateField", "options": { "binary": { "left": "task_duration", "operator": "-", "reducer": "sum", "right": "web_node_duration build_node_duration" }, "mode": "binary", "reduce": { "reducer": "sum" } } }, { "id": "organize", "options": { "excludeByName": { "build_id": true, "build_node_duration": true, "id": true, "task_duration": true, "web_node_duration": true, "web_node_duration build_node_duration": true }, "indexByName": {}, "renameByName": { "task_duration - web_node_duration build_node_duration": "wait-time" } } }, { "id": "reduce", "options": { "labelsToFields": false, "reducers": [ "max", "min", "mean" ] } } ], "type": "stat" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "fixedColor": "#61a69d", "mode": "fixed" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [], "unit": "s" }, "overrides": [ { "matcher": { "id": "byName", "options": "build_binaries" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "upload" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "packages_processing" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "build_srpm" }, "properties": [ { "id": "color", "value": { "fixedColor": "semi-dark-green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "notarize_artifacts" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "logs_processing" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "source_authenticate" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "git_checkout" }, "properties": [ { "id": "color", "value": { "fixedColor": "light-red", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 12 }, "id": 20, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "percent" ] }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "hide": false, "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as upload\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 0 AND build_tasks.build_id = $build_id ", "refId": "upload", "sql": { "columns": [ { "parameters": [ { "name": "start_ts", "type": "functionParameter" } ], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "table": "build_node_stats", "urlPath": "" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as build_srpm\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 2 AND build_tasks.build_id = $build_id ", "refId": "build_srpm", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as git_checkout\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 3 AND build_tasks.build_id = $build_id ", "refId": "git_checkout", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as build_binaries\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 4 AND build_tasks.build_id = $build_id ", "refId": "build_binaries", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as notarize_artifacts\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 7 AND build_tasks.build_id = $build_id ", "refId": "cas_notarize_artifacts", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as source_authenticate\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 8 AND build_tasks.build_id = $build_id ", "refId": "cas_source_authenticate", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n SUM(end_ts - start_ts) AS logs_processing\nFROM web_node_stats AS bs \nJOIN build_tasks \n ON bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 1 AND build_tasks.build_id = $build_id ", "refId": "logs_processing", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n SUM(end_ts - start_ts) AS packages_processing\nFROM web_node_stats AS bs \nJOIN build_tasks \n ON bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 2 AND build_tasks.build_id = $build_id ", "refId": "packages_procession", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Duration (%)", "type": "piechart" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "fixedColor": "#61a69d", "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 16, "x": 8, "y": 12 }, "id": 21, "options": { "displayMode": "basic", "minVizHeight": 10, "minVizWidth": 0, "orientation": "vertical", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showUnfilled": false }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "hide": false, "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as upload\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 0 AND build_tasks.build_id = $build_id ", "refId": "upload", "sql": { "columns": [ { "parameters": [ { "name": "start_ts", "type": "functionParameter" } ], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "table": "build_node_stats", "urlPath": "" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as build_srpm\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 2 AND build_tasks.build_id = $build_id ", "refId": "build_srpm", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as git_checkout\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 3 AND build_tasks.build_id = $build_id ", "refId": "git_checkout", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as build_binaries\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 4 AND build_tasks.build_id = $build_id ", "refId": "build_binaries", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as notarize_artifacts\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 7 AND build_tasks.build_id = $build_id ", "refId": "cas_notarize_artifacts", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n sum(end_ts - start_ts) as source_authenticate\nFROM build_node_stats bs\nJOIN build_tasks \n on bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 8 AND build_tasks.build_id = $build_id ", "refId": "cas_source_authenticate", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n SUM(end_ts - start_ts) AS logs_processing\nFROM web_node_stats AS bs \nJOIN build_tasks \n ON bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 1 AND build_tasks.build_id = $build_id ", "refId": "logs_processing", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "hide": false, "rawQuery": true, "rawSql": "SELECT \n SUM(end_ts - start_ts) AS packages_processing\nFROM web_node_stats AS bs \nJOIN build_tasks \n ON bs.build_task_id = build_tasks.id\nWHERE stat_name_id = 2 AND build_tasks.build_id = $build_id ", "refId": "packages_processing", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Duration (absolute)", "type": "bargauge" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 20 }, "id": 27, "panels": [], "title": "Tests", "type": "row" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "palette-classic" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [] }, "overrides": [] }, "gridPos": { "h": 6, "w": 13, "x": 0, "y": 21 }, "id": 29, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT \n COUNT(tt.id),\n enum.value AS status\nFROM test_tasks AS tt\nINNER JOIN test_tasks_status_enum AS enum\n ON tt.status_id = enum.id\nINNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nWHERE b.id = $build_id\nGROUP BY (status);\n", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Tests count (group by status)", "transformations": [ { "id": "rowsToFields", "options": {} } ], "type": "piechart" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 11, "x": 13, "y": 21 }, "id": 31, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n MAX(t.duration) AS \"MAX\",\n MIN(t.duration) AS \"MIN\",\n AVG(t.duration) AS \"AVERAGE\",\n PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY t.duration) as \"MEDIAN\",\n PERCENTILE_CONT(0.95) WITHIN GROUP(ORDER BY t.duration) as \"95TH PERCENTILE\"\nFROM\n (SELECT \n tt.started_at * 1000 AS \"started at\",\n tf.finished_at * 1000 AS \"finished at\", \n tf.finished_at - tt.started_at AS duration\n FROM test_tasks AS tt\n INNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\n INNER JOIN test_tasks_status_enum AS enum\n ON tt.status_id = enum.id\n INNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\n INNER JOIN builds AS b\n ON bt.build_id = b.id\n INNER JOIN \n (SELECT \n tss.test_task_id, \n MAX(tss.finish_ts) AS finished_at \n FROM test_steps_stats AS tss\n INNER JOIN test_tasks AS tt\n ON tss.test_task_id = tt.id\n INNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\n INNER JOIN builds AS b\n ON bt.build_id = b.id\n WHERE b.id = $build_id\n GROUP BY tss.test_task_id) AS tf\n ON tf.test_task_id = tt.id\n WHERE b.id = $build_id\n ) AS t;", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Tests duration", "type": "stat" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "fixedColor": "blue", "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 24, "x": 0, "y": 27 }, "id": 33, "options": { "displayMode": "basic", "minVizHeight": 10, "minVizWidth": 0, "orientation": "vertical", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showUnfilled": false }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n enum.value AS \"step name\",\n SUM(tss.finish_ts - tss.start_ts) AS duration\nFROM test_tasks AS tt\nINNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\nINNER JOIN test_steps_enum AS enum\n ON tss.stat_name_id = enum.id\nINNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nWHERE b.id = $build_id\nGROUP BY (enum.value); ", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Test duration (group by test step)", "transformations": [ { "id": "rowsToFields", "options": {} } ], "type": "bargauge" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [], "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 33 }, "id": 35, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT \n aenum.value AS arch,\n SUM(tss.finish_ts - tss.start_ts) AS duration\nFROM test_tasks AS tt\nINNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\nINNER JOIN build_tasks as bt\n ON tt.build_task_id = bt.id\nINNER JOIN arch_enum as aenum\n ON bt.arch_id = aenum.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nWHERE b.id = $build_id\nGROUP BY (aenum.value); ", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Tests duration (group by arch)", "transformations": [ { "id": "rowsToFields", "options": { "mappings": [] } } ], "type": "piechart" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [], "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 16, "x": 8, "y": 33 }, "id": 37, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "9.3.2", "targets": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT \n tt.package_fullname AS \"package name\",\n SUM(tss.finish_ts - tss.start_ts) AS duration\nFROM test_tasks AS tt\nINNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\nINNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nWHERE b.id = $build_id\nGROUP BY (tt.package_fullname); ", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 } } ], "title": "Tests duration (group by package)", "transformations": [ { "id": "rowsToFields", "options": { "mappings": [] } } ], "type": "piechart" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 39 }, "id": 18, "panels": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "center", "displayMode": "auto", "filterable": true, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "links", "value": [ { "targetBlank": false, "title": "", "url": "/d/vtQClqxVk/build-task-details?orgId=1&var-build_task=${__value.raw}" } ] } ] }, { "matcher": { "id": "byName", "options": "duration" }, "properties": [ { "id": "unit", "value": "s" } ] } ] }, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 22 }, "id": 2, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "duration" } ] }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT\n bt.id,\n bt.name,\n arch_enum.value AS arch,\n status_enum.value AS status,\n bt.started_at * 1000 AS started,\n bt.finished_at * 1000 AS finished,\n bt.finished_at - bt.started_at AS duration \nFROM build_tasks AS bt\nJOIN build_task_status_enum AS status_enum ON bt.status_id = status_enum.id\nJOIN arch_enum on bt.arch_id = arch_enum.id\nWHERE bt.build_id = $build_id;", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "All build tasks", "transformations": [ { "id": "convertFieldType", "options": { "conversions": [ { "destinationType": "time", "targetField": "started" }, { "destinationType": "time", "targetField": "finished" } ], "fields": {} } } ], "type": "table" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "displayMode": "auto", "filterable": true, "inspect": true }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "(.*duration)|(wait time)" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "custom.width", "value": 70 }, { "id": "links", "value": [ { "title": "", "url": "/d/vtQClqxVk/build-task-details?orgId=1&var-build_task=${__value.raw}\n\n" } ] } ] }, { "matcher": { "id": "byName", "options": "arch" }, "properties": [ { "id": "custom.width", "value": 111 } ] }, { "matcher": { "id": "byName", "options": "build id" }, "properties": [ { "id": "links", "value": [ { "title": "", "url": "/d/dmVtrz-4k/build-details?orgId=1&var-build_id=${__value.raw}\n\n\n" } ] }, { "id": "custom.width", "value": 102 } ] }, { "matcher": { "id": "byName", "options": "name" }, "properties": [ { "id": "custom.width", "value": 75 } ] }, { "matcher": { "id": "byName", "options": "task duration" }, "properties": [ { "id": "custom.width", "value": 100 } ] } ] }, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 31 }, "id": 25, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "task duration" } ] }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT\n bt.id,\n bt.name,\n arch_enum.value AS arch,\n bt.started_at * 1000 AS started,\n bt.finished_at * 1000 AS finished,\n task_duration AS \"task duration\",\n web_node_duration AS \"web node duration\",\n build_node_duration AS \"build node duration\",\n task_duration - web_node_duration - build_node_duration as \"wait time\"\n FROM build_tasks AS bt\n JOIN arch_enum on bt.arch_id = arch_enum.id \n LEFT JOIN \n (\n SELECT\n bt.id,\n bt.finished_at - bt.started_at AS task_duration,\n (SELECT SUM(end_ts - start_ts) \n FROM web_node_stats AS ws \n WHERE ws.build_task_id = bt.id AND stat_name_id=0) AS web_node_duration,\n (SELECT SUM(end_ts - start_ts) \n FROM build_node_stats AS bs \n WHERE bs.build_task_id = bt.id AND stat_name_id=6) AS build_node_duration\n FROM build_tasks AS bt\n WHERE bt.build_id = $build_id AND status_id = 2\n GROUP BY bt.id\n ) as d\n ON bt.id = d.id\n WHERE bt.build_id = $build_id AND status_id = 2", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Completed build tasks", "transformations": [ { "id": "convertFieldType", "options": { "conversions": [ { "destinationType": "time", "targetField": "started" }, { "destinationType": "time", "targetField": "finished" } ], "fields": {} } } ], "type": "table" } ], "title": "Details: build tasks", "type": "row" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 40 }, "id": 39, "panels": [ { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "left", "displayMode": "auto", "filterable": true, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "duration" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "package" }, "properties": [ { "id": "custom.width", "value": 322 } ] }, { "matcher": { "id": "byName", "options": "id" }, "properties": [ { "id": "custom.width", "value": 93 }, { "id": "links", "value": [ { "title": "", "url": "/d/8nFXlkB4z/test-task-details?orgId=1&var-id=${__value.raw}" } ] } ] }, { "matcher": { "id": "byName", "options": "revision" }, "properties": [ { "id": "custom.width", "value": 62 } ] }, { "matcher": { "id": "byName", "options": "build task id" }, "properties": [ { "id": "links", "value": [ { "title": "", "url": "/d/vtQClqxVk/build-task-details?orgId=1&var-build_task=${__value.raw}" } ] } ] } ] }, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 1 }, "id": 41, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "duration" } ] }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n DISTINCT tt.id,\n tt.build_task_id as \"build task id\",\n tt.package_fullname AS package,\n tt.revision,\n enum.value AS \"status\",\n tt.started_at * 1000 AS \"started at\",\n tf.finished_at * 1000 AS \"finished at\", \n tf.finished_at - tt.started_at AS duration\nFROM test_tasks AS tt\nINNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\nINNER JOIN test_tasks_status_enum AS enum\n ON tt.status_id = enum.id\nINNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nINNER JOIN \n (SELECT \n tss.test_task_id, \n MAX(tss.finish_ts) AS finished_at \n FROM test_steps_stats AS tss\n INNER JOIN test_tasks AS tt\n ON tss.test_task_id = tt.id\n INNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\n INNER JOIN builds AS b\n ON bt.build_id = b.id\n WHERE b.id = $build_id\n GROUP BY tss.test_task_id) AS tf\n ON tf.test_task_id = tt.id\nWHERE b.id = $build_id;", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Test tasks", "transformations": [ { "id": "convertFieldType", "options": { "conversions": [ { "destinationType": "time", "targetField": "started at" }, { "destinationType": "time", "targetField": "finished at" } ], "fields": {} } } ], "type": "table" }, { "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "left", "displayMode": "auto", "filterable": true, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "test task id" }, "properties": [ { "id": "custom.width", "value": 159 }, { "id": "links", "value": [ { "title": "", "url": "/d/8nFXlkB4z/test-task-details?orgId=1&var-id=${__value.raw}" } ] } ] }, { "matcher": { "id": "byName", "options": "duration" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "package name" }, "properties": [ { "id": "custom.width", "value": 408 } ] } ] }, "gridPos": { "h": 6, "w": 24, "x": 0, "y": 8 }, "id": 43, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "finished" } ] }, "pluginVersion": "9.3.2", "targets": [ { "cacheDurationSeconds": 300, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "editorMode": "code", "fields": [ { "jsonPath": "" } ], "format": "table", "method": "GET", "queryParams": "", "rawQuery": true, "rawSql": "SELECT \n tss.test_task_id AS \"test task id\", \n tt.package_fullname AS \"package name\",\n enum.value AS \"step name\",\n tss.start_ts * 1000 AS started,\n tss.finish_ts * 1000 AS finished,\n tss.finish_ts - tss.start_ts AS duration\nFROM test_tasks AS tt\nINNER JOIN test_steps_stats AS tss\n ON tt.id = tss.test_task_id\nINNER JOIN test_steps_enum AS enum\n ON tss.stat_name_id = enum.id\nINNER JOIN build_tasks AS bt\n ON tt.build_task_id = bt.id\nINNER JOIN builds AS b\n ON bt.build_id = b.id\nWHERE b.id = $build_id\n", "refId": "A", "sql": { "columns": [ { "parameters": [], "type": "function" } ], "groupBy": [ { "property": { "type": "string" }, "type": "groupBy" } ], "limit": 50 }, "urlPath": "" } ], "title": "Test steps", "transformations": [ { "id": "convertFieldType", "options": { "conversions": [ { "destinationType": "time", "targetField": "started" }, { "destinationType": "time", "targetField": "finished" } ], "fields": {} } } ], "type": "table" } ], "title": "Details: tests", "type": "row" } ], "refresh": false, "schemaVersion": 37, "style": "dark", "tags": [], "templating": { "list": [ { "current": {}, "datasource": { "type": "postgres", "uid": "${DS_POSTGRESQL}" }, "definition": "SELECT id\nFROM builds\nORDER BY id DESC", "hide": 0, "includeAll": false, "multi": false, "name": "build_id", "options": [], "query": "SELECT id\nFROM builds\nORDER BY id DESC", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "type": "query" } ] }, "time": { "from": "2023-03-09T18:59:42.117Z", "to": "2023-03-10T18:59:42.117Z" }, "timepicker": {}, "timezone": "", "title": "Build details", "uid": "dmVtrz-4k", "version": 34, "weekStart": "" }