You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: grafana/dashboards/DORADetails-LeadTimeforChanges.json
+44-29Lines changed: 44 additions & 29 deletions
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,6 @@
18
18
"editable": true,
19
19
"fiscalYearStartMonth": 0,
20
20
"graphTooltip": 0,
21
-
"id": 36,
22
21
"links": [
23
22
{
24
23
"asDropdown": false,
@@ -47,17 +46,16 @@
47
46
"y": 0
48
47
},
49
48
"id": 63,
50
-
"links": [],
51
49
"options": {
52
50
"code": {
53
51
"language": "plaintext",
54
52
"showLineNumbers": false,
55
53
"showMiniMap": false
56
54
},
57
-
"content": "This dashboard shows the details about [Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges) in DORA.",
55
+
"content": "- This dashboard shows the details about [Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges) in DORA.\n- It displays the statistics for pull requests **deployed** within the selected time range.",
58
56
"mode": "markdown"
59
57
},
60
-
"pluginVersion": "9.5.15",
58
+
"pluginVersion": "11.2.0",
61
59
"targets": [
62
60
{
63
61
"datasource": {
@@ -112,16 +110,19 @@
112
110
"graphMode": "area",
113
111
"justifyMode": "auto",
114
112
"orientation": "auto",
113
+
"percentChangeColorMode": "standard",
115
114
"reduceOptions": {
116
115
"calcs": [
117
116
"lastNotNull"
118
117
],
119
118
"fields": "",
120
119
"values": false
121
120
},
122
-
"textMode": "auto"
121
+
"showPercentChange": false,
122
+
"textMode": "auto",
123
+
"wideLayout": true
123
124
},
124
-
"pluginVersion": "9.5.15",
125
+
"pluginVersion": "11.2.0",
125
126
"targets": [
126
127
{
127
128
"datasource": "mysql",
@@ -131,7 +132,7 @@
131
132
"hide": false,
132
133
"metricColumn": "none",
133
134
"rawQuery": true,
134
-
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no cycle_time to make sure cycle_time equals the sum of the four metrics below\n\t\tcoalesce(prm.pr_cycle_time/60,0) as cycle_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(pr.created_date)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(cycle_time) as 'PR Cycle Time(h)'\nFROM _prs",
135
+
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no cycle_time to make sure cycle_time equals the sum of the four metrics below\n\t\tcoalesce(prm.pr_cycle_time/60,0) as cycle_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(prm.pr_deployed_date)\n -- and pr.created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(cycle_time) as 'PR Cycle Time(h)'\nFROM _prs",
135
136
"refId": "A",
136
137
"select": [
137
138
[
@@ -217,16 +218,19 @@
217
218
"graphMode": "area",
218
219
"justifyMode": "auto",
219
220
"orientation": "auto",
221
+
"percentChangeColorMode": "standard",
220
222
"reduceOptions": {
221
223
"calcs": [
222
224
"lastNotNull"
223
225
],
224
226
"fields": "",
225
227
"values": false
226
228
},
227
-
"textMode": "auto"
229
+
"showPercentChange": false,
230
+
"textMode": "auto",
231
+
"wideLayout": true
228
232
},
229
-
"pluginVersion": "9.5.15",
233
+
"pluginVersion": "11.2.0",
230
234
"targets": [
231
235
{
232
236
"datasource": "mysql",
@@ -236,7 +240,7 @@
236
240
"hide": false,
237
241
"metricColumn": "none",
238
242
"rawQuery": true,
239
-
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no coding_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_coding_time/60,0) as coding_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(pr.created_date)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(coding_time) as 'Coding Time(h)'\nFROM _prs\n",
243
+
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no coding_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_coding_time/60,0) as coding_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(prm.pr_deployed_date)\n -- and pr.created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(coding_time) as 'Coding Time(h)'\nFROM _prs\n",
240
244
"refId": "A",
241
245
"select": [
242
246
[
@@ -353,16 +357,19 @@
353
357
"graphMode": "area",
354
358
"justifyMode": "auto",
355
359
"orientation": "auto",
360
+
"percentChangeColorMode": "standard",
356
361
"reduceOptions": {
357
362
"calcs": [
358
363
"lastNotNull"
359
364
],
360
365
"fields": "",
361
366
"values": false
362
367
},
363
-
"textMode": "auto"
368
+
"showPercentChange": false,
369
+
"textMode": "auto",
370
+
"wideLayout": true
364
371
},
365
-
"pluginVersion": "9.5.15",
372
+
"pluginVersion": "11.2.0",
366
373
"targets": [
367
374
{
368
375
"datasource": "mysql",
@@ -372,7 +379,7 @@
372
379
"hide": false,
373
380
"metricColumn": "none",
374
381
"rawQuery": true,
375
-
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no pickup_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_pickup_time/60,0) as pickup_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(pr.created_date)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(pickup_time) as 'Pickup Time(h)'\nFROM _prs\n",
382
+
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no pickup_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_pickup_time/60,0) as pickup_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(prm.pr_deployed_date)\n -- and pr.created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(pickup_time) as 'Pickup Time(h)'\nFROM _prs\n",
376
383
"refId": "A",
377
384
"select": [
378
385
[
@@ -489,16 +496,19 @@
489
496
"graphMode": "area",
490
497
"justifyMode": "auto",
491
498
"orientation": "auto",
499
+
"percentChangeColorMode": "standard",
492
500
"reduceOptions": {
493
501
"calcs": [
494
502
"lastNotNull"
495
503
],
496
504
"fields": "",
497
505
"values": false
498
506
},
499
-
"textMode": "auto"
507
+
"showPercentChange": false,
508
+
"textMode": "auto",
509
+
"wideLayout": true
500
510
},
501
-
"pluginVersion": "9.5.15",
511
+
"pluginVersion": "11.2.0",
502
512
"targets": [
503
513
{
504
514
"datasource": "mysql",
@@ -508,7 +518,7 @@
508
518
"hide": false,
509
519
"metricColumn": "none",
510
520
"rawQuery": true,
511
-
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no review_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_review_time/60,0) as review_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(pr.created_date)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(review_time) as 'Review Time(h)'\nFROM _prs",
521
+
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no review_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_review_time/60,0) as review_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(prm.pr_deployed_date)\n -- and pr.created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(review_time) as 'Review Time(h)'\nFROM _prs",
512
522
"refId": "A",
513
523
"select": [
514
524
[
@@ -625,16 +635,19 @@
625
635
"graphMode": "area",
626
636
"justifyMode": "auto",
627
637
"orientation": "auto",
638
+
"percentChangeColorMode": "standard",
628
639
"reduceOptions": {
629
640
"calcs": [
630
641
"lastNotNull"
631
642
],
632
643
"fields": "",
633
644
"values": false
634
645
},
635
-
"textMode": "auto"
646
+
"showPercentChange": false,
647
+
"textMode": "auto",
648
+
"wideLayout": true
636
649
},
637
-
"pluginVersion": "9.5.15",
650
+
"pluginVersion": "11.2.0",
638
651
"targets": [
639
652
{
640
653
"datasource": "mysql",
@@ -644,7 +657,7 @@
644
657
"hide": false,
645
658
"metricColumn": "none",
646
659
"rawQuery": true,
647
-
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no deploy_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_deploy_time/60,0) as deploy_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(pr.created_date)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(deploy_time) as 'PR Deploy Time(h)'\nFROM _prs",
660
+
"rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.created_date as pr_issued_date,\n -- convert null to 0 if a PR has no deploy_time to make sure cycle_time equals the sum of the four sub-metrics\n\t\tcoalesce(prm.pr_deploy_time/60,0) as deploy_time\n FROM pull_requests pr\n left join project_pr_metrics prm on pr.id = prm.id\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n WHERE\n $__timeFilter(prm.pr_deployed_date)\n -- and pr.created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n and pm.project_name in (${project})\n GROUP BY 1,2,3\n)\n\nSELECT \n avg(deploy_time) as 'PR Deploy Time(h)'\nFROM _prs",
648
661
"refId": "A",
649
662
"select": [
650
663
[
@@ -796,7 +809,6 @@
796
809
"y": 9
797
810
},
798
811
"id": 70,
799
-
"links": [],
800
812
"options": {
801
813
"cellHeight": "sm",
802
814
"footer": {
@@ -811,7 +823,7 @@
811
823
"showHeader": true,
812
824
"sortBy": []
813
825
},
814
-
"pluginVersion": "9.5.15",
826
+
"pluginVersion": "11.2.0",
815
827
"targets": [
816
828
{
817
829
"datasource": "mysql",
@@ -867,8 +879,7 @@
867
879
}
868
880
],
869
881
"refresh": "",
870
-
"schemaVersion": 38,
871
-
"style": "dark",
882
+
"schemaVersion": 39,
872
883
"tags": [
873
884
"DORA"
874
885
],
@@ -877,11 +888,15 @@
877
888
{
878
889
"current": {
879
890
"selected": false,
880
-
"text": "All",
881
-
"value": "$__all"
891
+
"text": [
892
+
"All"
893
+
],
894
+
"value": [
895
+
"$__all"
896
+
]
882
897
},
883
898
"datasource": "mysql",
884
-
"definition": "select distinct name from projects",
899
+
"definition": "select distinct name from projects",
885
900
"hide": 0,
886
901
"includeAll": true,
887
902
"label": "Project",
@@ -902,7 +917,7 @@
902
917
"value": "2023"
903
918
},
904
919
"datasource": "mysql",
905
-
"definition": "select dora_report from dora_benchmarks",
920
+
"definition": "select dora_report from dora_benchmarks",
906
921
"hide": 0,
907
922
"includeAll": false,
908
923
"label": "DORA Report",
@@ -923,7 +938,7 @@
923
938
"value": "Failed Deployment Recovery Time"
924
939
},
925
940
"datasource": "mysql",
926
-
"definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'",
941
+
"definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'",
0 commit comments