This is an automated email from the ASF dual-hosted git repository.

zky 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 a0e6383cc fix: engineering overview dashboard (#7717) (#7718)
a0e6383cc is described below

commit a0e6383ccf065c46649692e84a32d5b1f713dc1f
Author: Louis.z <[email protected]>
AuthorDate: Thu Jul 11 14:58:14 2024 +0800

    fix: engineering overview dashboard (#7717) (#7718)
    
    * fix: engineering overview dashboard
    
    * fix: dynamically change the panel title value
    
    * fix: the time range filter of critical defects
    
    ---------
    
    Co-authored-by: Startrekzky <[email protected]>
---
 grafana/dashboards/EngineeringOverview.json | 488 +++++++++++++++++-----------
 1 file changed, 304 insertions(+), 184 deletions(-)

diff --git a/grafana/dashboards/EngineeringOverview.json 
b/grafana/dashboards/EngineeringOverview.json
index 3ebdfe55b..768231de4 100644
--- a/grafana/dashboards/EngineeringOverview.json
+++ b/grafana/dashboards/EngineeringOverview.json
@@ -18,7 +18,7 @@
   "editable": true,
   "fiscalYearStartMonth": 0,
   "graphTooltip": 0,
-  "id": 16,
+  "id": 24,
   "links": [],
   "liveNow": false,
   "panels": [
@@ -34,7 +34,6 @@
         "y": 0
       },
       "id": 32,
-      "links": [],
       "options": {
         "code": {
           "language": "plaintext",
@@ -44,7 +43,7 @@
         "content": "- Use Cases: This dashboard is to overview the Git and 
project management metrics.\n- Data Source Required: Jira + GitHub, or Jira + 
GitLab.",
         "mode": "markdown"
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": {
@@ -93,7 +92,6 @@
         "y": 3
       },
       "id": 8,
-      "links": [],
       "options": {
         "colorMode": "value",
         "graphMode": "area",
@@ -106,10 +104,12 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
@@ -119,7 +119,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\n\tjoin project_mapping pm on b.id = pm.row_id\nwhere\n  pm.project_name 
in (${project}) and\n  i.priority in (${priority}) and\n  i.type = 'BUG' and\n  
date(i.created_date) between STR_TO_DATE('$month','%Y-%m-%d') and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH - INTERVAL 1 DAY;",
+          "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\n\tjoin project_mapping pm on b.id = pm.row_id\nwhere\n  pm.project_name 
in (${project}) and\n  i.priority in (${priority}) and\n  i.type = 'BUG' and\n  
date(i.created_date) between STR_TO_DATE('$month','%Y-%m-%d') and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH;",
           "refId": "A",
           "select": [
             [
@@ -160,7 +160,7 @@
           ]
         }
       ],
-      "title": "Critical Defects Identified",
+      "title": "Critical Defects Identified [in $month]",
       "type": "stat"
     },
     {
@@ -171,6 +171,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -215,14 +216,15 @@
         "y": 3
       },
       "id": 22,
-      "links": [],
       "options": {
         "barRadius": 0,
         "barWidth": 0.46,
         "fullHighlight": false,
         "groupWidth": 0.7,
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
@@ -234,6 +236,7 @@
           "valueSize": 12
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         },
@@ -318,7 +321,7 @@
         "overrides": []
       },
       "gridPos": {
-        "h": 6,
+        "h": 8,
         "w": 6,
         "x": 0,
         "y": 11
@@ -343,18 +346,21 @@
           "fields": "/^value$/",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
+          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "rawQuery": true,
-          "rawSql": "select \r\n  avg(lead_time_minutes/1440) as value\r\nfrom 
issues i\r\n\tjoin board_issues bi on i.id = bi.issue_id\r\n\tjoin boards b on 
bi.board_id = b.id\r\n\tjoin project_mapping pm on b.id = pm.row_id\r\nwhere 
\r\n  pm.project_name in (${project}) and\r\n  i.type in (${type})\r\n  and 
i.status = 'DONE'\r\n  and $__timeFilter(i.resolution_date)",
+          "rawSql": "select \r\n  avg(lead_time_minutes/1440) as value\r\nfrom 
issues i\r\n\tjoin board_issues bi on i.id = bi.issue_id\r\n\tjoin boards b on 
bi.board_id = b.id\r\n\tjoin project_mapping pm on b.id = pm.row_id\r\nwhere 
\r\n  pm.project_name in (${project}) and\r\n  i.type in (${type})\r\n  and 
i.status = 'DONE'\r\n  and i.resolution_date between 
STR_TO_DATE('$month','%Y-%m-%d') and STR_TO_DATE('$month','%Y-%m-%d') + 
INTERVAL 1 MONTH;",
           "refId": "A",
           "select": [
             [
@@ -366,6 +372,23 @@
               }
             ]
           ],
+          "sql": {
+            "columns": [
+              {
+                "parameters": [],
+                "type": "function"
+              }
+            ],
+            "groupBy": [
+              {
+                "property": {
+                  "type": "string"
+                },
+                "type": "groupBy"
+              }
+            ],
+            "limit": 50
+          },
           "table": "ca_analysis",
           "timeColumn": "create_time",
           "timeColumnType": "timestamp",
@@ -378,7 +401,7 @@
           ]
         }
       ],
-      "title": "Mean Issue Lead Time in Days [Issues Resolved in Select Time 
Range]",
+      "title": "Mean Issue Lead Time in Days [Issues Resolved in $month]",
       "type": "stat"
     },
     {
@@ -390,6 +413,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "Lead Time(days)",
@@ -429,7 +453,7 @@
         "overrides": []
       },
       "gridPos": {
-        "h": 6,
+        "h": 8,
         "w": 18,
         "x": 6,
         "y": 11
@@ -449,7 +473,9 @@
         "fullHighlight": false,
         "groupWidth": 0.7,
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
@@ -461,6 +487,7 @@
           "valueSize": 12
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         },
@@ -534,10 +561,9 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 17
+        "y": 19
       },
       "id": 14,
-      "links": [],
       "options": {
         "colorMode": "value",
         "graphMode": "area",
@@ -550,19 +576,22 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
+          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select\n  count(distinct author_name)\nfrom\n  commits 
c\n  join repo_commits rc on c.sha = rc.commit_sha\n  join project_mapping pm 
on rc.repo_id = pm.row_id\nwhere\n  date(authored_date) between\n    
STR_TO_DATE('$month','%Y-%m-%d') and\n    STR_TO_DATE('$month','%Y-%m-%d') + 
INTERVAL 1 MONTH - INTERVAL 1 DAY and\n    pm.project_name in (${project});",
+          "rawSql": "select\n  count(distinct author_name)\nfrom\n  commits 
c\n  join repo_commits rc on c.sha = rc.commit_sha\n  join project_mapping pm 
on rc.repo_id = pm.row_id and pm.table = 'repos' \nwhere\n  date(authored_date) 
between STR_TO_DATE('$month','%Y-%m-%d') and STR_TO_DATE('$month','%Y-%m-%d') + 
INTERVAL 1 MONTH\n  and pm.project_name in (${project})",
           "refId": "A",
           "select": [
             [
@@ -574,6 +603,23 @@
               }
             ]
           ],
+          "sql": {
+            "columns": [
+              {
+                "parameters": [],
+                "type": "function"
+              }
+            ],
+            "groupBy": [
+              {
+                "property": {
+                  "type": "string"
+                },
+                "type": "groupBy"
+              }
+            ],
+            "limit": 50
+          },
           "table": "_devlake_blueprints",
           "timeColumn": "created_at",
           "timeColumnType": "timestamp",
@@ -586,7 +632,7 @@
           ]
         }
       ],
-      "title": "Number of Developers",
+      "title": "Number of Developers [in $month]",
       "type": "stat"
     },
     {
@@ -597,6 +643,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -638,17 +685,18 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 17
+        "y": 19
       },
       "id": 24,
-      "links": [],
       "options": {
         "barRadius": 0,
         "barWidth": 0.5,
         "fullHighlight": false,
         "groupWidth": 0.7,
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
@@ -660,6 +708,7 @@
           "valueSize": 12
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         },
@@ -670,12 +719,13 @@
       "targets": [
         {
           "datasource": "mysql",
+          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "with _developers as(\n  select\n    
DATE_ADD(date(c.authored_date), INTERVAL -DAY(date(c.authored_date))+1 DAY) as 
time,\n    count(distinct author_name) as developer_count\n  from\n    commits 
c\n    join repo_commits rc on c.sha = rc.commit_sha\n    join project_mapping 
pm on rc.repo_id = pm.row_id\n  where\n    $__timeFilter(c.authored_date)\n    
and c.authored_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL 
-DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n    an [...]
+          "rawSql": "with _developers as(\n  select\n    
DATE_ADD(date(c.authored_date), INTERVAL -DAY(date(c.authored_date))+1 DAY) as 
time,\n    count(distinct author_name) as developer_count\n  from\n    commits 
c\n    join repo_commits rc on c.sha = rc.commit_sha\n    join project_mapping 
pm on rc.repo_id = pm.row_id and pm.table = 'repos' \n  where\n    
$__timeFilter(c.authored_date)\n    and c.authored_date >= 
DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), IN [...]
           "refId": "A",
           "select": [
             [
@@ -687,6 +737,23 @@
               }
             ]
           ],
+          "sql": {
+            "columns": [
+              {
+                "parameters": [],
+                "type": "function"
+              }
+            ],
+            "groupBy": [
+              {
+                "property": {
+                  "type": "string"
+                },
+                "type": "groupBy"
+              }
+            ],
+            "limit": 50
+          },
           "table": "_devlake_blueprints",
           "timeColumn": "created_at",
           "timeColumnType": "timestamp",
@@ -736,7 +803,7 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 25
+        "y": 27
       },
       "id": 6,
       "links": [
@@ -758,10 +825,12 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
@@ -771,7 +840,7 @@
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "with _num_issues_with_sprint_updated as (\n  select\n    
NULLIF(COUNT(DISTINCT i.id), 0) AS num_issues_with_sprint_updated\n  from\n    
issues i\n    join board_issues bi on i.id = bi.issue_id\n\t  join boards b on 
bi.board_id = b.id\n\t  join project_mapping pm on b.id = pm.row_id\n    join 
issue_changelogs c on i.id = c.issue_id\n  where\n    pm.project_name in 
(${project}) and\n    c.field_name = 'Sprint' and\n    c.original_from_value != 
'' and\n    c.original_to [...]
+          "rawSql": "with _num_issues_with_sprint_updated as (\n  select\n    
NULLIF(COUNT(DISTINCT i.id), 0) AS num_issues_with_sprint_updated\n  from\n    
issues i\n    join board_issues bi on i.id = bi.issue_id\n\t  join boards b on 
bi.board_id = b.id\n\t  join project_mapping pm on b.id = pm.row_id\n    join 
issue_changelogs c on i.id = c.issue_id\n  where\n    pm.project_name in 
(${project}) and\n    c.field_name = 'Sprint' and\n    c.original_from_value != 
'' and\n    c.original_to [...]
           "refId": "A",
           "select": [
             [
@@ -812,7 +881,7 @@
           ]
         }
       ],
-      "title": "On-time Delivery",
+      "title": "On-time Delivery [in $month]",
       "type": "stat"
     },
     {
@@ -824,6 +893,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -837,6 +907,7 @@
               "tooltip": false,
               "viz": false
             },
+            "insertNulls": false,
             "lineInterpolation": "linear",
             "lineWidth": 1,
             "pointSize": 10,
@@ -875,7 +946,7 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 25
+        "y": 27
       },
       "id": 25,
       "links": [
@@ -887,12 +958,15 @@
       ],
       "options": {
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         }
@@ -980,7 +1054,7 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 33
+        "y": 35
       },
       "id": 4,
       "links": [
@@ -1002,10 +1076,12 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
@@ -1015,7 +1091,7 @@
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select\n  count(distinct pr.id)\nfrom\n  pull_requests 
pr\n  join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 
'repos' \nwhere\n  pr.merged_date is not null \n  and date(pr.merged_date) 
between\n    STR_TO_DATE('$month','%Y-%m-%d')\n  and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH - INTERVAL 1 DAY \n  and 
pm.project_name in (${project});",
+          "rawSql": "select\n  count(distinct pr.id)\nfrom\n  pull_requests 
pr\n  join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 
'repos' \nwhere\n  pr.merged_date is not null \n  and date(pr.merged_date) 
between\n    STR_TO_DATE('$month','%Y-%m-%d')\n  and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH\n  and pm.project_name in 
(${project});",
           "refId": "A",
           "select": [
             [
@@ -1056,7 +1132,7 @@
           ]
         }
       ],
-      "title": "PRs merged",
+      "title": "PRs merged [in $month]",
       "type": "stat"
     },
     {
@@ -1068,6 +1144,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -1109,7 +1186,7 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 33
+        "y": 35
       },
       "id": 26,
       "links": [
@@ -1125,7 +1202,9 @@
         "fullHighlight": false,
         "groupWidth": 0.7,
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
@@ -1137,6 +1216,7 @@
           "valueSize": 12
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         },
@@ -1230,7 +1310,7 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 41
+        "y": 43
       },
       "id": 16,
       "links": [
@@ -1252,10 +1332,12 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
@@ -1265,7 +1347,7 @@
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select \n  100*count(distinct case when pr.id in (select 
pull_request_id from pull_request_issues) then pr.id else null 
end)/count(distinct pr.id) as unlinked_pr_rate\nfrom pull_requests pr\njoin 
project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' 
\nwhere pm.project_name in (${project})",
+          "rawSql": "select \n  100*count(distinct case when pr.id in (select 
pull_request_id from pull_request_issues) then pr.id else null 
end)/count(distinct pr.id) as unlinked_pr_rate\nfrom pull_requests pr\njoin 
project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' 
\nwhere \n  pm.project_name in (${project})\n  and date(pr.created_date) 
between STR_TO_DATE('$month','%Y-%m-%d') and STR_TO_DATE('$month','%Y-%m-%d') + 
INTERVAL 1 MONTH",
           "refId": "A",
           "select": [
             [
@@ -1306,7 +1388,7 @@
           ]
         }
       ],
-      "title": "Unlinked PRs %",
+      "title": "Unlinked PRs % [in $month]",
       "type": "stat"
     },
     {
@@ -1317,6 +1399,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -1330,6 +1413,7 @@
               "tooltip": false,
               "viz": false
             },
+            "insertNulls": false,
             "lineInterpolation": "linear",
             "lineWidth": 1,
             "pointSize": 10,
@@ -1368,7 +1452,7 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 41
+        "y": 43
       },
       "id": 28,
       "links": [
@@ -1380,12 +1464,15 @@
       ],
       "options": {
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         }
@@ -1473,10 +1560,9 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 49
+        "y": 51
       },
       "id": 12,
-      "links": [],
       "options": {
         "colorMode": "value",
         "graphMode": "area",
@@ -1489,10 +1575,12 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
@@ -1502,7 +1590,7 @@
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "with _commits_groupby_name_and_date as (\n  select\n    
author_name,\n    date(authored_date) as _day,\n    count(distinct c.sha)\n  
from\n    commits c\n    join repo_commits rc on c.sha = rc.commit_sha\n    
join project_mapping pm on rc.repo_id = pm.row_id\n  where\n    pm.project_name 
in (${project}) and\n    WEEKDAY(authored_date) between 0 and 4 and\n    
date(authored_date) between\n      STR_TO_DATE('$month','%Y-%m-%d') and\n      
STR_TO_DATE('$month','%Y-%m-%d [...]
+          "rawSql": "with _commits_groupby_name_and_date as (\n  select\n    
author_name,\n    date(authored_date) as _day,\n    count(distinct c.sha)\n  
from\n    commits c\n    join repo_commits rc on c.sha = rc.commit_sha\n    
join project_mapping pm on rc.repo_id = pm.row_id\n  where\n    pm.project_name 
in (${project}) and\n    WEEKDAY(authored_date) between 0 and 4 and\n    
date(authored_date) between\n      STR_TO_DATE('$month','%Y-%m-%d') and\n      
STR_TO_DATE('$month','%Y-%m-%d [...]
           "refId": "A",
           "select": [
             [
@@ -1543,7 +1631,7 @@
           ]
         }
       ],
-      "title": "Coding Days %",
+      "title": "Coding Days % [in $month]",
       "type": "stat"
     },
     {
@@ -1554,6 +1642,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -1567,6 +1656,7 @@
               "tooltip": false,
               "viz": false
             },
+            "insertNulls": false,
             "lineInterpolation": "linear",
             "lineWidth": 1,
             "pointSize": 10,
@@ -1605,18 +1695,20 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 49
+        "y": 51
       },
       "id": 29,
-      "links": [],
       "options": {
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         }
@@ -1706,7 +1798,7 @@
         "h": 8,
         "w": 6,
         "x": 0,
-        "y": 57
+        "y": 59
       },
       "id": 2,
       "links": [
@@ -1728,19 +1820,22 @@
           "fields": "",
           "values": false
         },
+        "showPercentChange": false,
         "text": {},
-        "textMode": "auto"
+        "textMode": "auto",
+        "wideLayout": true
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": "mysql",
+          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select\n  AVG(TIMESTAMPDIFF(MINUTE, pr.created_date, 
pr.merged_date) / 1440)\nfrom\n  pull_requests pr\n  join project_mapping pm on 
pr.base_repo_id = pm.row_id and pm.table = 'repos' \nwhere\n  pm.project_name 
in (${project}) and\n  pr.merged_date is not null\n  and date(pr.created_date) 
between\n    STR_TO_DATE('$month','%Y-%m-%d') \n    and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH - INTERVAL 1 DAY",
+          "rawSql": "select\n  AVG(TIMESTAMPDIFF(MINUTE, pr.created_date, 
pr.merged_date) / 1440)\nfrom\n  pull_requests pr\n  join project_mapping pm on 
pr.base_repo_id = pm.row_id and pm.table = 'repos' \nwhere\n  pm.project_name 
in (${project}) and\n  pr.merged_date is not null\n  and date(pr.created_date) 
between\n    STR_TO_DATE('$month','%Y-%m-%d') \n    and 
STR_TO_DATE('$month','%Y-%m-%d') + INTERVAL 1 MONTH",
           "refId": "A",
           "select": [
             [
@@ -1752,6 +1847,23 @@
               }
             ]
           ],
+          "sql": {
+            "columns": [
+              {
+                "parameters": [],
+                "type": "function"
+              }
+            ],
+            "groupBy": [
+              {
+                "property": {
+                  "type": "string"
+                },
+                "type": "groupBy"
+              }
+            ],
+            "limit": 50
+          },
           "table": "_raw_github_api_repositories",
           "timeColumn": "created_at",
           "timeColumnType": "timestamp",
@@ -1764,7 +1876,7 @@
           ]
         }
       ],
-      "title": "Mean Time to Merge (From PR creation to merge)",
+      "title": "Mean Time to Merge [in $month]",
       "type": "stat"
     },
     {
@@ -1776,6 +1888,7 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
             "axisCenteredZero": false,
             "axisColorMode": "text",
             "axisLabel": "",
@@ -1789,6 +1902,7 @@
               "tooltip": false,
               "viz": false
             },
+            "insertNulls": false,
             "lineInterpolation": "linear",
             "lineWidth": 1,
             "pointSize": 10,
@@ -1828,7 +1942,7 @@
         "h": 8,
         "w": 18,
         "x": 6,
-        "y": 57
+        "y": 59
       },
       "id": 30,
       "links": [
@@ -1840,12 +1954,15 @@
       ],
       "options": {
         "legend": {
-          "calcs": [],
+          "calcs": [
+            "mean"
+          ],
           "displayMode": "list",
           "placement": "bottom",
           "showLegend": true
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
         }
@@ -1912,41 +2029,13 @@
             "mode": "palette-classic"
           },
           "custom": {
-            "axisCenteredZero": false,
-            "axisColorMode": "text",
-            "axisLabel": "",
-            "axisPlacement": "auto",
-            "axisSoftMin": 0,
-            "fillOpacity": 68,
-            "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
-              }
-            ]
-          },
-          "unit": "d"
+          "mappings": []
         },
         "overrides": []
       },
@@ -1954,43 +2043,47 @@
         "h": 8,
         "w": 12,
         "x": 0,
-        "y": 65
+        "y": 67
       },
-      "id": 20,
-      "links": [],
+      "id": 21,
       "options": {
-        "barRadius": 0,
-        "barWidth": 0.27,
-        "fullHighlight": false,
-        "groupWidth": 0.7,
+        "displayLabels": [
+          "name",
+          "percent"
+        ],
         "legend": {
-          "calcs": [],
-          "displayMode": "list",
-          "placement": "bottom",
-          "showLegend": true
+          "displayMode": "table",
+          "placement": "right",
+          "showLegend": true,
+          "values": [
+            "value",
+            "percent"
+          ]
         },
-        "orientation": "auto",
-        "showValue": "auto",
-        "stacking": "none",
-        "text": {
-          "valueSize": 12
+        "pieType": "pie",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
-        },
-        "xTickLabelRotation": 0,
-        "xTickLabelSpacing": 0
+        }
       },
       "targets": [
         {
           "datasource": "mysql",
+          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select\n  i.priority as 'Priority',\n  
AVG(TIMESTAMPDIFF(MINUTE, i.created_date, NOW()) / 1440) as 'Average 
Age'\nfrom\n  issues i\n  join board_issues bi on i.id = bi.issue_id\n\tjoin 
boards b on bi.board_id = b.id\n\tjoin project_mapping pm on b.id = 
pm.row_id\nwhere\n  pm.project_name in (${project}) and\n  i.status = 'TODO'\n  
and i.type = 'BUG'\n  and i.priority in (${priority})\ngroup by\n  i.priority",
+          "rawSql": "select\n  count(distinct case when i.type = 'BUG' then 
i.id else null end) as 'Bug',\n  count(distinct case when i.type != 'BUG' and 
epic_key != '' then i.id else null end) as 'Strategic',\n  count(distinct case 
when i.type != 'BUG' and epic_key = '' then i.id else null end) as 
'Non-Strategic'\nfrom\n  issues i\n  join board_issues bi on i.id = 
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\n\tjoin project_mapping pm 
on b.id = pm.row_id\nwhere\n  pm.project_name  [...]
           "refId": "A",
           "select": [
             [
@@ -2002,6 +2095,23 @@
               }
             ]
           ],
+          "sql": {
+            "columns": [
+              {
+                "parameters": [],
+                "type": "function"
+              }
+            ],
+            "groupBy": [
+              {
+                "property": {
+                  "type": "string"
+                },
+                "type": "groupBy"
+              }
+            ],
+            "limit": 50
+          },
           "table": "_devlake_blueprints",
           "timeColumn": "created_at",
           "timeColumnType": "timestamp",
@@ -2014,8 +2124,8 @@
           ]
         }
       ],
-      "title": "Average Age of Critical Outstanding Defects by Priority",
-      "type": "barchart"
+      "title": "Work Done % [in $month]",
+      "type": "piechart"
     },
     {
       "datasource": "mysql",
@@ -2025,13 +2135,42 @@
             "mode": "palette-classic"
           },
           "custom": {
+            "axisBorderShow": false,
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "auto",
+            "axisSoftMin": 0,
+            "fillOpacity": 68,
+            "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
+              }
+            ]
+          },
+          "unit": "d"
         },
         "overrides": []
       },
@@ -2039,47 +2178,45 @@
         "h": 8,
         "w": 12,
         "x": 12,
-        "y": 65
+        "y": 67
       },
-      "id": 21,
-      "links": [],
+      "id": 20,
       "options": {
-        "displayLabels": [
-          "name",
-          "percent"
-        ],
+        "barRadius": 0,
+        "barWidth": 0.27,
+        "fullHighlight": false,
+        "groupWidth": 0.7,
         "legend": {
-          "displayMode": "table",
-          "placement": "right",
-          "showLegend": true,
-          "values": [
-            "value",
-            "percent"
-          ]
-        },
-        "pieType": "pie",
-        "reduceOptions": {
           "calcs": [
-            "lastNotNull"
+            "mean"
           ],
-          "fields": "",
-          "values": false
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": true
+        },
+        "orientation": "auto",
+        "showValue": "auto",
+        "stacking": "none",
+        "text": {
+          "valueSize": 12
         },
         "tooltip": {
+          "maxHeight": 600,
           "mode": "single",
           "sort": "none"
-        }
+        },
+        "xTickLabelRotation": 0,
+        "xTickLabelSpacing": 0
       },
       "targets": [
         {
           "datasource": "mysql",
-          "editorMode": "code",
           "format": "table",
           "group": [],
           "metricColumn": "none",
           "queryType": "randomWalk",
           "rawQuery": true,
-          "rawSql": "select\n  count(distinct case when i.type = 'BUG' then 
i.id else null end) as 'Bug',\n  count(distinct case when i.type != 'BUG' and 
epic_key != '' then i.id else null end) as 'Strategic',\n  count(distinct case 
when i.type != 'BUG' and epic_key = '' then i.id else null end) as 
'Non-Strategic'\nfrom\n  issues i\n  join board_issues bi on i.id = 
bi.issue_id\n\tjoin boards b on bi.board_id = b.id\n\tjoin project_mapping pm 
on b.id = pm.row_id\nwhere\n  pm.project_name  [...]
+          "rawSql": "select\n  i.priority as 'Priority',\n  
AVG(TIMESTAMPDIFF(MINUTE, i.created_date, NOW()) / 1440) as 'Average 
Age'\nfrom\n  issues i\n  join board_issues bi on i.id = bi.issue_id\n\tjoin 
boards b on bi.board_id = b.id\n\tjoin project_mapping pm on b.id = 
pm.row_id\nwhere\n  pm.project_name in (${project}) and\n  i.status = 'TODO'\n  
and i.type = 'BUG'\n  and i.priority in (${priority})\ngroup by\n  i.priority",
           "refId": "A",
           "select": [
             [
@@ -2091,23 +2228,6 @@
               }
             ]
           ],
-          "sql": {
-            "columns": [
-              {
-                "parameters": [],
-                "type": "function"
-              }
-            ],
-            "groupBy": [
-              {
-                "property": {
-                  "type": "string"
-                },
-                "type": "groupBy"
-              }
-            ],
-            "limit": 50
-          },
           "table": "_devlake_blueprints",
           "timeColumn": "created_at",
           "timeColumnType": "timestamp",
@@ -2120,8 +2240,8 @@
           ]
         }
       ],
-      "title": "Work Done % [Selected Month]",
-      "type": "piechart"
+      "title": "Average Age of Critical Outstanding Defects by Priority",
+      "type": "barchart"
     },
     {
       "datasource": {
@@ -2132,7 +2252,7 @@
         "h": 2,
         "w": 24,
         "x": 0,
-        "y": 73
+        "y": 75
       },
       "id": 34,
       "options": {
@@ -2144,7 +2264,7 @@
         "content": "<br/>\n\nThis dashboard is created based on this [data 
schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). 
Want to add more metrics? Please follow the 
[guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).",
         "mode": "markdown"
       },
-      "pluginVersion": "9.5.15",
+      "pluginVersion": "11.0.0",
       "targets": [
         {
           "datasource": {
@@ -2159,8 +2279,7 @@
     }
   ],
   "refresh": "",
-  "schemaVersion": 38,
-  "style": "dark",
+  "schemaVersion": 39,
   "tags": [
     "Engineering Leads Dashboard"
   ],
@@ -2187,6 +2306,27 @@
         "sort": 0,
         "type": "query"
       },
+      {
+        "current": {
+          "selected": true,
+          "text": "",
+          "value": ""
+        },
+        "datasource": "mysql",
+        "definition": "select\n  
distinct(concat(date_format(DATE_ADD(date(created_date), INTERVAL 
-DAY(date(created_date))+1 DAY), '%Y-%m') , ':', 
date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 
DAY), '%Y-%m-%d'))) as month\nfrom\n  issues i\norder by month desc",
+        "hide": 0,
+        "includeAll": false,
+        "label": "Selected Month",
+        "multi": false,
+        "name": "month",
+        "options": [],
+        "query": "select\n  
distinct(concat(date_format(DATE_ADD(date(created_date), INTERVAL 
-DAY(date(created_date))+1 DAY), '%Y-%m') , ':', 
date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 
DAY), '%Y-%m-%d'))) as month\nfrom\n  issues i\norder by month desc",
+        "refresh": 1,
+        "regex": "/^(?<text>.*):(?<value>.*)$/",
+        "skipUrlSync": false,
+        "sort": 0,
+        "type": "query"
+      },
       {
         "current": {
           "selected": true,
@@ -2233,27 +2373,6 @@
         "skipUrlSync": false,
         "sort": 0,
         "type": "query"
-      },
-      {
-        "current": {
-          "selected": false,
-          "text": "2024-01",
-          "value": "2024-01-01"
-        },
-        "datasource": "mysql",
-        "definition": "select\n  
distinct(concat(date_format(DATE_ADD(date(created_date), INTERVAL 
-DAY(date(created_date))+1 DAY), '%Y-%m') , ':', 
date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 
DAY), '%Y-%m-%d'))) as month\nfrom\n  issues i\norder by month desc",
-        "hide": 0,
-        "includeAll": false,
-        "label": "Selected Month",
-        "multi": false,
-        "name": "month",
-        "options": [],
-        "query": "select\n  
distinct(concat(date_format(DATE_ADD(date(created_date), INTERVAL 
-DAY(date(created_date))+1 DAY), '%Y-%m') , ':', 
date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 
DAY), '%Y-%m-%d'))) as month\nfrom\n  issues i\norder by month desc",
-        "refresh": 1,
-        "regex": "/^(?<text>.*):(?<value>.*)$/",
-        "skipUrlSync": false,
-        "sort": 0,
-        "type": "query"
       }
     ]
   },
@@ -2261,10 +2380,11 @@
     "from": "now-6M",
     "to": "now"
   },
+  "timeRangeUpdatedDuringEditOrView": false,
   "timepicker": {},
   "timezone": "",
   "title": "Engineering Overview",
   "uid": "ZF6abXX7z",
-  "version": 2,
+  "version": 15,
   "weekStart": ""
 }
\ No newline at end of file


Reply via email to