You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/01/22 12:55:28 UTC
(incubator-devlake) branch release-v0.20 updated: fix: remove duplicates complex dashboard sql (#6856) (#6857)
This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch release-v0.20
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/release-v0.20 by this push:
new 40cf9a0b9 fix: remove duplicates complex dashboard sql (#6856) (#6857)
40cf9a0b9 is described below
commit 40cf9a0b9fbf70feede9f78cfd4ab50c9dc73ef6
Author: abeizn <zi...@merico.dev>
AuthorDate: Mon Jan 22 20:55:23 2024 +0800
fix: remove duplicates complex dashboard sql (#6856) (#6857)
* fix: remove duplicates complex dashboard sql
* fix: gitlab dashboard remove duplicates
* fix: update EngineeringOverview
* fix: update EngineeringOverview
* fix: update EngineeringOverview
---
grafana/dashboards/AzureDevOps.json | 18 +-
grafana/dashboards/Bamboo.json | 10 +-
grafana/dashboards/BitBucket.json | 10 +-
grafana/dashboards/Circleci.json | 10 +-
.../dashboards/ComponentAndFileLevelMetrics.json | 422 ++++++++++++---
grafana/dashboards/ContributorExperience.json | 137 ++++-
grafana/dashboards/EngineeringOverview.json | 262 ++++++++--
.../EngineeringThroughputAndCycleTime.json | 255 +++++++---
.../EngineeringThroughputAndCycleTimeTeamView.json | 563 +++++++++++++++++----
grafana/dashboards/GitHub.json | 30 +-
grafana/dashboards/Gitlab.json | 97 +++-
grafana/dashboards/Jenkins.json | 10 +-
grafana/dashboards/Jira.json | 6 +-
grafana/dashboards/PagerDuty.json | 4 +-
grafana/dashboards/TAPD.json | 6 +-
grafana/dashboards/Teambition.json | 6 +-
grafana/dashboards/WeeklyBugRetro.json | 198 ++++++--
grafana/dashboards/WeeklyCommunityRetro.json | 249 ++++++---
grafana/dashboards/Zentao.json | 6 +-
19 files changed, 1825 insertions(+), 474 deletions(-)
diff --git a/grafana/dashboards/AzureDevOps.json b/grafana/dashboards/AzureDevOps.json
index 6f120d8b6..f627d5daf 100644
--- a/grafana/dashboards/AzureDevOps.json
+++ b/grafana/dashboards/AzureDevOps.json
@@ -261,7 +261,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -393,7 +393,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -627,7 +627,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -840,7 +840,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1036,7 +1036,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1436,7 +1436,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1660,7 +1660,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1811,7 +1811,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1957,7 +1957,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/Bamboo.json b/grafana/dashboards/Bamboo.json
index 024c365d1..7ab212af4 100644
--- a/grafana/dashboards/Bamboo.json
+++ b/grafana/dashboards/Bamboo.json
@@ -374,7 +374,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -598,7 +598,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -749,7 +749,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -909,7 +909,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1038,7 +1038,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/BitBucket.json b/grafana/dashboards/BitBucket.json
index ec76c95b0..216b9ad29 100644
--- a/grafana/dashboards/BitBucket.json
+++ b/grafana/dashboards/BitBucket.json
@@ -261,7 +261,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -393,7 +393,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -627,7 +627,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -838,7 +838,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1032,7 +1032,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/Circleci.json b/grafana/dashboards/Circleci.json
index 043653a73..9272593fd 100644
--- a/grafana/dashboards/Circleci.json
+++ b/grafana/dashboards/Circleci.json
@@ -380,7 +380,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -586,7 +586,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -737,7 +737,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -897,7 +897,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1026,7 +1026,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/ComponentAndFileLevelMetrics.json b/grafana/dashboards/ComponentAndFileLevelMetrics.json
index 0ce033689..d3789d70c 100644
--- a/grafana/dashboards/ComponentAndFileLevelMetrics.json
+++ b/grafana/dashboards/ComponentAndFileLevelMetrics.json
@@ -3,7 +3,10 @@
"list": [
{
"builtIn": 1,
- "datasource": "-- Grafana --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
@@ -14,15 +17,18 @@
},
"description": "This dashboard shows the metrics collected by gitextractor plugin",
"editable": true,
- "gnetId": null,
+ "fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 20,
- "iteration": 1682062815355,
+ "id": 18,
"links": [],
+ "liveNow": false,
"panels": [
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -31,17 +37,31 @@
},
"id": 14,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "file dimension",
"type": "row"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -52,7 +72,13 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -79,29 +105,37 @@
},
"id": 12,
"options": {
+ "barRadius": 0,
"barWidth": 0.78,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "SELECT file_path,\n count(distinct author_name) AS cnt\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND commit_files.commit_sha = commits.sha\nWHERE repo_id IN ($repo_id)\n AND $__timeFilter(commits.authored_date)\n AND file_path REGEXP '($selected_path)'\nGROUP BY file_path\nORDER BY cnt DESC limit 10;",
+ "rawSql": "SELECT file_path,\n count(distinct author_name) AS cnt\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND commit_files.commit_sha = commits.sha\nWHERE repo_id IN ($repo_id)\n AND $__timeFilter(commits.authored_date)\n AND file_path REGEXP '($selected_path)'\nGROUP BY file_path\nORDER BY cnt DESC limit 10;",
"refId": "A",
"select": [
[
@@ -113,6 +147,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "issue_commits",
"timeColumn": "id",
"timeColumnType": "bigint",
@@ -123,7 +174,10 @@
"type": "barchart"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
@@ -131,7 +185,10 @@
},
"custom": {
"align": "auto",
- "displayMode": "auto"
+ "cellOptions": {
+ "type": "auto"
+ },
+ "inspect": false
},
"mappings": [],
"thresholds": {
@@ -158,9 +215,18 @@
},
"id": 2,
"options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
+ },
"showHeader": true
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -204,6 +270,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -214,7 +282,13 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -241,29 +315,38 @@
},
"id": 10,
"options": {
+ "barRadius": 0,
"barWidth": 0.8,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "SELECT file_path,\n count(*) AS modified_num\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND sha=commit_files.commit_sha\n AND $__timeFilter(commits.authored_date)\nWHERE repo_id IN ($repo_id) and file_path REGEXP '($selected_path)'\nAND $__timeFilter(commits.authored_date)\nGROUP BY file_path\nORDER BY modified_num desc\nLIMIT 15;",
+ "rawSql": "SELECT file_path,\n count(distinct sha) AS modified_num\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND sha=commit_files.commit_sha\n AND $__timeFilter(commits.authored_date)\nWHERE repo_id IN ($repo_id) and file_path REGEXP '($selected_path)'\nAND $__timeFilter(commits.authored_date)\nGROUP BY file_path\nORDER BY modified_num desc\nLIMIT 15;",
"refId": "A",
"select": [
[
@@ -275,6 +358,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -291,13 +391,18 @@
"type": "barchart"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -308,7 +413,13 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -335,30 +446,38 @@
},
"id": 8,
"options": {
+ "barRadius": 0,
"barWidth": 0.79,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "SELECT file_path,\n count(*) AS cnt\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND sha=commit_files.commit_sha\nWHERE repo_id IN ($repo_id)\n AND $__timeFilter(commits.authored_date)\nGROUP BY file_path\nORDER BY cnt desc\nLIMIT 10;",
+ "rawSql": "SELECT file_path,\n count(distinct sha) AS cnt\nFROM commits\nJOIN commit_files\nJOIN repo_commits rc\n ON commit_files.commit_sha = rc.commit_sha\n AND sha=commit_files.commit_sha\nWHERE repo_id IN ($repo_id)\n AND $__timeFilter(commits.authored_date)\nGROUP BY file_path\nORDER BY cnt desc\nLIMIT 10;",
"refId": "A",
"select": [
[
@@ -370,6 +489,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -387,7 +523,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -396,17 +535,31 @@
},
"id": 6,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "author dimension",
"type": "row"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -417,7 +570,13 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -444,21 +603,28 @@
},
"id": 16,
"options": {
+ "barRadius": 0,
"barWidth": 0.79,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -495,13 +661,18 @@
"type": "barchart"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -512,7 +683,13 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
@@ -539,21 +716,28 @@
},
"id": 4,
"options": {
+ "barRadius": 0,
"barWidth": 0.55,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "horizontal",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -592,7 +776,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -601,17 +788,31 @@
},
"id": 20,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "time perspective",
"type": "row"
},
{
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -622,15 +823,20 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -649,21 +855,28 @@
},
"id": 22,
"options": {
+ "barRadius": 0,
"barWidth": 0.97,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "auto",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -700,14 +913,18 @@
"type": "barchart"
},
{
- "cacheTimeout": null,
- "datasource": "-- Mixed --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "-- Mixed --"
+ },
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -718,15 +935,20 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -744,24 +966,30 @@
"y": 27
},
"id": 24,
- "interval": null,
"links": [],
"options": {
+ "barRadius": 0,
"barWidth": 0.97,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "auto",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -794,14 +1022,15 @@
]
}
],
- "timeFrom": null,
- "timeShift": null,
"title": "lines of code distribution",
"type": "barchart"
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -810,6 +1039,15 @@
},
"id": 26,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "lineage dimension",
"type": "row"
},
@@ -822,6 +1060,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
@@ -832,15 +1072,20 @@
"tooltip": false,
"viz": false
},
- "lineWidth": 1
+ "lineWidth": 1,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -859,23 +1104,31 @@
},
"id": 28,
"options": {
+ "barRadius": 0,
"barWidth": 0.97,
+ "fullHighlight": false,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"orientation": "auto",
"showValue": "auto",
+ "stacking": "none",
"text": {},
"tooltip": {
- "mode": "single"
- }
+ "mode": "single",
+ "sort": "none"
+ },
+ "xTickLabelRotation": 0,
+ "xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -917,15 +1170,17 @@
},
"custom": {
"align": "auto",
- "displayMode": "auto"
+ "cellOptions": {
+ "type": "auto"
+ },
+ "inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -944,11 +1199,21 @@
},
"id": 30,
"options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
+ },
"showHeader": true
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -983,7 +1248,7 @@
}
],
"refresh": "",
- "schemaVersion": 30,
+ "schemaVersion": 38,
"style": "dark",
"tags": [
"Engineering Leads Dashboard"
@@ -991,7 +1256,6 @@
"templating": {
"list": [
{
- "allValue": null,
"current": {
"selected": true,
"text": [
@@ -1003,8 +1267,6 @@
},
"datasource": "mysql",
"definition": "select concat(name, '--', id) as text from repos",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "Repo",
@@ -1025,7 +1287,6 @@
"value": ""
},
"description": "input file path",
- "error": null,
"hide": 0,
"label": "",
"name": "selected_path",
@@ -1063,5 +1324,6 @@
"timezone": "",
"title": "Component and File-level Metrics",
"uid": "KxUh7IG4z",
- "version": 3
+ "version": 2,
+ "weekStart": ""
}
\ No newline at end of file
diff --git a/grafana/dashboards/ContributorExperience.json b/grafana/dashboards/ContributorExperience.json
index 8e99f5006..523cd9013 100644
--- a/grafana/dashboards/ContributorExperience.json
+++ b/grafana/dashboards/ContributorExperience.json
@@ -3,7 +3,10 @@
"list": [
{
"builtIn": 1,
- "datasource": "-- Grafana --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
@@ -13,14 +16,17 @@
]
},
"editable": true,
- "gnetId": null,
+ "fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 10,
- "iteration": 1683690480749,
+ "id": 7,
"links": [],
+ "liveNow": false,
"panels": [
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 4,
"w": 24,
@@ -29,12 +35,21 @@
},
"id": 24,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"content": "- Use Cases: This dashboard answers the question \"What makes a great developer experience? And how can we define and track that?\". This dashboard heavily focuses on actionability. All metrics can be deterministically improved as long as OSS maintainers invested time into them.\n- Data Source Required: GitHub",
"mode": "markdown"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -91,9 +106,10 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -173,9 +189,10 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -255,9 +272,10 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -336,15 +354,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\nfrom\n issues i\n join board_issues bi on i.id = bi.issue_id\n join boards b on bi.board_id = b.id\n join issue_labels il on il.issue_id = i.id\nwhere\n il.label_name = \"$label_gfi\" and\n i.status != 'DONE' and\n b.id in ($repo_id)",
+ "rawSql": "select\n count(distinct i.id)\nfrom\n issues i\n join board_issues bi on i.id = bi.issue_id\n join boards b on bi.board_id = b.id\n join issue_labels il on il.issue_id = i.id\nwhere\n il.label_name = \"$label_gfi\" and\n i.status != 'DONE' and\n b.id in ($repo_id)",
"refId": "A",
"select": [
[
@@ -356,6 +376,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -418,9 +455,10 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -500,9 +538,10 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -582,9 +621,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -602,6 +643,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -664,9 +722,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
@@ -684,6 +744,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -700,7 +777,10 @@
"type": "stat"
},
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 2,
"w": 24,
@@ -709,12 +789,21 @@
},
"id": 22,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"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": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -723,7 +812,7 @@
}
],
"refresh": "",
- "schemaVersion": 30,
+ "schemaVersion": 38,
"style": "dark",
"tags": [
"OSS Maintainer Dashboard"
@@ -731,7 +820,6 @@
"templating": {
"list": [
{
- "allValue": null,
"current": {
"selected": false,
"text": "All",
@@ -739,8 +827,6 @@
},
"datasource": "mysql",
"definition": "select concat(name, '-', id) from repos",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "Repo",
@@ -760,8 +846,6 @@
"text": "24",
"value": "24"
},
- "description": null,
- "error": null,
"hide": 0,
"label": "Time to Initial Issue Response SLA (in hours)",
"name": "iir_sla",
@@ -782,8 +866,6 @@
"text": "7",
"value": "7"
},
- "description": null,
- "error": null,
"hide": 0,
"label": "PR Resolution Time SLA (in days)",
"name": "prrt_sla",
@@ -804,8 +886,6 @@
"text": "good first issue",
"value": "good first issue"
},
- "description": null,
- "error": null,
"hide": 0,
"label": "Label for good first issues",
"name": "label_gfi",
@@ -830,5 +910,6 @@
"timezone": "",
"title": "Contributor Experience",
"uid": "bwsP5Nz4z",
- "version": 6
+ "version": 2,
+ "weekStart": ""
}
\ No newline at end of file
diff --git a/grafana/dashboards/EngineeringOverview.json b/grafana/dashboards/EngineeringOverview.json
index 34ce98568..1b91e2934 100644
--- a/grafana/dashboards/EngineeringOverview.json
+++ b/grafana/dashboards/EngineeringOverview.json
@@ -18,7 +18,7 @@
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 24,
+ "id": 16,
"links": [],
"liveNow": false,
"panels": [
@@ -43,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.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -107,16 +107,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 - INTERVAL 1 DAY;",
"refId": "A",
"select": [
[
@@ -128,6 +129,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -219,16 +237,17 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with _issues as(\n select\n DATE_ADD(date(i.created_date), INTERVAL -DAY(date(i.created_date))+1 DAY) as time,\n count(*) as defect_count\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 where\n pm.project_name in ($project) and\n i.priority in ($priority)\n and i.type = 'BUG'\n and $__timeFilter(i.created_date)\n and i.created_date [...]
+ "rawSql": "with _issues as(\n select\n DATE_ADD(date(i.created_date), INTERVAL -DAY(date(i.created_date))+1 DAY) as time,\n count(distinct i.id) as defect_count\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 where\n pm.project_name in ($project) and\n i.priority in ($priority)\n and i.type = 'BUG'\n and $__timeFilter(i.created_date)\n and i.c [...]
"refId": "A",
"select": [
[
@@ -240,6 +259,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -300,7 +336,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -414,7 +450,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -499,7 +535,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -611,7 +647,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -699,16 +735,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with _num_issues_with_sprint_updated as (\n select\n count(*) 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_value != '' and\n dat [...]
+ "rawSql": "with _num_issues_with_sprint_updated as (\n select\n count(distinct i.id) 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_value != '' [...]
"refId": "A",
"select": [
[
@@ -720,6 +757,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -810,16 +864,17 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with _num_issues_with_sprint_updated as (\n select\n DATE_ADD(date(i.created_date), INTERVAL -DAY(date(i.created_date))+1 DAY) as time,\n count(*) 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 = 'Spri [...]
+ "rawSql": "with _num_issues_with_sprint_updated as (\n select\n DATE_ADD(date(i.created_date), INTERVAL -DAY(date(i.created_date))+1 DAY) as time,\n count(distinct i.id) 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_ [...]
"refId": "A",
"select": [
[
@@ -831,6 +886,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -893,16 +965,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 - INTERVAL 1 DAY \n and pm.project_name in ($project);",
"refId": "A",
"select": [
[
@@ -914,6 +987,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1006,16 +1096,17 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with _merged_prs as(\n select\n DATE_ADD(date(pr.merged_date), INTERVAL -DAY(date(pr.merged_date))+1 DAY) as time,\n count(*) as pr_merged_count\n from\n pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n where\n pm.project_name in ($project)\n and pr.merged_date is not null\n and $__timeFilter(pr.merged_date)\n and pr.merged_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom( [...]
+ "rawSql": "with _merged_prs as(\n select\n DATE_ADD(date(pr.merged_date), INTERVAL -DAY(date(pr.merged_date))+1 DAY) as time,\n count(distinct pr.id) as pr_merged_count\n from\n pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n where\n pm.project_name in ($project)\n and pr.merged_date is not null\n and $__timeFilter(pr.merged_date)\n and pr.merged_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY [...]
"refId": "A",
"select": [
[
@@ -1027,6 +1118,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1093,16 +1201,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select \n 100*sum(case when id in (select pull_request_id from pull_request_issues) then 1 else 0 end)/count(*) 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 pm.project_name in ($project)",
"refId": "A",
"select": [
[
@@ -1114,6 +1223,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1203,16 +1329,17 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY) as time,\n 100*sum(case when id in (select pull_request_id from pull_request_issues) then 1 else 0 end)/count(*) 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)\nand $__timeFilter(created_date)\nand created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 [...]
+ "rawSql": "select\n DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY) as time,\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)\nand $__timeFilter(created_date)\nand created_date >= DATE_ADD(DATE_ADD($__timeFrom [...]
"refId": "A",
"select": [
[
@@ -1224,6 +1351,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1286,16 +1430,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"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(*)\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') + INTERVAL 1 [...]
+ "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": [
[
@@ -1307,6 +1452,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1396,16 +1558,17 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"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(*)\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)\n and $__timeFilter(authored_date)\n and authored_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY [...]
+ "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)\n and $__timeFilter(authored_date)\n and authored_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__time [...]
"refId": "A",
"select": [
[
@@ -1417,6 +1580,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1481,7 +1661,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1593,7 +1773,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1814,12 +1994,13 @@
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n sum(case when i.type = 'BUG' then 1 else 0 end) as 'Bug',\n sum(case when i.type != 'BUG' and epic_key != '' then 1 else 0 end) as 'Strategic',\n sum(case when i.type != 'BUG' and epic_key = '' then 1 else 0 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 in ($project) and\n i.resolution_date is not null [...]
+ "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": [
[
@@ -1831,6 +2012,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_blueprints",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1867,7 +2065,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.2",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -1960,8 +2158,8 @@
{
"current": {
"selected": false,
- "text": "2022-12",
- "value": "2022-12-01"
+ "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",
diff --git a/grafana/dashboards/EngineeringThroughputAndCycleTime.json b/grafana/dashboards/EngineeringThroughputAndCycleTime.json
index 5511a8af4..a306f2683 100644
--- a/grafana/dashboards/EngineeringThroughputAndCycleTime.json
+++ b/grafana/dashboards/EngineeringThroughputAndCycleTime.json
@@ -3,7 +3,10 @@
"list": [
{
"builtIn": 1,
- "datasource": "-- Grafana --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
@@ -13,14 +16,17 @@
]
},
"editable": true,
- "gnetId": null,
+ "fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 13,
- "iteration": 1682062957718,
+ "id": 17,
"links": [],
+ "liveNow": false,
"panels": [
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 3,
"w": 24,
@@ -29,12 +35,21 @@
},
"id": 111,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"content": "- Use Cases: This dashboard shows the engineering throughput and and cycle time, which helps to identify productivity and bottlenecks of the development process.\n- Data Source Required: GitHub and Jira([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) required to tell DevLake what the story_points field is)",
"mode": "markdown"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -44,7 +59,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -53,6 +71,15 @@
},
"id": 89,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "1. Throughput/Quality",
"type": "row"
},
@@ -66,6 +93,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -153,15 +182,18 @@
"sum"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "time_series",
"group": [],
"hide": false,
@@ -203,6 +235,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Issue Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -291,15 +325,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+
"format": "table",
"group": [],
"hide": false,
@@ -341,6 +378,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Story Points",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -398,21 +437,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "SELECT\n DATE_ADD(date(i.resolution_date), INTERVAL -$interval(date(i.resolution_date))+1 DAY) as time,\n sum(case when i.status = 'DONE' then i.story_point else 0 end) as 'Story Points Completed'\nFROM 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 $__timeFilter(i.resolution_date)\n and pm.project_name in ($project)\ngroup by 1\norder by 1",
+ "rawSql": "SELECT\n DATE_ADD(date(i.resolution_date), INTERVAL -$interval(date(i.resolution_date))+1 DAY) as time,\n sum(case when i.status = 'DONE' then i.story_point else 0 end) as 'Story Points Completed',\n i.id\nFROM 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 $__timeFilter(i.resolution_date)\n and pm.project_name in ($project)\ngroup by 1,3\norder by 1",
"refId": "A",
"select": [
[
@@ -424,6 +467,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -449,6 +509,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "PR Review Depth",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -505,15 +567,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "time_series",
"group": [],
"hide": false,
@@ -556,6 +621,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Bug Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -613,15 +680,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -664,6 +734,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "PR Size",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -720,15 +792,19 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
@@ -746,6 +822,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -771,6 +864,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -824,15 +919,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -867,7 +965,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -876,6 +977,15 @@
},
"id": 103,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "2. Cycle Time",
"type": "row"
},
@@ -889,6 +999,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -973,15 +1085,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1024,6 +1139,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1077,15 +1194,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1128,6 +1248,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1212,15 +1334,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1263,6 +1388,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1347,15 +1474,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1398,6 +1528,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1482,15 +1614,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1524,7 +1659,10 @@
"type": "timeseries"
},
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 2,
"w": 24,
@@ -1533,12 +1671,21 @@
},
"id": 113,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"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": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -1547,7 +1694,7 @@
}
],
"refresh": "",
- "schemaVersion": 30,
+ "schemaVersion": 38,
"style": "dark",
"tags": [
"Engineering Leads Dashboard",
@@ -1556,7 +1703,6 @@
"templating": {
"list": [
{
- "allValue": null,
"current": {
"selected": false,
"text": "All",
@@ -1564,8 +1710,6 @@
},
"datasource": "mysql",
"definition": "select distinct name from projects",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "Project",
@@ -1592,8 +1736,6 @@
},
"datasource": "mysql",
"definition": "select distinct priority from issues where priority != ''",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "P0+P1 Priority",
@@ -1608,14 +1750,12 @@
"type": "query"
},
{
- "allValue": null,
"current": {
"selected": false,
"text": "Month",
"value": "DAYOFMONTH"
},
"description": "",
- "error": null,
"hide": 0,
"includeAll": false,
"label": "Time Interval",
@@ -1648,5 +1788,6 @@
"timezone": "",
"title": "Engineering Throughput and Cycle Time",
"uid": "Jaaimc67k",
- "version": 3
-}
\ No newline at end of file
+ "version": 3,
+ "weekStart": ""
+}
diff --git a/grafana/dashboards/EngineeringThroughputAndCycleTimeTeamView.json b/grafana/dashboards/EngineeringThroughputAndCycleTimeTeamView.json
index c6c484ebc..fd28afa24 100644
--- a/grafana/dashboards/EngineeringThroughputAndCycleTimeTeamView.json
+++ b/grafana/dashboards/EngineeringThroughputAndCycleTimeTeamView.json
@@ -3,7 +3,10 @@
"list": [
{
"builtIn": 1,
- "datasource": "-- Grafana --",
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
@@ -13,14 +16,17 @@
]
},
"editable": true,
- "gnetId": null,
+ "fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 7,
- "iteration": 1682062968493,
+ "id": 34,
"links": [],
+ "liveNow": false,
"panels": [
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 3,
"w": 24,
@@ -29,12 +35,21 @@
},
"id": 142,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"content": "- Use Cases: This dashboard shows the engineering throughput and and cycle time, which helps to identify productivity and bottlenecks of the development process.\n- Data Source Required: GitHub and Jira([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) required to tell DevLake what the story_points field is). You also need to do [team configuration](https://devlake.apache.org/docs/Configuration/Te [...]
"mode": "markdown"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -44,7 +59,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -53,6 +71,15 @@
},
"id": 89,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "1. Total and Avg PRs Opened/Merged",
"type": "row"
},
@@ -66,6 +93,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -153,15 +182,19 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
@@ -179,6 +212,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -204,6 +254,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -291,15 +343,18 @@
"sum"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "time_series",
"group": [],
"hide": false,
@@ -342,6 +397,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -429,15 +486,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "time_series",
"group": [],
"hide": false,
@@ -480,6 +540,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -567,15 +629,18 @@
"sum"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "time_series",
"group": [],
"hide": false,
@@ -610,7 +675,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -619,6 +687,15 @@
},
"id": 114,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "2. Issue Completed",
"type": "row"
},
@@ -631,6 +708,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Issue Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -719,21 +798,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _issues as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua [...]
+ "rawSql": "with _issues as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua [...]
"refId": "A",
"select": [
[
@@ -745,6 +828,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -769,6 +869,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Issue Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -857,21 +959,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _issues as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua [...]
+ "rawSql": "with _issues as(\n SELECT\n distinct i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join user [...]
"refId": "A",
"select": [
[
@@ -883,6 +989,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -900,7 +1023,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -909,6 +1035,15 @@
},
"id": 126,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "3. Story Points Completed",
"type": "row"
},
@@ -921,6 +1056,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Issue Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1009,21 +1146,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _issues as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua [...]
+ "rawSql": "with _issues as(\n SELECT\n distinct i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join user [...]
"refId": "A",
"select": [
[
@@ -1035,6 +1176,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1059,6 +1217,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Issue Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1147,21 +1307,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _issues as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua [...]
+ "rawSql": "with _issues as(\n SELECT\n distinct i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join user [...]
"refId": "A",
"select": [
[
@@ -1173,6 +1337,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1190,7 +1371,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -1199,6 +1383,15 @@
},
"id": 124,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "4. PR Review Depth and PR Size",
"type": "row"
},
@@ -1212,6 +1405,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -1299,21 +1494,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _merged_prs as(\n SELECT\n pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n prc.id as comment_id,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n left join pull_request_comments prc on pr.id = prc.pull_request_id\n join user_accounts ua on pr.author_id = ua.account [...]
+ "rawSql": "with _merged_prs as(\n SELECT\n distinct pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n prc.id as comment_id,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n left join pull_request_comments prc on pr.id = prc.pull_request_id\n join user_accounts ua on pr.author_id = u [...]
"refId": "A",
"select": [
[
@@ -1325,6 +1524,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1350,6 +1566,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Pull Request Count",
"axisPlacement": "auto",
"barAlignment": 1,
@@ -1437,21 +1655,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "multi"
+ "mode": "multi",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _prs as(\n SELECT\n pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n pr.merge_commit_sha,\n c.additions + c.deletions as loc,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n left join commits c on pr.merge_commit_sha = c.sha\n join user_accounts ua on pr.author_i [...]
+ "rawSql": "with _prs as(\n SELECT\n distinct pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n pr.merge_commit_sha,\n c.additions + c.deletions as loc,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n left join commits c on pr.merge_commit_sha = c.sha\n join user_accounts ua on pr [...]
"refId": "A",
"select": [
[
@@ -1463,6 +1685,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1480,7 +1719,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -1489,6 +1731,15 @@
},
"id": 119,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "5. P0/P1 Bugs",
"type": "row"
},
@@ -1501,6 +1752,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Bug Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1589,21 +1842,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _bugs as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua.u [...]
+ "rawSql": "with _bugs as(\n SELECT\n distinct i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users [...]
"refId": "A",
"select": [
[
@@ -1615,6 +1872,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1639,6 +1913,8 @@
"mode": "palette-classic"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "Bug Count",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1727,21 +2003,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "time_series",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _bugs as(\n SELECT\n i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users u on ua.u [...]
+ "rawSql": "with _bugs as(\n SELECT\n distinct i.id,\n i.url,\n i.created_date,\n i.status,\n i.assignee_id,\n i.story_point,\n i.priority,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM issues 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\t join project_mapping pm on b.id = pm.row_id\n \tjoin user_accounts ua on i.assignee_id = ua.account_id\n join users [...]
"refId": "A",
"select": [
[
@@ -1753,6 +2033,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1770,7 +2067,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -1779,6 +2079,15 @@
},
"id": 103,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "6. Cycle Time",
"type": "row"
},
@@ -1792,6 +2101,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -1876,15 +2187,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -1927,6 +2241,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -2011,15 +2327,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -2062,6 +2381,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -2146,15 +2467,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -2197,6 +2521,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -2281,15 +2607,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -2332,6 +2661,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -2416,15 +2747,18 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
"format": "table",
"group": [],
"hide": false,
@@ -2459,7 +2793,10 @@
},
{
"collapsed": false,
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 1,
"w": 24,
@@ -2468,6 +2805,15 @@
},
"id": 139,
"panels": [],
+ "targets": [
+ {
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
+ "refId": "A"
+ }
+ ],
"title": "7. PRs Merged w/o Review",
"type": "row"
},
@@ -2481,6 +2827,8 @@
"mode": "fixed"
},
"custom": {
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
@@ -2565,21 +2913,25 @@
"mean"
],
"displayMode": "list",
- "placement": "bottom"
+ "placement": "bottom",
+ "showLegend": true
},
"tooltip": {
- "mode": "single"
+ "mode": "single",
+ "sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _merged_prs as(\n SELECT\n pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n join user_accounts ua on pr.author_id = ua.account_id\n join users u on ua.user_id = u.id\n join team_users tu on u.id = tu.user_id\n join t [...]
+ "rawSql": "with _merged_prs as(\n SELECT\n distinct pr.id,\n pr.url,\n pr.created_date,\n pr.merged_date,\n pr.author_id,\n u.id as user_id,\n u.name as user_name,\n t.id as team_id,\n t.name as team\n FROM pull_requests pr\n join project_mapping pm on pr.base_repo_id = pm.row_id and pm.table = 'repos' \n join user_accounts ua on pr.author_id = ua.account_id\n join users u on ua.user_id = u.id\n join team_users tu on u.id = tu.user_id\n [...]
"refId": "A",
"select": [
[
@@ -2591,6 +2943,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -2607,7 +2976,10 @@
"type": "timeseries"
},
{
- "datasource": null,
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"gridPos": {
"h": 2,
"w": 24,
@@ -2616,12 +2988,21 @@
},
"id": 144,
"options": {
+ "code": {
+ "language": "plaintext",
+ "showLineNumbers": false,
+ "showMiniMap": false
+ },
"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": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": {
+ "type": "datasource",
+ "uid": "grafana"
+ },
"queryType": "randomWalk",
"refId": "A"
}
@@ -2630,7 +3011,7 @@
}
],
"refresh": "",
- "schemaVersion": 30,
+ "schemaVersion": 38,
"style": "dark",
"tags": [
"Engineering Leads Dashboard"
@@ -2638,7 +3019,6 @@
"templating": {
"list": [
{
- "allValue": null,
"current": {
"selected": false,
"text": "All",
@@ -2646,8 +3026,6 @@
},
"datasource": "mysql",
"definition": "select distinct name from projects",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "Project",
@@ -2664,15 +3042,12 @@
{
"allValue": "",
"current": {
- "isNone": true,
"selected": false,
- "text": "None",
- "value": ""
+ "text": "管理",
+ "value": "zentao:ZentaoDepartment:1:5"
},
"datasource": "mysql",
"definition": "select concat(name, '--', id) as text from teams",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": false,
"label": "Team1",
@@ -2689,15 +3064,12 @@
{
"allValue": "",
"current": {
- "isNone": true,
"selected": false,
- "text": "None",
- "value": ""
+ "text": "管理",
+ "value": "zentao:ZentaoDepartment:1:5"
},
"datasource": "mysql",
"definition": "select concat(name, '--', id) as text from teams",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": false,
"label": "Team2",
@@ -2724,8 +3096,6 @@
},
"datasource": "mysql",
"definition": "select distinct priority from issues where priority != ''",
- "description": null,
- "error": null,
"hide": 0,
"includeAll": true,
"label": "P0+P1 Priority",
@@ -2740,14 +3110,12 @@
"type": "query"
},
{
- "allValue": null,
"current": {
"selected": false,
"text": "Month",
"value": "DAYOFMONTH"
},
"description": "",
- "error": null,
"hide": 0,
"includeAll": false,
"label": "Time Interval",
@@ -2780,5 +3148,6 @@
"timezone": "",
"title": "Engineering Throughput and Cycle Time - Team View",
"uid": "nJ1ijje7k",
- "version": 6
+ "version": 2,
+ "weekStart": ""
}
\ No newline at end of file
diff --git a/grafana/dashboards/GitHub.json b/grafana/dashboards/GitHub.json
index 99a9e7135..01dd7b0c2 100644
--- a/grafana/dashboards/GitHub.json
+++ b/grafana/dashboards/GitHub.json
@@ -245,7 +245,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -482,7 +482,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -678,7 +678,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -791,7 +791,7 @@
"xTickLabelRotation": 45,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1226,7 +1226,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1357,7 +1357,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1589,7 +1589,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1798,7 +1798,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1992,7 +1992,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -2184,7 +2184,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -2548,7 +2548,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -2770,7 +2770,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -2920,7 +2920,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -3079,7 +3079,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -3225,7 +3225,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/Gitlab.json b/grafana/dashboards/Gitlab.json
index ea6ba19b9..7aa109339 100644
--- a/grafana/dashboards/Gitlab.json
+++ b/grafana/dashboards/Gitlab.json
@@ -102,19 +102,17 @@
"text": {},
"textMode": "auto"
},
-<<<<<<< HEAD
- "pluginVersion": "8.0.6",
-=======
"pluginVersion": "9.5.15",
->>>>>>> 96fd73b7e (fix: remove duplicates some plugins dashboard sql (#6855))
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n\tcount(*) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\t\n\n",
+ "rawSql": "select\n\tcount(distinct pr.id) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\t\n\n",
"refId": "A",
"select": [
[
@@ -126,6 +124,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -203,15 +218,17 @@
"mode": "single"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "with _prs as(\n SELECT\n DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY) as time,\n count(*) as pr_count\n FROM pull_requests\n WHERE\n base_repo_id in ($repo_id)\n and $__timeFilter(created_date)\n and created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n group by 1\n)\n\nSELECT \n date_format(time,'%M %Y') as month,\n pr_count as \"Pull Request Count\"\nFROM _prs\nORDER [...]
+ "rawSql": "with _prs as(\n SELECT\n DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY) as time,\n count(distinct id) as pr_count\n FROM pull_requests\n WHERE\n base_repo_id in ($repo_id)\n and $__timeFilter(created_date)\n -- The following condition will remove the month with incomplete data\n -- and created_date >= DATE_ADD(DATE_ADD($__timeFrom(), INTERVAL -DAY($__timeFrom())+1 DAY), INTERVAL +1 MONTH)\n group by 1\n)\n\nSELECT \n date [...]
"refId": "A",
"select": [
[
@@ -301,15 +318,17 @@
"mode": "multi"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "-- The PR/MR statuses are standardized to DevLake's statuses 'OPEN', 'MERGED' and 'CLOSED'. You can check out the original status from the field `original_status`\nselect\n author_name,\n\tcount(*) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\tand pr.status = 'MERGED'\ngroup by 1\norder by 2 desc\nlimit 20\n",
+ "rawSql": "-- The PR/MR statuses are standardized to DevLake's statuses 'OPEN', 'MERGED' and 'CLOSED'. You can check out the original status from the field `original_status`\nselect\n author_name,\n\tcount(distinct pr.id) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\tand pr.status = 'MERGED'\ngroup by 1\norder by 2 desc\nlimit 20\n",
"refId": "A",
"select": [
[
@@ -321,6 +340,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -395,11 +431,7 @@
"text": {},
"textMode": "auto"
},
-<<<<<<< HEAD
- "pluginVersion": "8.0.6",
-=======
"pluginVersion": "9.5.15",
->>>>>>> 96fd73b7e (fix: remove duplicates some plugins dashboard sql (#6855))
"targets": [
{
"format": "table",
@@ -502,7 +534,7 @@
"mode": "multi"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "time_series",
@@ -583,15 +615,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
+ "datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "-- The PR/MR statuses are standardized to DevLake's statuses 'OPEN', 'MERGED' and 'CLOSED'. You can check out the original status from the field `original_status`\nselect\n\tcount(*) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\tand pr.status = 'CLOSED'",
+ "rawSql": "-- The PR/MR statuses are standardized to DevLake's statuses 'OPEN', 'MERGED' and 'CLOSED'. You can check out the original status from the field `original_status`\nselect\n\tcount(distinct pr.id) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n $__timeFilter(created_date)\n\tand base_repo_id in ($repo_id)\n\tand pr.status = 'CLOSED'",
"refId": "A",
"select": [
[
@@ -603,6 +637,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -689,7 +740,7 @@
"mode": "multi"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "time_series",
@@ -770,7 +821,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "table",
@@ -866,7 +917,7 @@
"mode": "single"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "table",
@@ -945,7 +996,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "table",
@@ -1041,7 +1092,7 @@
"mode": "single"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"format": "table",
@@ -1089,7 +1140,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": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"queryType": "randomWalk",
@@ -1145,6 +1196,6 @@
"timezone": "",
"title": "GitLab",
"uid": "msSjEq97z",
- "version": 1,
+ "version": 2,
"weekStart": ""
}
\ No newline at end of file
diff --git a/grafana/dashboards/Jenkins.json b/grafana/dashboards/Jenkins.json
index 998ca341f..b81239d66 100644
--- a/grafana/dashboards/Jenkins.json
+++ b/grafana/dashboards/Jenkins.json
@@ -374,7 +374,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -580,7 +580,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -731,7 +731,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -891,7 +891,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1020,7 +1020,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/Jira.json b/grafana/dashboards/Jira.json
index 508756e7e..207accee6 100644
--- a/grafana/dashboards/Jira.json
+++ b/grafana/dashboards/Jira.json
@@ -377,7 +377,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -569,7 +569,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -885,7 +885,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/PagerDuty.json b/grafana/dashboards/PagerDuty.json
index 2c90e025f..8516505dd 100644
--- a/grafana/dashboards/PagerDuty.json
+++ b/grafana/dashboards/PagerDuty.json
@@ -588,7 +588,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -950,7 +950,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/TAPD.json b/grafana/dashboards/TAPD.json
index f03896d72..4cf50e375 100644
--- a/grafana/dashboards/TAPD.json
+++ b/grafana/dashboards/TAPD.json
@@ -383,7 +383,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -575,7 +575,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -873,7 +873,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/Teambition.json b/grafana/dashboards/Teambition.json
index 6cb2d5a1a..17be27a8a 100644
--- a/grafana/dashboards/Teambition.json
+++ b/grafana/dashboards/Teambition.json
@@ -383,7 +383,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -575,7 +575,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -873,7 +873,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
diff --git a/grafana/dashboards/WeeklyBugRetro.json b/grafana/dashboards/WeeklyBugRetro.json
index 1623b1074..fbcec18a3 100644
--- a/grafana/dashboards/WeeklyBugRetro.json
+++ b/grafana/dashboards/WeeklyBugRetro.json
@@ -18,7 +18,7 @@
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 3,
+ "id": 11,
"links": [],
"liveNow": false,
"panels": [
@@ -43,7 +43,7 @@
"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 [...]
"mode": "markdown"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -103,16 +103,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 date(i.created_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 date(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": [
[
@@ -124,6 +125,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -189,16 +207,17 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n priority,\n count(*) 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 date(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": "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 date(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": [
[
@@ -210,6 +229,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -354,7 +390,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -436,16 +472,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 date(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\tjoin boards b on bi.board_id = b.id\nwhere\n i.type in ($issue_type)\n and status = 'DONE'\n and date(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": [
[
@@ -457,6 +494,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -523,7 +577,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -661,7 +715,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -774,7 +828,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -822,8 +876,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -856,16 +909,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 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": [
[
@@ -877,6 +931,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -904,8 +975,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -938,7 +1008,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -993,8 +1063,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1099,7 +1168,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1168,8 +1237,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1214,7 +1282,7 @@
"xTickLabelRotation": 45,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1269,8 +1337,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1352,7 +1419,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1421,8 +1488,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1467,12 +1533,13 @@
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"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(*) 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((SYSDATE()-INTERVAL (H+T+U [...]
+ "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((SYSDATE()-INT [...]
"refId": "A",
"select": [
[
@@ -1484,6 +1551,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1532,8 +1616,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1578,12 +1661,13 @@
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"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(*) 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_date as(\n\tSELECT [...]
+ "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_date a [...]
"refId": "A",
"select": [
[
@@ -1595,6 +1679,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1643,8 +1744,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1691,12 +1791,13 @@
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "with calendar_date as(\n\tSELECT CAST((SYSDATE()-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 SELEC [...]
+ "rawSql": "with calendar_date as(\n\tSELECT CAST((SYSDATE()-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 SELEC [...]
"refId": "A",
"select": [
[
@@ -1708,6 +1809,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1744,7 +1862,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/UserManuals/Dashboards/GrafanaUserGuide).",
"mode": "markdown"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -1790,8 +1908,8 @@
{
"current": {
"selected": false,
- "text": "BUG",
- "value": "BUG"
+ "text": "All",
+ "value": "$__all"
},
"datasource": "mysql",
"definition": "select distinct type from issues",
diff --git a/grafana/dashboards/WeeklyCommunityRetro.json b/grafana/dashboards/WeeklyCommunityRetro.json
index 92c34d020..79fd49ad3 100644
--- a/grafana/dashboards/WeeklyCommunityRetro.json
+++ b/grafana/dashboards/WeeklyCommunityRetro.json
@@ -18,7 +18,7 @@
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
- "id": 28,
+ "id": 14,
"links": [],
"liveNow": false,
"panels": [
@@ -43,7 +43,7 @@
"content": "- Use Cases: This dashboard can be used to track community growth by OSS maintainers.\n- Data Source Required: GitHub users' organizations are used to filter issues/PRs created by certain users. [Publicize users' org](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) so that Apache DevLake can collect users' org.\n- This dashboa [...]
"mode": "markdown"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -129,16 +129,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_id)",
"refId": "A",
"select": [
[
@@ -150,6 +151,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -211,16 +229,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n count(*)\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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_id)\n and i.creator_id not in (select distinct id from accounts where organization in ($org))",
+ "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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_id)\n and i.creator_id not in (select distinct id from accounts where organization in ($org))",
"refId": "A",
"select": [
[
@@ -232,6 +251,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -294,16 +330,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n sum(case when i.creator_id not in (select distinct id from accounts where organization in ($org)\n ) then 1 else 0 end)/count(*) as community_issue_ratio\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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_id)",
+ "rawSql": "select\n sum(case when i.creator_id not in (select distinct id from accounts where organization in ($org)\n ) then 1 else 0 end)/count(distinct i.id) as community_issue_ratio\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 date(i.created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n and b.id in ($repo_id)",
"refId": "A",
"select": [
[
@@ -315,6 +352,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -380,7 +434,7 @@
},
"showHeader": true
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -467,7 +521,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -629,7 +683,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -695,8 +749,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "#EAB839",
@@ -734,7 +787,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -789,8 +842,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -901,7 +953,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -994,8 +1046,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1028,16 +1079,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n\tcount(*) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\t\n\n",
+ "rawSql": "select\n\tcount(distinct pr.id) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\t\n\n",
"refId": "A",
"select": [
[
@@ -1049,6 +1101,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1077,8 +1146,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1111,16 +1179,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n\tcount(*) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
+ "rawSql": "select\n\tcount(distinct pr.id) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
"refId": "A",
"select": [
[
@@ -1132,6 +1201,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1159,8 +1245,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1194,16 +1279,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"metricColumn": "none",
"queryType": "randomWalk",
"rawQuery": true,
- "rawSql": "select\n sum(case when author_id not in (select distinct id from accounts where organization in ($org))\n then 1 else 0 end)/count(*) as community_pr_ratio\nfrom\n pull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)",
+ "rawSql": "select\n sum(case when author_id not in (select distinct id from accounts where organization in ($org))\n then 1 else 0 end)/count(distinct pr.id) as community_pr_ratio\nfrom\n pull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)",
"refId": "A",
"select": [
[
@@ -1215,6 +1301,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "_devlake_migration_history",
"timeColumn": "created_at",
"timeColumnType": "timestamp",
@@ -1243,8 +1346,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1277,16 +1379,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n\tcount(*) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand merged_date is not null\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
+ "rawSql": "select\n\tcount(distinct pr.id) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand merged_date is not null\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
"refId": "A",
"select": [
[
@@ -1298,6 +1401,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1326,8 +1446,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1361,7 +1480,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1417,8 +1536,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1448,7 +1566,7 @@
},
"showHeader": true
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1515,8 +1633,7 @@
"mode": "absolute",
"steps": [
{
- "color": "red",
- "value": null
+ "color": "red"
},
{
"color": "#EAB839",
@@ -1554,16 +1671,17 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
+ "editorMode": "code",
"format": "table",
"group": [],
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n\tsum(case when merged_date is not null then 1 else 0 end)/ count(*) as merged_pull_request_ratio\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
+ "rawSql": "select\n\tcount(distinct case when merged_date is not null then pr.id else null end)/ count(distinct pr.id) as merged_pull_request_ratio\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand author_id not in (select distinct id from accounts where organization in ($org))",
"refId": "A",
"select": [
[
@@ -1575,6 +1693,23 @@
}
]
],
+ "sql": {
+ "columns": [
+ {
+ "parameters": [],
+ "type": "function"
+ }
+ ],
+ "groupBy": [
+ {
+ "property": {
+ "type": "string"
+ },
+ "type": "groupBy"
+ }
+ ],
+ "limit": 50
+ },
"table": "ae_projects",
"timeColumn": "ae_create_time",
"timeColumnType": "timestamp",
@@ -1609,8 +1744,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1669,7 +1803,7 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1757,8 +1891,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1801,7 +1934,7 @@
"xTickLabelRotation": 45,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1811,7 +1944,7 @@
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n author_name,\n\tcount(*) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand merged_date is not NULL\n\tand author_id not in (select distinct id from accounts where organization in ($org))\ngroup by 1\norder by 2 desc\nlimit 20\n",
+ "rawSql": "select\n author_name,\n\tcount(distinct pr.id) as pull_request_count\nfrom \n\tpull_requests pr\nwhere\n date(created_date) BETWEEN curdate() - INTERVAL WEEKDAY(curdate())+7 DAY AND curdate() - INTERVAL WEEKDAY(curdate()) DAY\n\tand base_repo_id in ($repo_id)\n\tand merged_date is not NULL\n\tand author_id not in (select distinct id from accounts where organization in ($org))\ngroup by 1\norder by 2 desc\nlimit 20\n",
"refId": "A",
"select": [
[
@@ -1868,8 +2001,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
}
]
}
@@ -1897,7 +2029,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -1964,8 +2096,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
}
]
},
@@ -1998,7 +2129,7 @@
},
"valueMode": "color"
},
- "pluginVersion": "9.5.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -2008,7 +2139,7 @@
"hide": false,
"metricColumn": "none",
"rawQuery": true,
- "rawSql": "select\n author_name,\n\tcount(*) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n\tbase_repo_id in ($repo_id)\n\tand merged_date is not NULL\n\t-- and author_id not in (select distinct id from accounts where organization in ($org))\ngroup by 1\norder by 2 desc\nlimit 20\n",
+ "rawSql": "select\n author_name,\n\tcount(distinct pr.id) as merged_pull_request_count\nfrom \n\tpull_requests pr\nwhere\n\tbase_repo_id in ($repo_id)\n\tand merged_date is not NULL\n\t-- and author_id not in (select distinct id from accounts where organization in ($org))\ngroup by 1\norder by 2 desc\nlimit 20\n",
"refId": "A",
"select": [
[
@@ -2073,7 +2204,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.1",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": {
@@ -2177,6 +2308,6 @@
"timezone": "",
"title": "Weekly Community Retro",
"uid": "VTr6Y_q7z",
- "version": 9,
+ "version": 2,
"weekStart": ""
}
\ No newline at end of file
diff --git a/grafana/dashboards/Zentao.json b/grafana/dashboards/Zentao.json
index 0b11b90d0..e2fc2255a 100644
--- a/grafana/dashboards/Zentao.json
+++ b/grafana/dashboards/Zentao.json
@@ -383,7 +383,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -575,7 +575,7 @@
"sort": "none"
}
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",
@@ -873,7 +873,7 @@
"xTickLabelRotation": 0,
"xTickLabelSpacing": 0
},
- "pluginVersion": "8.0.6",
+ "pluginVersion": "9.5.15",
"targets": [
{
"datasource": "mysql",