This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch release-v1.0
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/release-v1.0 by this push:
new ed956e70b fix: update bug retro dashboard (#7904) (#7906)
ed956e70b is described below
commit ed956e70b58d9086ffc406b04b47270f2f97b9c2
Author: Louis.z <[email protected]>
AuthorDate: Fri Aug 16 09:17:01 2024 +0800
fix: update bug retro dashboard (#7904) (#7906)
* fix: update bug retro dashboard
* fix: unify the wording
---------
Co-authored-by: Startrekzky <[email protected]>
---
grafana/dashboards/WeeklyBugRetro.json | 1398 ++++++++++++++++----------------
1 file changed, 711 insertions(+), 687 deletions(-)
diff --git a/grafana/dashboards/WeeklyBugRetro.json
b/grafana/dashboards/WeeklyBugRetro.json
index ab297f140..3587c0bda 100644
--- a/grafana/dashboards/WeeklyBugRetro.json
+++ b/grafana/dashboards/WeeklyBugRetro.json
@@ -18,7 +18,6 @@
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 12,
"links": [],
"liveNow": false,
"panels": [
@@ -40,7 +39,7 @@
"showLineNumbers": false,
"showMiniMap": false
},
- "content": "- Use Cases: This dashboard can be used to track bugs with
metrics such as [Bug Age](https://devlake.apache.org/docs/Metrics/BugAge).\n-
Data Source Required: GitHub
([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional)
required) or Jira
([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional)
required). Transformation is the configu [...]
+ "content": "- Use Cases: This dashboard can be used to track bugs with
metrics such as [Bug Age](https://devlake.apache.org/docs/Metrics/BugAge).\n-
Data Source Required: GitHub ([Scope
Config](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional)
required) or Jira ([Scope
Config](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional)
required). Scope config is the settings to d [...]
"mode": "markdown"
},
"pluginVersion": "11.0.0",
@@ -57,12 +56,47 @@
"title": "Dashboard Introduction",
"type": "text"
},
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 3
+ },
+ "id": 32,
+ "panels": [],
+ "title": "Overall Bug Count",
+ "type": "row"
+ },
{
"datasource": "mysql",
"fieldConfig": {
"defaults": {
"color": {
- "mode": "thresholds"
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "fillOpacity": 46,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -82,12 +116,12 @@
"overrides": []
},
"gridPos": {
- "h": 8,
- "w": 6,
+ "h": 9,
+ "w": 24,
"x": 0,
- "y": 3
+ "y": 4
},
- "id": 6,
+ "id": 2,
"links": [
{
"targetBlank": true,
@@ -96,23 +130,30 @@
}
],
"options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
+ "barRadius": 0,
+ "barWidth": 0.71,
+ "fullHighlight": false,
+ "groupWidth": 0.7,
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
"orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
+ "showValue": "auto",
+ "stacking": "none",
+ "text": {
+ "valueSize": 12
},
- "showPercentChange": false,
- "text": {},
- "textMode": "auto",
- "wideLayout": true
+ "tooltip": {
+ "maxHeight": 600,
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 45,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
@@ -122,7 +163,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(distinct i.id)\nfrom\n issues as i\n
join board_issues bi on i.id = bi.issue_id\n join boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and i.created_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
+ "rawSql": "with bugs as ( \n select \n
DATE_ADD(date(i.created_date), INTERVAL -WEEKDAY(date(i.created_date)) DAY) as
time,\n count(distinct i.id) as bug_count\n from\n issues as i\n\t join
board_issues bi on i.id = bi.issue_id\n\t join boards b on bi.board_id =
b.id\n where \n i.type in (${issue_type})\n and
$__timeFilter(i.created_date)\n and b.id in (${board_id})\n group by time\n
order by time desc\n),\n\ncalendar_date as(\n\tSELECT CAST(($__timeTo [...]
"refId": "A",
"select": [
[
@@ -163,8 +204,8 @@
]
}
],
- "title": "Previous Week New Bug Count",
- "type": "stat"
+ "title": "Weekly New Bugs [Selected Time Range]",
+ "type": "barchart"
},
{
"datasource": "mysql",
@@ -174,23 +215,51 @@
"mode": "palette-classic"
},
"custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "fillOpacity": 46,
+ "gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
+ },
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
}
},
- "mappings": []
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
},
"overrides": []
},
"gridPos": {
- "h": 8,
- "w": 6,
- "x": 6,
- "y": 3
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 13
},
- "id": 26,
+ "id": 20,
"links": [
{
"targetBlank": true,
@@ -199,32 +268,30 @@
}
],
"options": {
- "displayLabels": [
- "name",
- "value"
- ],
+ "barRadius": 0,
+ "barWidth": 0.71,
+ "fullHighlight": false,
+ "groupWidth": 0.7,
"legend": {
+ "calcs": [],
"displayMode": "list",
"placement": "bottom",
- "showLegend": true,
- "values": [
- "percent",
- "value"
- ]
+ "showLegend": true
},
- "pieType": "donut",
- "reduceOptions": {
- "calcs": [],
- "fields": "",
- "values": true
+ "orientation": "auto",
+ "showValue": "auto",
+ "stacking": "none",
+ "text": {
+ "valueSize": 12
},
"tooltip": {
"maxHeight": 600,
- "mode": "multi",
+ "mode": "single",
"sort": "none"
- }
+ },
+ "xTickLabelRotation": 45,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
"targets": [
{
"datasource": "mysql",
@@ -234,7 +301,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n priority,\n count(distinct i.id) as 'Issue
Number'\nfrom\n issues as i\n join board_issues bi on i.id = bi.issue_id\n
join boards b on bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and
i.created_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})\ngroup
by 1",
+ "rawSql": "with bugs as (\n select \n
DATE_ADD(date(i.resolution_date), INTERVAL -WEEKDAY(date(i.resolution_date))
DAY) as time,\n count(distinct i.id) as bug_count\n from\n issues as
i\n\t join board_issues bi on i.id = bi.issue_id\n\t join boards b on
bi.board_id = b.id\n where \n i.type in (${issue_type})\n and status =
'DONE'\n and $__timeFilter(i.resolution_date)\n and b.id in
(${board_id})\n group by time\n order by time desc\n),\n\ncalendar_da [...]
"refId": "A",
"select": [
[
@@ -275,22 +342,37 @@
]
}
],
- "title": "Previous Week New Bug Count by Priority",
- "type": "piechart"
+ "title": "Weekly Closed Bugs [Selected Time Range]",
+ "type": "barchart"
},
{
"datasource": "mysql",
"fieldConfig": {
"defaults": {
"color": {
- "mode": "thresholds"
+ "mode": "palette-classic"
},
"custom": {
- "align": "auto",
- "cellOptions": {
- "type": "auto"
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "fillOpacity": 46,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
},
- "inspect": false
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -307,62 +389,15 @@
]
}
},
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "Issue Number"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 124
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Title"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 640
- },
- {
- "id": "links",
- "value": [
- {
- "targetBlank": true,
- "title": "",
- "url": "${__data.fields.Url}"
- }
- ]
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Url"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
- }
- ]
+ "overrides": []
},
"gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 3
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 23
},
- "id": 4,
+ "id": 21,
"links": [
{
"targetBlank": true,
@@ -371,19 +406,32 @@
}
],
"options": {
- "cellHeight": "sm",
- "footer": {
- "countRows": false,
- "fields": "",
- "reducer": [
- "sum"
+ "barRadius": 0,
+ "barWidth": 0.71,
+ "fullHighlight": false,
+ "groupWidth": 0.7,
+ "legend": {
+ "calcs": [
+ "mean"
],
- "show": false
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
},
- "showHeader": true,
- "sortBy": []
+ "orientation": "auto",
+ "showValue": "auto",
+ "stacking": "none",
+ "text": {
+ "valueSize": 12
+ },
+ "tooltip": {
+ "maxHeight": 600,
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 45,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
@@ -393,7 +441,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n i.issue_key as 'Issue Number',\n i.title as
'Title',\n i.url as 'Url',\n i.creator_name as 'Creator'\nfrom\n issues as
i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id
= b.id\nwhere\n i.type in (${issue_type})\n and i.created_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
+ "rawSql": "with calendar_date as(\n\tSELECT
CAST(($__timeTo()-INTERVAL (H+T+U) DAY) AS date) d\n\tFROM ( SELECT 0
H\n\t\t\tUNION ALL SELECT 100 UNION ALL SELECT 200 UNION ALL SELECT 300\n\t\t)
H CROSS JOIN ( SELECT 0 T\n\t\t\tUNION ALL SELECT 10 UNION ALL SELECT 20
UNION ALL SELECT 30\n\t\t\tUNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL
SELECT 60\n\t\t\tUNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT
90\n\t\t) T CROSS JOIN ( SELECT 0 U\n\t\t\tUNION ALL SEL [...]
"refId": "A",
"select": [
[
@@ -434,8 +482,21 @@
]
}
],
- "title": "Last Week's New Bugs",
- "type": "table"
+ "title": "Total Outstanding Bug Count by Week [Selected Time Range]",
+ "type": "barchart"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 33
+ },
+ "id": 33,
+ "panels": [],
+ "title": "Detailed Bug Info",
+ "type": "row"
},
{
"datasource": "mysql",
@@ -465,9 +526,9 @@
"h": 8,
"w": 6,
"x": 0,
- "y": 11
+ "y": 34
},
- "id": 8,
+ "id": 6,
"links": [
{
"targetBlank": true,
@@ -502,7 +563,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(distinct i.id)\nfrom\n issues as i\n
join board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n and
i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
+ "rawSql": "select\n count(distinct i.id)\nfrom\n issues as i\n
join board_issues bi on i.id = bi.issue_id\n join boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and i.created_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -543,7 +604,7 @@
]
}
],
- "title": "Last Week's Fixed Bugs Count",
+ "title": "Last Week's New Bug Count",
"type": "stat"
},
{
@@ -551,27 +612,16 @@
"fieldConfig": {
"defaults": {
"color": {
- "mode": "thresholds"
+ "mode": "palette-classic"
},
- "decimals": 1,
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "yellow",
- "value": 14
- },
- {
- "color": "red",
- "value": 21
- }
- ]
- }
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": []
},
"overrides": []
},
@@ -579,34 +629,43 @@
"h": 8,
"w": 6,
"x": 6,
- "y": 11
+ "y": 34
},
- "id": 24,
+ "id": 26,
"links": [
{
"targetBlank": true,
- "title": "Bug Age",
- "url": "https://devlake.apache.org/docs/Metrics/BugAge"
+ "title": "Bug Count per 1k Lines of Code",
+ "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
}
],
"options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
+ "displayLabels": [
+ "name",
+ "value"
+ ],
+ "legend": {
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true,
+ "values": [
+ "percent",
+ "value"
+ ]
+ },
+ "pieType": "donut",
"reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
+ "calcs": [],
"fields": "",
- "values": false
+ "values": true
},
- "showPercentChange": false,
- "text": {},
- "textMode": "auto",
- "wideLayout": true
+ "tooltip": {
+ "maxHeight": 600,
+ "mode": "multi",
+ "sort": "none"
+ }
},
- "pluginVersion": "11.0.0",
+ "pluginVersion": "8.0.6",
"targets": [
{
"datasource": "mysql",
@@ -616,7 +675,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n avg(lead_time_minutes / 1440)\nfrom\n issues
as i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin boards b on
bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n
and i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY
AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
+ "rawSql": "select\n priority,\n count(distinct i.id) as 'Issue
Number'\nfrom\n issues as i\n join board_issues bi on i.id = bi.issue_id\n
join boards b on bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and
i.created_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})\ngroup
by 1",
"refId": "A",
"select": [
[
@@ -657,8 +716,8 @@
]
}
],
- "title": "Average Lead Time of Last Week's Resolved Bugs in Days",
- "type": "stat"
+ "title": "Last Week's New Bug Count by Priority",
+ "type": "piechart"
},
{
"datasource": "mysql",
@@ -684,7 +743,7 @@
},
{
"color": "red",
- "value": 21
+ "value": 80
}
]
}
@@ -698,7 +757,7 @@
"properties": [
{
"id": "custom.width",
- "value": 125
+ "value": 124
}
]
},
@@ -710,7 +769,7 @@
"properties": [
{
"id": "custom.width",
- "value": 639
+ "value": 640
},
{
"id": "links",
@@ -735,30 +794,16 @@
"value": true
}
]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Lead Time in Days"
- },
- "properties": [
- {
- "id": "custom.cellOptions",
- "value": {
- "type": "color-text"
- }
- }
- ]
}
]
},
"gridPos": {
- "h": 16,
+ "h": 8,
"w": 12,
"x": 12,
- "y": 11
+ "y": 34
},
- "id": 10,
+ "id": 4,
"links": [
{
"targetBlank": true,
@@ -789,7 +834,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n i.issue_key as 'Issue Number',\n i.title as
'Title',\n lead_time_minutes/1440 as 'Lead Time in Days',\n i.url as
'Url'\nfrom\n issues as i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and status = 'DONE'\n and i.resolution_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
+ "rawSql": "select\n i.issue_key as 'Issue Number',\n i.title as
'Title',\n i.url as 'Url',\n i.creator_name as 'Creator'\nfrom\n issues as
i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id
= b.id\nwhere\n i.type in (${issue_type})\n and i.created_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -830,7 +875,7 @@
]
}
],
- "title": "Last Week's Fixed Bugs",
+ "title": "Last Week's New Bugs",
"type": "table"
},
{
@@ -838,31 +883,8 @@
"fieldConfig": {
"defaults": {
"color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "axisSoftMin": 0,
- "fillOpacity": 80,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineWidth": 1,
- "scaleDistribution": {
- "type": "linear"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
+ "mode": "thresholds"
},
- "decimals": 1,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -882,11 +904,11 @@
},
"gridPos": {
"h": 8,
- "w": 12,
+ "w": 6,
"x": 0,
- "y": 19
+ "y": 42
},
- "id": 23,
+ "id": 8,
"links": [
{
"targetBlank": true,
@@ -895,31 +917,23 @@
}
],
"options": {
- "barRadius": 0,
- "barWidth": 0.3,
- "fullHighlight": false,
- "groupWidth": 0.7,
- "legend": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
"calcs": [
- "mean"
+ "lastNotNull"
],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
+ "fields": "",
+ "values": false
},
- "orientation": "horizontal",
- "showValue": "auto",
- "stacking": "none",
+ "showPercentChange": false,
"text": {},
- "tooltip": {
- "maxHeight": 600,
- "mode": "single",
- "sort": "none"
- },
- "xTickLabelRotation": 0,
- "xTickLabelSpacing": 0
+ "textMode": "auto",
+ "wideLayout": true
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
@@ -929,7 +943,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n concat('#',i.issue_key, ' ', i.title) as
issue_key,\n lead_time_minutes/1440 as lead_time\nfrom\n issues as i\n\tjoin
board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n and
i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})\norder
by lead_time desc\nlimit 10",
+ "rawSql": "select\n count(distinct i.id)\nfrom\n issues as i\n
join board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n and
i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -970,8 +984,8 @@
]
}
],
- "title": "Top 10 Issue Lead Time [Last Week's Resolved Bugs in Days]",
- "type": "barchart"
+ "title": "Last Week's Fixed Bugs Count",
+ "type": "stat"
},
{
"datasource": "mysql",
@@ -980,6 +994,7 @@
"color": {
"mode": "thresholds"
},
+ "decimals": 1,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -988,9 +1003,13 @@
"color": "green",
"value": null
},
+ {
+ "color": "yellow",
+ "value": 14
+ },
{
"color": "red",
- "value": 80
+ "value": 21
}
]
}
@@ -998,17 +1017,17 @@
"overrides": []
},
"gridPos": {
- "h": 9,
+ "h": 8,
"w": 6,
- "x": 0,
- "y": 27
+ "x": 6,
+ "y": 42
},
- "id": 16,
+ "id": 24,
"links": [
{
"targetBlank": true,
- "title": "Bug Count per 1k Lines of Code",
- "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
+ "title": "Bug Age",
+ "url": "https://devlake.apache.org/docs/Metrics/BugAge"
}
],
"options": {
@@ -1038,7 +1057,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(distinct i.id)\nfrom \n issues i\n\tjoin
board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and i.status != 'DONE'\n and b.id
in (${board_id})",
+ "rawSql": "select\n avg(lead_time_minutes / 1440)\nfrom\n issues
as i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin boards b on
bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n
and i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY
AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -1079,7 +1098,7 @@
]
}
],
- "title": "Total Number of Outstanding Bugs",
+ "title": "Average Lead Time of Last Week's Resolved Bugs in Days",
"type": "stat"
},
{
@@ -1089,6 +1108,13 @@
"color": {
"mode": "thresholds"
},
+ "custom": {
+ "align": "auto",
+ "cellOptions": {
+ "type": "auto"
+ },
+ "inspect": false
+ },
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -1099,54 +1125,112 @@
},
{
"color": "red",
- "value": 30
+ "value": 21
}
]
}
},
- "overrides": []
- },
- "gridPos": {
- "h": 9,
- "w": 6,
- "x": 6,
- "y": 27
- },
- "id": 25,
- "links": [
- {
- "targetBlank": true,
- "title": "Bug Count per 1k Lines of Code",
- "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
- }
- ],
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Issue Number"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 125
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Title"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 639
+ },
+ {
+ "id": "links",
+ "value": [
+ {
+ "targetBlank": true,
+ "title": "",
+ "url": "${__data.fields.Url}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Url"
+ },
+ "properties": [
+ {
+ "id": "custom.hidden",
+ "value": true
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Lead Time in Days"
+ },
+ "properties": [
+ {
+ "id": "custom.cellOptions",
+ "value": {
+ "type": "color-text"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 16,
+ "w": 12,
+ "x": 12,
+ "y": 42
+ },
+ "id": 10,
+ "links": [
+ {
+ "targetBlank": true,
+ "title": "Bug Count per 1k Lines of Code",
+ "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
+ }
+ ],
+ "options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
},
- "showPercentChange": false,
- "text": {},
- "textMode": "auto",
- "wideLayout": true
+ "showHeader": true,
+ "sortBy": []
},
"pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select \n avg((TIMESTAMPDIFF(MINUTE,
i.created_date,NOW()))/1440)\nfrom \n issues i\n\tjoin board_issues bi on i.id
= bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and b.id in (${board_id})",
+ "rawSql": "select\n i.issue_key as 'Issue Number',\n i.title as
'Title',\n lead_time_minutes/1440 as 'Lead Time in Days',\n i.url as
'Url'\nfrom\n issues as i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and status = 'DONE'\n and i.resolution_date BETWEEN
curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL
WEEKDAY(curdate()) DAY\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -1158,6 +1242,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1170,23 +1271,39 @@
]
}
],
- "title": "Average Age of Outstanding Bugs in Days",
- "type": "stat"
+ "title": "Last Week's Fixed Bugs",
+ "type": "table"
},
{
"datasource": "mysql",
"fieldConfig": {
"defaults": {
"color": {
- "mode": "thresholds"
+ "mode": "palette-classic"
},
"custom": {
- "align": "auto",
- "cellOptions": {
- "type": "auto"
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "axisSoftMin": 0,
+ "fillOpacity": 80,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
},
- "inspect": false
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
+ "decimals": 1,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -1197,105 +1314,137 @@
},
{
"color": "red",
- "value": 30
+ "value": 80
}
]
}
},
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "Issue Number"
- },
- "properties": [
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 50
+ },
+ "id": 23,
+ "links": [
+ {
+ "targetBlank": true,
+ "title": "Bug Count per 1k Lines of Code",
+ "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
+ }
+ ],
+ "options": {
+ "barRadius": 0,
+ "barWidth": 0.3,
+ "fullHighlight": false,
+ "groupWidth": 0.7,
+ "legend": {
+ "calcs": [
+ "mean"
+ ],
+ "displayMode": "list",
+ "placement": "bottom",
+ "showLegend": true
+ },
+ "orientation": "horizontal",
+ "showValue": "auto",
+ "stacking": "none",
+ "text": {},
+ "tooltip": {
+ "maxHeight": 600,
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
+ },
+ "pluginVersion": "8.0.6",
+ "targets": [
+ {
+ "datasource": "mysql",
+ "editorMode": "code",
+ "format": "table",
+ "group": [],
+ "metricColumn": "none",
+ "queryType": "randomWalk",
+ "rawQuery": true,
+ "rawSql": "select\n concat('#',i.issue_key, ' ', i.title) as
issue_key,\n lead_time_minutes/1440 as lead_time\nfrom\n issues as i\n\tjoin
board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and status = 'DONE'\n and
i.resolution_date BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND
curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in (${board_id})\norder
by lead_time desc\nlimit 10",
+ "refId": "A",
+ "select": [
+ [
{
- "id": "custom.width",
- "value": 121
+ "params": [
+ "script_version"
+ ],
+ "type": "column"
}
]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Title"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 641
- },
+ ],
+ "sql": {
+ "columns": [
{
- "id": "links",
- "value": [
- {
- "targetBlank": true,
- "title": "",
- "url": "${__data.fields.Url}"
- }
- ]
+ "parameters": [],
+ "type": "function"
}
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Queue Time in Days"
- },
- "properties": [
+ ],
+ "groupBy": [
{
- "id": "custom.cellOptions",
- "value": {
- "type": "color-text"
- }
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
}
- ]
+ ],
+ "limit": 50
},
- {
- "matcher": {
- "id": "byName",
- "options": "Url"
- },
- "properties": [
- {
- "id": "custom.hidden",
- "value": true
- }
- ]
+ "table": "_devlake_migration_history",
+ "timeColumn": "created_at",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "title": "Top 10 Issue Lead Time [Last Week's Resolved Bugs in Days]",
+ "type": "barchart"
+ },
+ {
+ "datasource": "mysql",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
},
- {
- "matcher": {
- "id": "byName",
- "options": "Priority"
- },
- "properties": [
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
{
- "id": "custom.width",
- "value": 104
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Severity"
- },
- "properties": [
+ "color": "green",
+ "value": null
+ },
{
- "id": "custom.width",
- "value": 112
+ "color": "red",
+ "value": 80
}
]
}
- ]
+ },
+ "overrides": []
},
"gridPos": {
"h": 9,
- "w": 12,
- "x": 12,
- "y": 27
+ "w": 6,
+ "x": 0,
+ "y": 58
},
- "id": 14,
+ "id": 16,
"links": [
{
"targetBlank": true,
@@ -1304,17 +1453,21 @@
}
],
"options": {
- "cellHeight": "sm",
- "footer": {
- "countRows": false,
- "fields": "",
- "reducer": [
- "sum"
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
],
- "show": false
+ "fields": "",
+ "values": false
},
- "showHeader": true,
- "sortBy": []
+ "showPercentChange": false,
+ "text": {},
+ "textMode": "auto",
+ "wideLayout": true
},
"pluginVersion": "11.0.0",
"targets": [
@@ -1326,7 +1479,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select \n i.issue_key as 'Issue Number',\n i.title as
'Title',\n priority as 'Priority',\n severity as 'Severity',\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in Days',\n
i.url as 'Url'\nfrom \n issues i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and b.id in (${board_id})\n and
priority in (${priority})\norder by 'Queue Time' desc",
+ "rawSql": "select\n count(distinct i.id)\nfrom \n issues i\n\tjoin
board_issues bi on i.id = bi.issue_id\n\tjoin boards b on bi.board_id =
b.id\nwhere\n i.type in (${issue_type})\n and i.status != 'DONE'\n and b.id
in (${board_id})",
"refId": "A",
"select": [
[
@@ -1367,37 +1520,15 @@
]
}
],
- "title": "Outstanding Bugs Sort by Queue Time [All History]",
- "type": "table"
+ "title": "Total Number of Outstanding Bugs",
+ "type": "stat"
},
{
"datasource": "mysql",
"fieldConfig": {
"defaults": {
"color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "Queue Time in Days",
- "axisPlacement": "auto",
- "axisSoftMin": 0,
- "fillOpacity": 80,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineWidth": 1,
- "scaleDistribution": {
- "type": "linear"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
+ "mode": "thresholds"
},
"mappings": [],
"thresholds": {
@@ -1409,7 +1540,7 @@
},
{
"color": "red",
- "value": 21
+ "value": 30
}
]
}
@@ -1418,55 +1549,45 @@
},
"gridPos": {
"h": 9,
- "w": 12,
- "x": 0,
- "y": 36
+ "w": 6,
+ "x": 6,
+ "y": 58
},
- "id": 18,
+ "id": 25,
"links": [
{
"targetBlank": true,
- "title": "Bug Age",
- "url": "https://devlake.apache.org/docs/Metrics/BugAge"
+ "title": "Bug Count per 1k Lines of Code",
+ "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
}
],
"options": {
- "barRadius": 0,
- "barWidth": 0.3,
- "fullHighlight": false,
- "groupWidth": 0.7,
- "legend": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
"calcs": [
- "mean",
- "max"
+ "lastNotNull"
],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
+ "fields": "",
+ "values": false
},
- "orientation": "auto",
- "showValue": "always",
- "stacking": "none",
+ "showPercentChange": false,
"text": {},
- "tooltip": {
- "maxHeight": 600,
- "mode": "multi",
- "sort": "none"
- },
- "xTickLabelRotation": 45,
- "xTickLabelSpacing": 100
+ "textMode": "auto",
+ "wideLayout": true
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
- "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select \n concat('#', i.issue_key) as issue_key,\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in
Days'\nfrom \n issues i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin
boards b on bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and
i.status != 'DONE'\n and b.id in (${board_id})\norder by 2 desc\nlimit 100",
+ "rawSql": "select \n avg((TIMESTAMPDIFF(MINUTE,
i.created_date,NOW()))/1440)\nfrom \n issues i\n\tjoin board_issues bi on i.id
= bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and b.id in (${board_id})",
"refId": "A",
"select": [
[
@@ -1478,23 +1599,6 @@
}
]
],
- "sql": {
- "columns": [
- {
- "parameters": [],
- "type": "function"
- }
- ],
- "groupBy": [
- {
- "property": {
- "type": "string"
- },
- "type": "groupBy"
- }
- ],
- "limit": 50
- },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1507,8 +1611,8 @@
]
}
],
- "title": "Top 100 Bug Queue Time in Days [Outstanding Bugs]",
- "type": "barchart"
+ "title": "Average Age of Outstanding Bugs in Days",
+ "type": "stat"
},
{
"datasource": "mysql",
@@ -1534,7 +1638,7 @@
},
{
"color": "red",
- "value": 7
+ "value": 30
}
]
}
@@ -1608,7 +1712,7 @@
"properties": [
{
"id": "custom.width",
- "value": 103
+ "value": 104
}
]
},
@@ -1618,148 +1722,21 @@
"options": "Severity"
},
"properties": [
- {
- "id": "custom.width",
- "value": 112
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 12,
- "y": 36
- },
- "id": 31,
- "links": [
- {
- "targetBlank": true,
- "title": "Bug Age",
- "url": "https://devlake.apache.org/docs/Metrics/BugAge"
- }
- ],
- "options": {
- "cellHeight": "sm",
- "footer": {
- "countRows": false,
- "fields": "",
- "reducer": [
- "sum"
- ],
- "show": false
- },
- "showHeader": true,
- "sortBy": []
- },
- "pluginVersion": "11.0.0",
- "targets": [
- {
- "datasource": "mysql",
- "editorMode": "code",
- "format": "table",
- "group": [],
- "metricColumn": "none",
- "queryType": "randomWalk",
- "rawQuery": true,
- "rawSql": "select \n i.issue_key as 'Issue Number',\n i.title as
'Title',\n priority as 'Priority',\n severity as 'Severity',\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in Days',\n
i.url as 'Url'\nfrom \n issues i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and i.assignee_name = ''\n and
b.id in (${board_id})\norder by 'Queue Time' desc",
- "refId": "A",
- "select": [
- [
- {
- "params": [
- "script_version"
- ],
- "type": "column"
- }
- ]
- ],
- "sql": {
- "columns": [
- {
- "parameters": [],
- "type": "function"
- }
- ],
- "groupBy": [
- {
- "property": {
- "type": "string"
- },
- "type": "groupBy"
- }
- ],
- "limit": 50
- },
- "table": "_devlake_migration_history",
- "timeColumn": "created_at",
- "timeColumnType": "timestamp",
- "where": [
- {
- "name": "$__timeFilter",
- "params": [],
- "type": "macro"
- }
- ]
- }
- ],
- "title": "Bugs to be Triaged Sort by Queue Time [All History]",
- "type": "table"
- },
- {
- "datasource": "mysql",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "axisSoftMin": 0,
- "fillOpacity": 46,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineWidth": 1,
- "scaleDistribution": {
- "type": "linear"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
+ {
+ "id": "custom.width",
+ "value": 112
}
]
}
- },
- "overrides": []
+ ]
},
"gridPos": {
"h": 9,
- "w": 24,
- "x": 0,
- "y": 45
+ "w": 12,
+ "x": 12,
+ "y": 58
},
- "id": 2,
+ "id": 14,
"links": [
{
"targetBlank": true,
@@ -1768,30 +1745,19 @@
}
],
"options": {
- "barRadius": 0,
- "barWidth": 0.71,
- "fullHighlight": false,
- "groupWidth": 0.7,
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "orientation": "auto",
- "showValue": "auto",
- "stacking": "none",
- "text": {
- "valueSize": 12
- },
- "tooltip": {
- "maxHeight": 600,
- "mode": "single",
- "sort": "none"
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
},
- "xTickLabelRotation": 45,
- "xTickLabelSpacing": 0
+ "showHeader": true,
+ "sortBy": []
},
+ "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
@@ -1801,7 +1767,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with bugs as ( \n select \n
DATE_ADD(date(i.created_date), INTERVAL -WEEKDAY(date(i.created_date)) DAY) as
time,\n count(distinct i.id) as bug_count\n from\n issues as i\n\t join
board_issues bi on i.id = bi.issue_id\n\t join boards b on bi.board_id =
b.id\n where \n i.type in (${issue_type})\n and
$__timeFilter(i.created_date)\n and b.id in (${board_id})\n group by time\n
order by time desc\n),\n\ncalendar_date as(\n\tSELECT CAST(($__timeTo [...]
+ "rawSql": "select \n i.issue_key as 'Issue Number',\n i.title as
'Title',\n priority as 'Priority',\n severity as 'Severity',\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in Days',\n
i.url as 'Url'\nfrom \n issues i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and b.id in (${board_id})\n and
priority in (${priority})\norder by 'Queue Time' desc",
"refId": "A",
"select": [
[
@@ -1842,8 +1808,8 @@
]
}
],
- "title": "Weekly New Bugs [Selected Time Range]",
- "type": "barchart"
+ "title": "Outstanding Bugs Sort by Queue Time [All History]",
+ "type": "table"
},
{
"datasource": "mysql",
@@ -1856,10 +1822,10 @@
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
- "axisLabel": "",
+ "axisLabel": "Queue Time in Days",
"axisPlacement": "auto",
"axisSoftMin": 0,
- "fillOpacity": 46,
+ "fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"legend": false,
@@ -1884,7 +1850,7 @@
},
{
"color": "red",
- "value": 80
+ "value": 21
}
]
}
@@ -1892,44 +1858,46 @@
"overrides": []
},
"gridPos": {
- "h": 10,
- "w": 24,
+ "h": 9,
+ "w": 12,
"x": 0,
- "y": 54
+ "y": 67
},
- "id": 20,
+ "id": 18,
"links": [
{
"targetBlank": true,
- "title": "Bug Count per 1k Lines of Code",
- "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
+ "title": "Bug Age",
+ "url": "https://devlake.apache.org/docs/Metrics/BugAge"
}
],
"options": {
"barRadius": 0,
- "barWidth": 0.71,
+ "barWidth": 0.3,
"fullHighlight": false,
"groupWidth": 0.7,
"legend": {
- "calcs": [],
+ "calcs": [
+ "mean",
+ "max"
+ ],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"orientation": "auto",
- "showValue": "auto",
+ "showValue": "always",
"stacking": "none",
- "text": {
- "valueSize": 12
- },
+ "text": {},
"tooltip": {
"maxHeight": 600,
- "mode": "single",
+ "mode": "multi",
"sort": "none"
},
"xTickLabelRotation": 45,
- "xTickLabelSpacing": 0
+ "xTickLabelSpacing": 100
},
+ "pluginVersion": "8.0.6",
"targets": [
{
"datasource": "mysql",
@@ -1939,7 +1907,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with bugs as (\n select \n
DATE_ADD(date(i.resolution_date), INTERVAL -WEEKDAY(date(i.resolution_date))
DAY) as time,\n count(distinct i.id) as bug_count\n from\n issues as
i\n\t join board_issues bi on i.id = bi.issue_id\n\t join boards b on
bi.board_id = b.id\n where \n i.type in (${issue_type})\n and status =
'DONE'\n and $__timeFilter(i.resolution_date)\n and b.id in
(${board_id})\n group by time\n order by time desc\n),\n\ncalendar_da [...]
+ "rawSql": "select \n concat('#', i.issue_key) as issue_key,\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in
Days'\nfrom \n issues i\n\tjoin board_issues bi on i.id = bi.issue_id\n\tjoin
boards b on bi.board_id = b.id\nwhere\n i.type in (${issue_type})\n and
i.status != 'DONE'\n and b.id in (${board_id})\norder by 2 desc\nlimit 100",
"refId": "A",
"select": [
[
@@ -1980,7 +1948,7 @@
]
}
],
- "title": "Weekly Closed Bugs [Selected Time Range]",
+ "title": "Top 100 Bug Queue Time in Days [Outstanding Bugs]",
"type": "barchart"
},
{
@@ -1988,29 +1956,14 @@
"fieldConfig": {
"defaults": {
"color": {
- "mode": "palette-classic"
+ "mode": "thresholds"
},
"custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "axisSoftMin": 0,
- "fillOpacity": 46,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineWidth": 1,
- "scaleDistribution": {
- "type": "linear"
+ "align": "auto",
+ "cellOptions": {
+ "type": "auto"
},
- "thresholdsStyle": {
- "mode": "off"
- }
+ "inspect": false
},
"mappings": [],
"thresholds": {
@@ -2022,54 +1975,126 @@
},
{
"color": "red",
- "value": 80
+ "value": 7
}
]
}
},
- "overrides": []
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Issue Number"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 121
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Title"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 641
+ },
+ {
+ "id": "links",
+ "value": [
+ {
+ "targetBlank": true,
+ "title": "",
+ "url": "${__data.fields.Url}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Queue Time in Days"
+ },
+ "properties": [
+ {
+ "id": "custom.cellOptions",
+ "value": {
+ "type": "color-text"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Url"
+ },
+ "properties": [
+ {
+ "id": "custom.hidden",
+ "value": true
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Priority"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 103
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Severity"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 112
+ }
+ ]
+ }
+ ]
},
"gridPos": {
- "h": 10,
- "w": 24,
- "x": 0,
- "y": 64
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 67
},
- "id": 21,
+ "id": 31,
"links": [
{
"targetBlank": true,
- "title": "Bug Count per 1k Lines of Code",
- "url":
"https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode"
+ "title": "Bug Age",
+ "url": "https://devlake.apache.org/docs/Metrics/BugAge"
}
],
"options": {
- "barRadius": 0,
- "barWidth": 0.71,
- "fullHighlight": false,
- "groupWidth": 0.7,
- "legend": {
- "calcs": [
- "mean"
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "orientation": "auto",
- "showValue": "auto",
- "stacking": "none",
- "text": {
- "valueSize": 12
- },
- "tooltip": {
- "maxHeight": 600,
- "mode": "single",
- "sort": "none"
+ "show": false
},
- "xTickLabelRotation": 45,
- "xTickLabelSpacing": 0
+ "showHeader": true,
+ "sortBy": []
},
+ "pluginVersion": "11.0.0",
"targets": [
{
"datasource": "mysql",
@@ -2079,7 +2104,7 @@
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with calendar_date as(\n\tSELECT
CAST(($__timeTo()-INTERVAL (H+T+U) DAY) AS date) d\n\tFROM ( SELECT 0
H\n\t\t\tUNION ALL SELECT 100 UNION ALL SELECT 200 UNION ALL SELECT 300\n\t\t)
H CROSS JOIN ( SELECT 0 T\n\t\t\tUNION ALL SELECT 10 UNION ALL SELECT 20
UNION ALL SELECT 30\n\t\t\tUNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL
SELECT 60\n\t\t\tUNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT
90\n\t\t) T CROSS JOIN ( SELECT 0 U\n\t\t\tUNION ALL SEL [...]
+ "rawSql": "select \n i.issue_key as 'Issue Number',\n i.title as
'Title',\n priority as 'Priority',\n severity as 'Severity',\n
(TIMESTAMPDIFF(MINUTE, i.created_date,NOW()))/1440 as 'Queue Time in Days',\n
i.url as 'Url'\nfrom \n issues i\n\tjoin board_issues bi on i.id =
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in
(${issue_type})\n and i.status != 'DONE'\n and i.assignee_name = ''\n and
b.id in (${board_id})\norder by 'Queue Time' desc",
"refId": "A",
"select": [
[
@@ -2120,8 +2145,8 @@
]
}
],
- "title": "Total Outstanding Bug Count by Week [Selected Time Range]",
- "type": "barchart"
+ "title": "Bugs to be Triaged Sort by Queue Time [All History]",
+ "type": "table"
},
{
"datasource": {
@@ -2132,7 +2157,7 @@
"h": 2,
"w": 24,
"x": 0,
- "y": 74
+ "y": 76
},
"id": 30,
"options": {
@@ -2168,7 +2193,7 @@
"list": [
{
"current": {
- "selected": false,
+ "selected": true,
"text": "All",
"value": "$__all"
},
@@ -2210,7 +2235,7 @@
},
{
"current": {
- "selected": false,
+ "selected": true,
"text": [
"All"
],
@@ -2239,7 +2264,6 @@
"from": "now-6M",
"to": "now"
},
- "timeRangeUpdatedDuringEditOrView": false,
"timepicker": {},
"timezone": "utc",
"title": "Weekly Bug Retro",