diff --git a/grafana/Dockerfile b/grafana/Dockerfile index f8bd62398d7..cd401b9bb5e 100644 --- a/grafana/Dockerfile +++ b/grafana/Dockerfile @@ -23,7 +23,7 @@ #While incubation status is not necessarily a reflection of the completeness or stability of the code, #it does indicate that the project has yet to be fully endorsed by the ASF. -FROM grafana/grafana:11.6.2 +FROM grafana/grafana:13.0.2 COPY ./provisioning/dashboards /etc/grafana/provisioning/dashboards COPY ./dashboards /etc/grafana/dashboards COPY ./scripts/entrypoint.sh /entrypoint.sh @@ -37,8 +37,8 @@ ENV GF_SERVER_PROTOCOL=http ENV GF_SERVER_DOMAIN=localhost:3000 ENV GF_SERVER_ROOT_URL=http://localhost:3000/grafana USER root -RUN grafana-cli plugins install grafana-piechart-panel && \ - chmod +x /entrypoint.sh && \ +# grafana-piechart-panel removed: dashboards use the core "piechart" panel type +RUN chmod +x /entrypoint.sh && \ chgrp -R 0 /etc/grafana /usr/share/grafana /var/lib/grafana && \ chmod -R g=u /etc/grafana /usr/share/grafana /var/lib/grafana USER 101 diff --git a/grafana/dashboards/ClaudeCodeAdoption.json b/grafana/dashboards/ClaudeCodeAdoption.json index 82513cc1452..5d08946f923 100644 --- a/grafana/dashboards/ClaudeCodeAdoption.json +++ b/grafana/dashboards/ClaudeCodeAdoption.json @@ -22,7 +22,7 @@ "liveNow": false, "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Latest daily active user count from the organization summary feed", "fieldConfig": { "defaults": { @@ -62,10 +62,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT daily_active_user_count as \"Daily Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -76,7 +76,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Latest weekly active user count from the organization summary feed", "fieldConfig": { "defaults": { @@ -116,10 +116,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT weekly_active_user_count as \"Weekly Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -130,7 +130,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Latest monthly active user count from the organization summary feed", "fieldConfig": { "defaults": { @@ -170,10 +170,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT monthly_active_user_count as \"Monthly Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -184,7 +184,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Latest assigned seat count from the organization summary feed", "fieldConfig": { "defaults": { @@ -224,10 +224,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT assigned_seat_count as \"Assigned Seats\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -238,7 +238,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Latest pending invite count from the organization summary feed", "fieldConfig": { "defaults": { @@ -278,10 +278,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT pending_invite_count as \"Pending Invites\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -292,7 +292,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distinct Claude Code users with code activity on the most recent available analytics date", "fieldConfig": { "defaults": { @@ -332,10 +332,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_id) as \"Active Claude Code Users\"\nFROM _tool_claude_code_user_activity\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND `date` = (\n SELECT MAX(`date`)\n FROM _tool_claude_code_user_activity\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n )\n AND (\n cc_session_count > 0\n OR cc_commit_count > 0\n OR cc_pull_request_count > 0\n OR cc_lines_added > 0\n OR cc_lines_removed > 0\n OR edit_tool_accepted + edit_tool_rejected + multi_edit_tool_accepted + multi_edit_tool_rejected + write_tool_accepted + write_tool_rejected + notebook_edit_tool_accepted + notebook_edit_tool_rejected > 0\n )", @@ -346,7 +346,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total Claude Code sessions in the selected time range", "fieldConfig": { "defaults": { @@ -386,10 +386,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(cc_session_count) as \"Sessions\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -400,7 +400,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Accepted tool actions as a percentage of all accepted and rejected tool actions", "fieldConfig": { "defaults": { @@ -450,10 +450,10 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(\n SUM(edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted) * 100.0\n / NULLIF(\n SUM(\n edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted\n + edit_tool_rejected + multi_edit_tool_rejected + write_tool_rejected + notebook_edit_tool_rejected\n ),\n 0\n ),\n 1\n) as \"Acceptance Rate %\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -464,7 +464,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total lines added by Claude Code across the organization in the selected time range", "fieldConfig": { "defaults": { @@ -504,10 +504,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(cc_lines_added) as \"Lines Added\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -518,7 +518,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total commits attributed to Claude Code in the selected time range", "fieldConfig": { "defaults": { @@ -558,10 +558,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(cc_commit_count) as \"Commits\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -572,7 +572,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total pull requests attributed to Claude Code in the selected time range", "fieldConfig": { "defaults": { @@ -612,10 +612,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(cc_pull_request_count) as \"PRs\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -626,7 +626,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "How many days have elapsed since the newest row across the migrated Claude analytics tables; Anthropic analytics normally lag by about 3 days", "fieldConfig": { "defaults": { @@ -674,10 +674,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(TIMESTAMPDIFF(DAY, MAX(latest_date), UTC_DATE()), 9999) as \"Days Since Latest Data\"\nFROM (\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_user_activity\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_activity_summary\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_chat_project\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_skill_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_connector_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n) latest_dates", @@ -688,7 +688,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily, weekly, and monthly active user counts over time from the organization summary feed", "fieldConfig": { "defaults": { @@ -758,10 +758,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n daily_active_user_count as \"Daily Active Users\",\n weekly_active_user_count as \"Weekly Active Users\",\n monthly_active_user_count as \"Monthly Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY 1", @@ -772,7 +772,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily Claude Code sessions and distinct users with code activity over time", "fieldConfig": { "defaults": { @@ -842,10 +842,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n SUM(cc_session_count) as \"Sessions\",\n COUNT(DISTINCT CASE\n WHEN (\n cc_session_count > 0\n OR cc_commit_count > 0\n OR cc_pull_request_count > 0\n OR cc_lines_added > 0\n OR cc_lines_removed > 0\n OR edit_tool_accepted + edit_tool_rejected + multi_edit_tool_accepted + multi_edit_tool_rejected + write_tool_accepted + write_tool_rejected + notebook_edit_tool_accepted + notebook_edit_tool_rejected > 0\n ) THEN user_id\n ELSE NULL\n END) as \"Active Users\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY `date`\nORDER BY 1", @@ -856,7 +856,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Lines added and removed over time", "fieldConfig": { "defaults": { @@ -926,10 +926,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n SUM(cc_lines_added) as \"Lines Added\",\n SUM(cc_lines_removed) as \"Lines Removed\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY `date`\nORDER BY 1", @@ -940,7 +940,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Assigned seats and pending invites over time from the organization summary feed", "fieldConfig": { "defaults": { @@ -1010,10 +1010,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n assigned_seat_count as \"Assigned Seats\",\n pending_invite_count as \"Pending Invites\"\nFROM _tool_claude_code_activity_summary\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY 1", @@ -1024,7 +1024,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Accepted and rejected tool actions, grouped by Claude Code tool", "fieldConfig": { "defaults": { @@ -1051,10 +1051,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT tool_name as \"Tool\",\n SUM(accepted) as \"Accepted\",\n SUM(rejected) as \"Rejected\",\n ROUND(SUM(accepted) * 100.0 / NULLIF(SUM(accepted + rejected), 0), 1) as \"Acceptance Rate %\"\nFROM (\n SELECT `date`, connection_id, scope_id, 'edit_tool' as tool_name, edit_tool_accepted as accepted, edit_tool_rejected as rejected\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'multi_edit_tool' as tool_name, multi_edit_tool_accepted as accepted, multi_edit_tool_rejected as rejected\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'write_tool' as tool_name, write_tool_accepted as accepted, write_tool_rejected as rejected\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'notebook_edit_tool' as tool_name, notebook_edit_tool_accepted as accepted, notebook_edit_tool_rejected as rejected\n FROM _tool_claude_code_user_activity\n) tool_actions\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY tool_name\nORDER BY SUM(accepted + rejected) DESC, tool_name", @@ -1065,7 +1065,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Peak daily users and session counts grouped by Claude skill usage", "fieldConfig": { "defaults": { @@ -1092,10 +1092,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT skill_name as \"Skill\",\n MAX(distinct_user_count) as \"Peak Daily Users\",\n SUM(chat_conversation_count) as \"Chat Conversations\",\n SUM(cc_session_count) as \"Claude Code Sessions\"\nFROM _tool_claude_code_skill_usage\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY skill_name\nORDER BY SUM(cc_session_count + chat_conversation_count) DESC, skill_name", @@ -1106,7 +1106,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Peak daily users and session counts grouped by connector usage", "fieldConfig": { "defaults": { @@ -1133,10 +1133,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT connector_name as \"Connector\",\n MAX(distinct_user_count) as \"Peak Daily Users\",\n SUM(chat_conversation_count) as \"Chat Conversations\",\n SUM(cc_session_count) as \"Claude Code Sessions\"\nFROM _tool_claude_code_connector_usage\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY connector_name\nORDER BY SUM(cc_session_count + chat_conversation_count) DESC, connector_name", @@ -1147,7 +1147,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Project-level chat adoption with only project aggregates; user identifiers are intentionally excluded from this org dashboard", "fieldConfig": { "defaults": { @@ -1174,10 +1174,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(NULLIF(project_name, ''), project_id) as \"Project\",\n MAX(distinct_user_count) as \"Peak Daily Users\",\n SUM(conversation_count) as \"Conversations\",\n SUM(message_count) as \"Messages\"\nFROM _tool_claude_code_chat_project\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nGROUP BY COALESCE(NULLIF(project_name, ''), project_id)\nORDER BY SUM(message_count + conversation_count) DESC, 1\nLIMIT 25", @@ -1188,7 +1188,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Diagnostics table for row counts and freshest available date per Claude metric table", "fieldConfig": { "defaults": { @@ -1215,10 +1215,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT *\nFROM (\n SELECT '_tool_claude_code_activity_summary' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_activity_summary\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_user_activity' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_user_activity\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_skill_usage' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_skill_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_connector_usage' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_connector_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_chat_project' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_chat_project\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n) data_volume\nORDER BY row_count DESC, table_name", @@ -1244,7 +1244,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_claude_code_scopes ORDER BY connection_id DESC", "hide": 0, "includeAll": false, @@ -1265,7 +1265,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT id as scope_id FROM _tool_claude_code_scopes WHERE connection_id = ${connection_id} ORDER BY 1", "hide": 0, "includeAll": false, diff --git a/grafana/dashboards/ClaudeCodeAdoptionByUser.json b/grafana/dashboards/ClaudeCodeAdoptionByUser.json index 48af63c3376..85b1335a6dc 100644 --- a/grafana/dashboards/ClaudeCodeAdoptionByUser.json +++ b/grafana/dashboards/ClaudeCodeAdoptionByUser.json @@ -22,7 +22,7 @@ "liveNow": false, "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Org-level daily active user count; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -62,10 +62,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT daily_active_user_count as \"Org Daily Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -76,7 +76,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Org-level assigned seat count; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -116,10 +116,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT assigned_seat_count as \"Org Assigned Seats\"\nFROM _tool_claude_code_activity_summary\nWHERE connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY `date` DESC\nLIMIT 1", @@ -130,7 +130,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Org-level session total for the selected time range; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -170,10 +170,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_session_count), 0) as \"Org Sessions\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'", @@ -184,7 +184,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Days since the freshest Claude analytics row across the registered metric tables; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -232,10 +232,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(TIMESTAMPDIFF(DAY, MAX(latest_date), UTC_DATE()), 9999) as \"Days Since Latest Data\"\nFROM (\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_user_activity\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_activity_summary\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_chat_project\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_skill_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT MAX(`date`) as latest_date\n FROM _tool_claude_code_connector_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n) latest_dates", @@ -259,7 +259,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Sessions for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -299,10 +299,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_session_count), 0) as \"Selected User Sessions\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -313,7 +313,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Tool acceptance rate for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -363,10 +363,10 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(\n SUM(edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted) * 100.0\n / NULLIF(\n SUM(\n edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted\n + edit_tool_rejected + multi_edit_tool_rejected + write_tool_rejected + notebook_edit_tool_rejected\n ),\n 0\n ),\n 1\n) as \"Selected User Acceptance Rate %\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -377,7 +377,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Lines added for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -417,10 +417,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_lines_added), 0) as \"Selected User Lines Added\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -431,7 +431,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Lines removed for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -471,10 +471,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_lines_removed), 0) as \"Selected User Lines Removed\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -485,7 +485,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Commits for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -525,10 +525,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_commit_count), 0) as \"Selected User Commits\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -539,7 +539,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Pull requests for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -579,10 +579,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(cc_pull_request_count), 0) as \"Selected User PRs\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -593,7 +593,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Days with recorded Claude activity for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -633,10 +633,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT CASE\n WHEN (\n cc_session_count > 0\n OR cc_commit_count > 0\n OR cc_pull_request_count > 0\n OR cc_lines_added > 0\n OR cc_lines_removed > 0\n OR chat_conversation_count > 0\n OR web_search_count > 0\n OR edit_tool_accepted + edit_tool_rejected + multi_edit_tool_accepted + multi_edit_tool_rejected + write_tool_accepted + write_tool_rejected + notebook_edit_tool_accepted + notebook_edit_tool_rejected > 0\n ) THEN `date`\n ELSE NULL\n END) as \"Selected User Active Days\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -647,7 +647,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Chat conversations for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -687,10 +687,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(SUM(chat_conversation_count), 0) as \"Selected User Chat Conversations\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )", @@ -714,7 +714,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Sessions, commits, pull requests, and chat conversations over time for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -784,10 +784,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n SUM(cc_session_count) as \"Sessions\",\n SUM(cc_commit_count) as \"Commits\",\n SUM(cc_pull_request_count) as \"PRs\",\n SUM(chat_conversation_count) as \"Chat Conversations\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )\nGROUP BY `date`\nORDER BY 1", @@ -798,7 +798,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Code churn over time for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -868,10 +868,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n SUM(cc_lines_added) as \"Lines Added\",\n SUM(cc_lines_removed) as \"Lines Removed\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )\nGROUP BY `date`\nORDER BY 1", @@ -895,7 +895,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Accepted and rejected tool actions for the selected user; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -922,10 +922,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT tool_name as \"Tool\",\n SUM(accepted) as \"Accepted\",\n SUM(rejected) as \"Rejected\",\n ROUND(SUM(accepted) * 100.0 / NULLIF(SUM(accepted + rejected), 0), 1) as \"Acceptance Rate %\"\nFROM (\n SELECT `date`, connection_id, scope_id, 'edit_tool' as tool_name, edit_tool_accepted as accepted, edit_tool_rejected as rejected, user_id, user_email\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'multi_edit_tool' as tool_name, multi_edit_tool_accepted as accepted, multi_edit_tool_rejected as rejected, user_id, user_email\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'write_tool' as tool_name, write_tool_accepted as accepted, write_tool_rejected as rejected, user_id, user_email\n FROM _tool_claude_code_user_activity\n UNION ALL\n SELECT `date`, connection_id, scope_id, 'notebook_edit_tool' as tool_name, notebook_edit_tool_accepted as accepted, notebook_edit_tool_rejected as rejected, user_id, user_email\n FROM _tool_claude_code_user_activity\n) tool_actions\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )\nGROUP BY tool_name\nORDER BY SUM(accepted + rejected) DESC, tool_name", @@ -936,7 +936,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily activity details for the selected user without exposing user identity columns; admins and managers can inspect any user, other viewers are restricted to their own email-matched data", "fieldConfig": { "defaults": { @@ -963,10 +963,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as \"Day\",\n SUM(cc_session_count) as \"Sessions\",\n SUM(chat_conversation_count) as \"Chat Conversations\",\n SUM(web_search_count) as \"Web Searches\",\n SUM(cc_lines_added) as \"Lines Added\",\n SUM(cc_lines_removed) as \"Lines Removed\",\n SUM(cc_commit_count) as \"Commits\",\n SUM(cc_pull_request_count) as \"PRs\",\n ROUND(\n SUM(edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted) * 100.0\n / NULLIF(\n SUM(\n edit_tool_accepted + multi_edit_tool_accepted + write_tool_accepted + notebook_edit_tool_accepted\n + edit_tool_rejected + multi_edit_tool_rejected + write_tool_rejected + notebook_edit_tool_rejected\n ),\n 0\n ),\n 1\n ) as \"Tool Acceptance Rate %\"\nFROM _tool_claude_code_user_activity\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\n AND (\n ixd_get_user_role('${__user.email}') IN ('admin', 'manager')\n OR user_email = '${__user.email}'\n )\n AND (\n '${user:csv}' = '0'\n OR COALESCE(NULLIF(user_email, ''), user_id) = ${user:sqlstring}\n )\nGROUP BY `date`\nORDER BY `date` DESC\nLIMIT 60", @@ -990,7 +990,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Org-level active user counts over time; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -1060,10 +1060,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n daily_active_user_count as \"Daily Active Users\",\n weekly_active_user_count as \"Weekly Active Users\",\n monthly_active_user_count as \"Monthly Active Users\"\nFROM _tool_claude_code_activity_summary\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY 1", @@ -1074,7 +1074,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Org-level assigned seats and pending invites over time; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -1144,10 +1144,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT `date` as time,\n assigned_seat_count as \"Assigned Seats\",\n pending_invite_count as \"Pending Invites\"\nFROM _tool_claude_code_activity_summary\nWHERE $__timeFilter(`date`)\n AND connection_id = ${connection_id}\n AND scope_id = '${scope_id}'\nORDER BY 1", @@ -1171,7 +1171,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Diagnostics table for row counts and freshest available date per Claude metric table; intentionally ignores the Selected User filter", "fieldConfig": { "defaults": { @@ -1198,10 +1198,10 @@ }, "showHeader": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT *\nFROM (\n SELECT '_tool_claude_code_activity_summary' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_activity_summary\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_user_activity' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_user_activity\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_skill_usage' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_skill_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_connector_usage' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_connector_usage\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n UNION ALL\n SELECT '_tool_claude_code_chat_project' as table_name,\n COUNT(*) as row_count,\n MAX(`date`) as latest_date,\n COALESCE(TIMESTAMPDIFF(DAY, MAX(`date`), UTC_DATE()), 9999) as days_lag\n FROM _tool_claude_code_chat_project\n WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}'\n) data_volume\nORDER BY row_count DESC, table_name", @@ -1228,7 +1228,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_claude_code_scopes ORDER BY connection_id DESC", "hide": 0, "includeAll": false, @@ -1249,7 +1249,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT id as scope_id FROM _tool_claude_code_scopes WHERE connection_id = ${connection_id} ORDER BY 1", "hide": 0, "includeAll": false, @@ -1271,7 +1271,7 @@ "text": "All Accessible Users", "value": "0" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT user_key as __value, user_key as __text FROM (SELECT COALESCE(NULLIF(user_email, ''), user_id) as user_key, user_email FROM _tool_claude_code_user_activity WHERE connection_id = ${connection_id} AND scope_id = '${scope_id}') accessible_users WHERE ixd_get_user_role('${__user.email}') IN ('admin', 'manager') OR user_email = '${__user.email}' ORDER BY user_key", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/Linear.json b/grafana/dashboards/Linear.json index 1e748264206..242e545b429 100644 --- a/grafana/dashboards/Linear.json +++ b/grafana/dashboards/Linear.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Linear.\n- Data Source Required: Linear", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of issues created in the selected time range and board.", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The cumulative distribution of issue lead time. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1109,7 +1109,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1141,7 +1141,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'linear%'", "hide": 0, "includeAll": true, @@ -1162,7 +1162,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/Rootly.json b/grafana/dashboards/Rootly.json index de7cf18f7ad..8cb182b2a7e 100644 --- a/grafana/dashboards/Rootly.json +++ b/grafana/dashboards/Rootly.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the incident data from Rootly.\n- Data Source Required: Rootly", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -388,10 +388,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -441,7 +441,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -495,10 +495,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -548,7 +548,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -629,10 +629,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -708,7 +708,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -764,10 +764,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -818,7 +818,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -873,10 +873,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -927,7 +927,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1012,10 +1012,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1070,7 +1070,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of MTTR\n2. Each point refers to the percent rank of a distinct duration to resolve incidents.", "fill": 0, "fillGradient": 4, @@ -1107,7 +1107,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1117,7 +1117,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1232,7 +1232,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1265,7 +1265,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'rootly%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Asana.json b/grafana/dashboards/mysql/Asana.json index 665bb0672e2..9021540d4e7 100644 --- a/grafana/dashboards/mysql/Asana.json +++ b/grafana/dashboards/mysql/Asana.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Asana.\n- Data Source Required: Asana", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of issues created in the selected time range and board.", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The cumulative distribution of issue lead time. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1109,7 +1109,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1141,7 +1141,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'asana%'", "hide": 0, "includeAll": true, @@ -1162,7 +1162,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Bamboo.json b/grafana/dashboards/mysql/Bamboo.json index aa09186d94d..3269c059ec1 100644 --- a/grafana/dashboards/mysql/Bamboo.json +++ b/grafana/dashboards/mysql/Bamboo.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from Bamboo, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate). A build in Bamboo is an execution of a Bamboo Plan.\n- Data Source Required: Bamboo", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -111,10 +111,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -165,7 +165,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -214,10 +214,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -268,7 +268,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -401,10 +401,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -556,7 +556,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -639,10 +639,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -694,7 +694,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Build success rate over time.\n2. The builds being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -797,10 +797,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -851,7 +851,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -964,10 +964,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -1001,7 +1001,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1100,10 +1100,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1157,7 +1157,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1189,7 +1189,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from cicd_scopes where id like \"bamboo%\" ", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/DORA.json b/grafana/dashboards/mysql/DORA.json index 3d3fdaa0983..089fd7995da 100644 --- a/grafana/dashboards/mysql/DORA.json +++ b/grafana/dashboards/mysql/DORA.json @@ -43,7 +43,7 @@ "content": "- See [how to config](https://devlake.apache.org/docs/DORA) this dashboard\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- You can validate/debug this dashboard with the [DORA validation dashboard](/grafana/d/KGkUnV-Vz/dora-dashboard-validation)\n- DORA benchmarks vary in different years. You can switch the benchmarks to change them.\n- In DORA's official report in 2023, metric 'failed deployment recovery time' has replaced 'MTTR'.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -58,7 +58,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -223,10 +223,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -278,7 +278,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "How often an organization deploys code to production or release it to end users\n\n# 2023 Benchmarks\n- **Elite**: >= 7 deployment days per week\n- **High**: >= 1 deployment day per week\n- **Medium**: >= 1 deployment day per month\n- **Low**: < 1 deployment day per month\n# 2021 Benchmarks\n- **Elite**: >= 7 deployment days per week\n- **High**: >= 1 deployment day per month\n- **Medium**: >= 1 deployment day per six months\n- **Low**: < 1 deployment day per six months", "fieldConfig": { "defaults": { @@ -370,10 +370,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -425,7 +425,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The median amount of time for a code change to be deployed into production.\n\n\n# 2023 Benchmarks\n- **Elite**: Less than one day\n- **High**: Between one day and one week\n- **Medium**: Between one week and one month\n- **Low**: More than one month\n# 2021 Benchmarks\n- **Elite**: Less than one hour\n- **High**: Less than one week\n- **Medium**: Between one week and six months\n- **Low**: More than six months\n", "fieldConfig": { "defaults": { @@ -516,10 +516,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -571,7 +571,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The percentage of changes that were made to a code that then resulted in incidents, rollbacks, or any type of production failure.\n\n# 2023 Benchmarks\n- **Elite**: (0, 5%]\n- **High**: (5%, 10%]\n- **Medium**: (10%, 15%]\n- **Low**: (15%, 100%]\n# 2021 Benchmarks\n- **Elite**: (0, 15%]\n- **High**: (16%, 20%]\n- **Medium**: (21%, 30%]\n- **Low**: (30%, 100%]\n", "fieldConfig": { "defaults": { @@ -663,10 +663,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -718,7 +718,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "# MTTR benchmarks:\ndevlake.apache.org/docs/Metrics/MTTR#how-is-it-calculated\n# FDRT benchmarks:\ndevlake.apache.org/docs/Metrics/FailedDeploymentRecoveryTime#how-is-it-calculated\n", "fieldConfig": { "defaults": { @@ -817,10 +817,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -872,7 +872,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -955,7 +955,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1007,7 +1007,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1085,10 +1085,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1140,7 +1140,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1239,10 +1239,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1294,7 +1294,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1397,10 +1397,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1471,7 +1471,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -1492,7 +1492,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -1513,7 +1513,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/Gitlab.json b/grafana/dashboards/mysql/Gitlab.json index a45bb37f6a7..3a7043b69ec 100644 --- a/grafana/dashboards/mysql/Gitlab.json +++ b/grafana/dashboards/mysql/Gitlab.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from GitLab.\n- Data Source Required: GitLab", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -140,10 +140,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -195,7 +195,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -290,10 +290,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -345,7 +345,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -429,10 +429,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -506,7 +506,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -558,7 +558,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -594,7 +594,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -718,10 +718,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -773,7 +773,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -822,10 +822,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -877,7 +877,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -959,10 +959,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1014,7 +1014,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1068,7 +1068,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1104,7 +1104,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1188,10 +1188,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1256,7 +1256,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1303,10 +1303,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1357,7 +1357,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -1410,10 +1410,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1464,7 +1464,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1577,10 +1577,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1632,7 +1632,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1765,10 +1765,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1819,7 +1819,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1906,10 +1906,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1960,7 +1960,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -2007,10 +2007,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2061,7 +2061,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2161,10 +2161,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2236,7 +2236,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2270,7 +2270,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos where id like 'gitlab%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Homepage.json b/grafana/dashboards/mysql/Homepage.json index 2332eeb01e6..f4f499e6902 100644 --- a/grafana/dashboards/mysql/Homepage.json +++ b/grafana/dashboards/mysql/Homepage.json @@ -43,7 +43,7 @@ "content": "# Welcome\n\n - Dashboards are grouped by use cases and data sources.\n - All data is queried from here. You can go to the 'Explore' page on the left menu to play around.\n - You can always make your own dashboard based on the domain layer schema, SQL examples in engineering metrics, and dashboard manuals.\n", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -78,7 +78,7 @@ "showStarred": true, "tags": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "Highlights" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -179,7 +179,7 @@ "Engineering Leads Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For Engineering Leads", "type": "dashlist" }, @@ -206,7 +206,7 @@ "OSS Maintainer Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For OSS Maintainers", "type": "dashlist" }, @@ -233,7 +233,7 @@ "Developer" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For Developers", "type": "dashlist" }, @@ -286,7 +286,7 @@ "Data Source Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "type": "dashlist" } ], diff --git a/grafana/dashboards/mysql/Jenkins.json b/grafana/dashboards/mysql/Jenkins.json index 7c1a9db8138..6b39ae9988c 100644 --- a/grafana/dashboards/mysql/Jenkins.json +++ b/grafana/dashboards/mysql/Jenkins.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from Jenkins, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate).\n- Data Source Required: Jenkins", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -111,10 +111,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -165,7 +165,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -214,10 +214,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -268,7 +268,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -401,10 +401,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -538,7 +538,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -621,10 +621,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -676,7 +676,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Build success rate over time.\n2. The builds being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -779,10 +779,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -833,7 +833,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -946,10 +946,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -983,7 +983,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1082,10 +1082,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1139,7 +1139,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1172,7 +1172,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from cicd_scopes where id like \"jenkins%\" ", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Jira.json b/grafana/dashboards/mysql/Jira.json index a18e46b3f27..ad663e498aa 100644 --- a/grafana/dashboards/mysql/Jira.json +++ b/grafana/dashboards/mysql/Jira.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Jira.\n- Data Source Required: Jira", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -220,7 +220,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -272,10 +272,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -325,7 +325,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -411,10 +411,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -446,7 +446,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -537,7 +537,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -621,10 +621,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -682,7 +682,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -735,10 +735,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -789,7 +789,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -841,10 +841,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -877,7 +877,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -964,10 +964,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1000,7 +1000,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fieldConfig": { "defaults": { @@ -1081,10 +1081,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 100 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1165,7 +1165,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1196,7 +1196,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'jira%'", "hide": 0, "includeAll": true, @@ -1217,7 +1217,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Opsgenie.json b/grafana/dashboards/mysql/Opsgenie.json index 2ab5a9e62b0..627d412bb8b 100644 --- a/grafana/dashboards/mysql/Opsgenie.json +++ b/grafana/dashboards/mysql/Opsgenie.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the incident data from Opsgenie.\n- Data Source Required: Opsgenie", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -118,7 +118,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Opsgenie board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -220,7 +220,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -270,10 +270,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -323,7 +323,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -402,10 +402,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -505,10 +505,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -558,7 +558,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -612,10 +612,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -665,7 +665,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -746,10 +746,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -825,7 +825,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -881,10 +881,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -935,7 +935,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -990,10 +990,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1044,7 +1044,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1129,10 +1129,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1187,7 +1187,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of MTTR\n2. Each point refers to the percent rank of a distinct duration to resolve incidents.", "fill": 0, "fillGradient": 4, @@ -1224,7 +1224,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.2", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1234,7 +1234,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1349,7 +1349,7 @@ "content": "
\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": "13.0.2", "targets": [ { "datasource": { @@ -1376,7 +1376,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Due to Opsgenie API limitation regarding the relationship between assignee, users, and incident (and lack of 'assign at' key ), the column assignee represents a JSON object containing all assignee from said incident", "fieldConfig": { "defaults": { @@ -1458,10 +1458,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1506,7 +1506,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'opsgenie%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Sonarqube.json b/grafana/dashboards/mysql/Sonarqube.json index 2dac28c9f21..4ab5445766d 100644 --- a/grafana/dashboards/mysql/Sonarqube.json +++ b/grafana/dashboards/mysql/Sonarqube.json @@ -49,7 +49,7 @@ "content": "- Use Cases: This dashboard shows the code quality metrics from SonarQube.\n- Data Source Required: SonarQube v8.2+\n- Snapshot panels (Reliability, Security, Test, etc.) show the latest scan and do not honor the time filter.\n- **Historical Trends** panels at the bottom respond to the time range selector and show metric history over time.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -88,7 +88,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -144,10 +144,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -176,7 +176,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -232,10 +232,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -264,7 +264,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -321,10 +321,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -353,7 +353,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -409,10 +409,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -467,7 +467,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -523,10 +523,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -555,7 +555,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -612,10 +612,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -644,7 +644,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -701,10 +701,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -759,7 +759,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -815,10 +815,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -847,7 +847,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -903,10 +903,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -935,7 +935,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -993,10 +993,10 @@ }, "showHeader": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1300,7 +1300,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from cq_projects", "hide": 0, "includeAll": true, @@ -1325,7 +1325,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct severity from cq_issues where id like 'sonar%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/TAPD.json b/grafana/dashboards/mysql/TAPD.json index da960da5293..2fabb39a510 100644 --- a/grafana/dashboards/mysql/TAPD.json +++ b/grafana/dashboards/mysql/TAPD.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from TAPD.\n- Data Source Required: TAPD", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'tapd%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Taiga.json b/grafana/dashboards/mysql/Taiga.json index 7e1263b43d7..454f62722da 100644 --- a/grafana/dashboards/mysql/Taiga.json +++ b/grafana/dashboards/mysql/Taiga.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows project management metrics from Taiga across all issue types (User Stories, Tasks, Issues/Requirements, Epics).\n- Data Source Required: Taiga\n- Metrics: Issue throughput (filtered by type), lead time, story points (User Stories), milestone progress, assignee breakdown and issue type breakdown.\n- Use the **Issue Type** variable to filter panels to a specific type, or select All to see all types together.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of user stories created in the selected time range and board.", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of issues that have been marked as Done/Closed in the selected time range.", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Monthly distribution of open vs. closed issues.", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Closed Issues) / count(All Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Monthly trend of issue delivery rate.", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average number of days from story creation to resolution.", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -755,7 +755,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "80% of stories are resolved within this many days.", "fieldConfig": { "defaults": { @@ -805,10 +805,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -839,7 +839,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Mean lead time per month for resolved stories.", "fieldConfig": { "defaults": { @@ -920,10 +920,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -954,7 +954,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The cumulative distribution of story lead time. Each point shows the percent rank of a given lead time value.", "fieldConfig": { "defaults": { @@ -1033,10 +1033,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 100 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1121,7 +1121,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total story points for all user stories in the selected time range.", "fieldConfig": { "defaults": { @@ -1164,10 +1164,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1206,7 +1206,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total story points for closed/completed user stories.", "fieldConfig": { "defaults": { @@ -1249,10 +1249,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1291,7 +1291,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Story points allocated to each milestone/sprint. Requires milestone data from Taiga.", "fieldConfig": { "defaults": { @@ -1361,10 +1361,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1395,7 +1395,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Story points distributed across assignees.", "fieldConfig": { "defaults": { @@ -1465,10 +1465,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1499,7 +1499,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of story points across open vs. closed stories.", "fieldConfig": { "defaults": { @@ -1550,10 +1550,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1610,7 +1610,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Breakdown of all Taiga issues by their current status, across all issue types (User Story, Task, Issue/Requirement, Epic).", "fieldConfig": { "defaults": { @@ -1657,10 +1657,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n now() as time,\n count(distinct case when i.status = 'TODO' then i.id end) as 'To Do',\n count(distinct case when i.status = 'IN_PROGRESS' then i.id end) as 'In Progress',\n count(distinct case when i.status = 'DONE' then i.id end) as 'Done',\n count(distinct case when i.status not in ('TODO','IN_PROGRESS','DONE') then i.id end) as 'Other'\nFROM issues i\n join board_issues bi on i.id = bi.issue_id\nWHERE bi.board_id in (${board_id})", @@ -1671,7 +1671,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of user stories assigned to each team member.", "fieldConfig": { "defaults": { @@ -1740,10 +1740,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1774,7 +1774,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of user stories in each milestone/sprint.", "fieldConfig": { "defaults": { @@ -1843,10 +1843,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1877,7 +1877,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Milestone progress: open vs. closed user stories per sprint.", "fieldConfig": { "defaults": { @@ -1945,10 +1945,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1999,7 +1999,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2039,7 +2039,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of all Taiga items across issue types (User Story, Task, Issue/Requirement, Epic).", "fieldConfig": { "defaults": { @@ -2063,10 +2063,10 @@ "pieType": "pie", "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n now() as time,\n count(distinct case when i.type = 'USER_STORY' then i.id end) as 'User Story',\n count(distinct case when i.type = 'TASK' then i.id end) as 'Task',\n count(distinct case when i.type = 'REQUIREMENT' then i.id end) as 'Issue',\n count(distinct case when i.type = 'EPIC' then i.id end) as 'Epic'\nFROM issues i\n join board_issues bi on i.id = bi.issue_id\nWHERE bi.board_id in (${board_id})", @@ -2077,7 +2077,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Open vs closed count for each Taiga issue type in the selected time range.", "fieldConfig": { "defaults": { @@ -2118,10 +2118,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -2133,7 +2133,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Monthly count of items created, broken down by issue type (User Stories, Tasks, Issues, Epics).", "fieldConfig": { "defaults": { @@ -2172,10 +2172,10 @@ "legend": { "calcs": ["sum"], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_ADD(date(i.created_date), INTERVAL -DAYOFMONTH(date(i.created_date))+1 DAY) as time,\n count(distinct case when i.type='USER_STORY' then i.id end) as 'User Stories',\n count(distinct case when i.type='TASK' then i.id end) as 'Tasks',\n count(distinct case when i.type='REQUIREMENT' then i.id end) as 'Issues',\n count(distinct case when i.type='EPIC' then i.id end) as 'Epics'\nFROM issues i\n join board_issues bi on i.id = bi.issue_id\nWHERE\n bi.board_id in (${board_id})\n AND $__timeFilter(i.created_date)\nGROUP BY 1\nORDER BY 1", @@ -2186,7 +2186,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average lead time in days from creation to resolution, broken down by issue type (resolved issues only).", "fieldConfig": { "defaults": { @@ -2228,10 +2228,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -2261,7 +2261,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'taiga%'", "hide": 0, "includeAll": true, @@ -2286,7 +2286,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct i.type from issues i join board_issues bi on i.id = bi.issue_id where bi.board_id like 'taiga%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Teambition.json b/grafana/dashboards/mysql/Teambition.json index 743884e1540..3bbda241f8e 100644 --- a/grafana/dashboards/mysql/Teambition.json +++ b/grafana/dashboards/mysql/Teambition.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Teambition.\n- Data Source Required: Teambition", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'teambition%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Testmo.json b/grafana/dashboards/mysql/Testmo.json index 934f13e7562..2cf6c751962 100644 --- a/grafana/dashboards/mysql/Testmo.json +++ b/grafana/dashboards/mysql/Testmo.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows comprehensive test management metrics from Testmo.\n- Data Source Required: Testmo\n- Metrics: Test execution, success rates, coverage, and performance analytics", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of test runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -158,10 +158,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -176,7 +176,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Percentage of test runs that passed successfully", "fieldConfig": { "defaults": { @@ -227,10 +227,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -245,7 +245,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Test execution results over time showing pass/fail/skip distribution", "fieldConfig": { "defaults": { @@ -363,10 +363,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -380,7 +380,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total number of Testmo runs (new data source)", "fieldConfig": { "defaults": { @@ -422,10 +422,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average execution time per test run in minutes", "fieldConfig": { "defaults": { @@ -491,10 +491,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -508,7 +508,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily count of test runs from the new runs data source", "fieldConfig": { "defaults": { @@ -599,7 +599,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -613,7 +613,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Test coverage across different projects", "fieldConfig": { "defaults": { @@ -684,7 +684,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -723,7 +723,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Success rate trend over time", "fieldConfig": { "defaults": { @@ -797,7 +797,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -810,7 +810,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average test execution time trend", "fieldConfig": { "defaults": { @@ -882,7 +882,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -895,7 +895,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Comparison between automation runs and regular test runs over time", "fieldConfig": { "defaults": { @@ -1001,7 +1001,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1010,7 +1010,7 @@ "refId": "A" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1023,7 +1023,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Test runs that take the longest time to execute", "fieldConfig": { "defaults": { @@ -1113,10 +1113,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1149,7 +1149,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1181,7 +1181,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from _tool_testmo_connections", "hide": 0, "includeAll": true, @@ -1202,7 +1202,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from _tool_testmo_projects where connection_id in (${connection_id})", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/Zentao.json b/grafana/dashboards/mysql/Zentao.json index dbde7eb46bf..009259e8b84 100644 --- a/grafana/dashboards/mysql/Zentao.json +++ b/grafana/dashboards/mysql/Zentao.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Zentao.\n- Data Source Required: Zentao", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'zentao%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/ai-cost-efficiency.json b/grafana/dashboards/mysql/ai-cost-efficiency.json index d6e8bf4a998..d52905d0cca 100644 --- a/grafana/dashboards/mysql/ai-cost-efficiency.json +++ b/grafana/dashboards/mysql/ai-cost-efficiency.json @@ -39,7 +39,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -58,7 +58,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(credits_used)) AS 'Total Credits'\nFROM _tool_q_dev_user_report WHERE $__timeFilter(date)", @@ -69,7 +69,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -88,7 +88,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(r.credits_used) / NULLIF(COUNT(DISTINCT pr.id), 0), 1) AS 'Credits / PR'\nFROM _tool_q_dev_user_report r\nCROSS JOIN (\n SELECT DISTINCT id FROM pull_requests\n WHERE merged_date IS NOT NULL AND $__timeFilter(merged_date)\n) pr\nWHERE $__timeFilter(r.date)", @@ -99,7 +99,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -118,7 +118,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(r.credits_used) / NULLIF(COUNT(DISTINCT cdc.cicd_deployment_id), 0), 1) AS 'Credits / Deploy'\nFROM _tool_q_dev_user_report r\nCROSS JOIN (\n SELECT DISTINCT cicd_deployment_id\n FROM cicd_deployment_commits\n WHERE result = 'SUCCESS' AND environment = 'PRODUCTION'\n AND $__timeFilter(finished_date)\n) cdc\nWHERE $__timeFilter(r.date)", @@ -129,7 +129,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -148,7 +148,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(r.credits_used) / NULLIF(COUNT(DISTINCT i.id), 0), 1) AS 'Credits / Issue'\nFROM _tool_q_dev_user_report r\nCROSS JOIN (\n SELECT DISTINCT id FROM issues\n WHERE resolution_date IS NOT NULL AND type != 'INCIDENT'\n AND $__timeFilter(resolution_date)\n) i\nWHERE $__timeFilter(r.date)", @@ -167,7 +167,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly cost per merged PR", "fieldConfig": { "defaults": { @@ -190,7 +190,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS week_start,\n SUM(credits_used) AS credits\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n),\n_prs AS (\n SELECT DATE_SUB(DATE(merged_date), INTERVAL WEEKDAY(DATE(merged_date)) DAY) AS week_start,\n COUNT(*) AS prs\n FROM pull_requests\n WHERE merged_date IS NOT NULL AND $__timeFilter(merged_date)\n GROUP BY DATE_SUB(DATE(merged_date), INTERVAL WEEKDAY(DATE(merged_date)) DAY)\n)\nSELECT c.week_start AS time,\n ROUND(c.credits / NULLIF(p.prs, 0), 1) AS 'Credits per PR'\nFROM _credits c\nLEFT JOIN _prs p ON c.week_start = p.week_start\nORDER BY time", @@ -201,7 +201,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly cost per production deployment", "fieldConfig": { "defaults": { @@ -224,7 +224,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS week_start,\n SUM(credits_used) AS credits\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n),\n_deploys AS (\n SELECT DATE_SUB(DATE(finished_date), INTERVAL WEEKDAY(DATE(finished_date)) DAY) AS week_start,\n COUNT(DISTINCT cicd_deployment_id) AS deploys\n FROM cicd_deployment_commits\n WHERE result = 'SUCCESS' AND environment = 'PRODUCTION'\n AND $__timeFilter(finished_date)\n GROUP BY DATE_SUB(DATE(finished_date), INTERVAL WEEKDAY(DATE(finished_date)) DAY)\n)\nSELECT c.week_start AS time,\n ROUND(c.credits / NULLIF(d.deploys, 0), 1) AS 'Credits per Deploy'\nFROM _credits c\nLEFT JOIN _deploys d ON c.week_start = d.week_start\nORDER BY time", @@ -235,7 +235,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly cost per resolved issue", "fieldConfig": { "defaults": { @@ -258,7 +258,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS week_start,\n SUM(credits_used) AS credits\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n),\n_issues AS (\n SELECT DATE_SUB(DATE(resolution_date), INTERVAL WEEKDAY(DATE(resolution_date)) DAY) AS week_start,\n COUNT(*) AS resolved\n FROM issues\n WHERE resolution_date IS NOT NULL AND type != 'INCIDENT'\n AND $__timeFilter(resolution_date)\n GROUP BY DATE_SUB(DATE(resolution_date), INTERVAL WEEKDAY(DATE(resolution_date)) DAY)\n)\nSELECT c.week_start AS time,\n ROUND(c.credits / NULLIF(i.resolved, 0), 1) AS 'Credits per Issue'\nFROM _credits c\nLEFT JOIN _issues i ON c.week_start = i.week_start\nORDER BY time", @@ -269,7 +269,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Is cost efficiency improving over time?", "fieldConfig": { "defaults": { @@ -292,7 +292,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(credits_used) AS 'Credits',\n SUM(total_messages) AS 'Messages',\n SUM(chat_conversations) AS 'Conversations'\nFROM _tool_q_dev_user_report\nWHERE $__timeFilter(date)\nGROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\nORDER BY time", diff --git a/grafana/dashboards/mysql/argo-cd.json b/grafana/dashboards/mysql/argo-cd.json index e3fa3956ec9..1f589224ce0 100644 --- a/grafana/dashboards/mysql/argo-cd.json +++ b/grafana/dashboards/mysql/argo-cd.json @@ -50,7 +50,7 @@ "content": "- Use Cases: Track ArgoCD deployment activity, measure success rates, monitor environments, and spot slow deployments.\n- Data Source Required: ArgoCD plugin (deployments mapped into `cicd_deployments`).\n- Filters: Use the *Application* templating variable to focus on specific ArgoCD applications.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -103,10 +103,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -120,7 +120,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -158,10 +158,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -175,7 +175,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Successful deployments / Total deployments", "fieldConfig": { "defaults": { @@ -217,10 +217,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -234,7 +234,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -284,10 +284,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -314,7 +314,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -361,10 +361,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -378,7 +378,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -429,10 +429,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -446,7 +446,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -493,10 +493,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -523,7 +523,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average duration of deployments (minutes)", "fieldConfig": { "defaults": { @@ -563,10 +563,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -580,7 +580,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -627,10 +627,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -644,7 +644,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -695,10 +695,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -712,7 +712,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "7-day rolling average of deployment duration (minutes)", "fieldConfig": { "defaults": { @@ -749,10 +749,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -779,7 +779,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -830,10 +830,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -860,7 +860,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -901,10 +901,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -918,7 +918,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Approximation: counts deployments per unique images array (revision-level). For per-image counts, consider exploding arrays during ingestion.", "fieldConfig": { "defaults": { @@ -966,10 +966,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1002,7 +1002,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "allValue": "$__all", "definition": "select concat(name, '--', id) as text from cicd_scopes where id like 'argocd:ArgocdApplication:%'", "hide": 0, diff --git a/grafana/dashboards/mysql/azure-dev-ops.json b/grafana/dashboards/mysql/azure-dev-ops.json index 3f8f00f98b1..486d7b07f14 100644 --- a/grafana/dashboards/mysql/azure-dev-ops.json +++ b/grafana/dashboards/mysql/azure-dev-ops.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from Azure DevOps.\n- Data Source Required: Azure DevOps", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -141,10 +141,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -196,7 +196,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -291,10 +291,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -346,7 +346,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -430,10 +430,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -511,7 +511,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -563,10 +563,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -600,7 +600,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -724,10 +724,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,7 +779,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -828,10 +828,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -883,7 +883,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -965,10 +965,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1020,7 +1020,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1074,10 +1074,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1111,7 +1111,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1195,10 +1195,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1263,7 +1263,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of Pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1310,10 +1310,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1364,7 +1364,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful Pipeline runs / Number of total Pipeline runs", "fieldConfig": { "defaults": { @@ -1417,10 +1417,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1471,7 +1471,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1584,10 +1584,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1639,7 +1639,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful Pipeline runs / Number of total Pipeline runs", "fieldConfig": { "defaults": { @@ -1772,10 +1772,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1826,7 +1826,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1913,10 +1913,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1967,7 +1967,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Pipeline runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"Pipeline runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -2014,10 +2014,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2068,7 +2068,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2168,10 +2168,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2243,7 +2243,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2277,7 +2277,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos where id like 'azure%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/bit-bucket.json b/grafana/dashboards/mysql/bit-bucket.json index 4f281c67f99..e5ef78adf74 100644 --- a/grafana/dashboards/mysql/bit-bucket.json +++ b/grafana/dashboards/mysql/bit-bucket.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from Bitbucket.\n- Data Source Required: Bitbucket Cloud or Server/data center. Please note that for Bitbucket Server/Data center, there is no embedded CI/CD data.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -144,10 +144,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -199,7 +199,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -294,10 +294,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -349,7 +349,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -433,10 +433,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -514,7 +514,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -566,10 +566,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -603,7 +603,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -724,10 +724,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,7 +779,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -828,10 +828,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -883,7 +883,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -965,10 +965,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1020,7 +1020,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1074,10 +1074,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1111,7 +1111,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1195,10 +1195,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1263,7 +1263,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1310,10 +1310,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1364,7 +1364,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -1417,10 +1417,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1471,7 +1471,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1584,10 +1584,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1639,7 +1639,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1772,10 +1772,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1826,7 +1826,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1913,10 +1913,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1967,7 +1967,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -2014,10 +2014,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2068,7 +2068,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2168,10 +2168,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2243,7 +2243,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2277,7 +2277,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos where id like 'bitbucket%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/circle-ci.json b/grafana/dashboards/mysql/circle-ci.json index 439d8058de7..c86634eae92 100644 --- a/grafana/dashboards/mysql/circle-ci.json +++ b/grafana/dashboards/mysql/circle-ci.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from CircleCI, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate).\n- Data Source Required: CircleCI", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -167,7 +167,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful workflows / Number of total workflows", "fieldConfig": { "defaults": { @@ -218,10 +218,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -272,7 +272,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -406,10 +406,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -460,7 +460,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful workflows / Number of total workflows", "fieldConfig": { "defaults": { @@ -509,10 +509,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -563,7 +563,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -648,10 +648,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -703,7 +703,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean workflows success rate over time.\n2. The workflows being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -808,10 +808,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -862,7 +862,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -978,10 +978,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1033,7 +1033,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1134,10 +1134,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1209,7 +1209,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1241,7 +1241,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from cicd_scopes where id like \"%circleci%\" ", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/component-and-file-level-metrics.json b/grafana/dashboards/mysql/component-and-file-level-metrics.json index 2b369eb8b9f..045e37b4fdb 100644 --- a/grafana/dashboards/mysql/component-and-file-level-metrics.json +++ b/grafana/dashboards/mysql/component-and-file-level-metrics.json @@ -128,10 +128,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -243,10 +243,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -385,10 +385,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -518,10 +518,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -678,10 +678,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,10 +779,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -834,7 +834,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -910,10 +910,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1044,10 +1044,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1125,7 +1125,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -1201,10 +1201,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1256,7 +1256,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -1306,10 +1306,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1378,7 +1378,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/contributor-experience.json b/grafana/dashboards/mysql/contributor-experience.json index 6ec29831d71..67c681cc73d 100644 --- a/grafana/dashboards/mysql/contributor-experience.json +++ b/grafana/dashboards/mysql/contributor-experience.json @@ -44,7 +44,7 @@ "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": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -59,7 +59,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -108,10 +108,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -145,7 +145,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -192,10 +192,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -229,7 +229,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -276,10 +276,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -313,7 +313,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -359,10 +359,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -414,7 +414,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -461,10 +461,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -498,7 +498,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -545,10 +545,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -582,7 +582,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -629,10 +629,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -684,7 +684,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -737,10 +737,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -812,7 +812,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -840,7 +840,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '-', id) from repos", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/demo-average-requirement-lead-time-by-assignee.json b/grafana/dashboards/mysql/demo-average-requirement-lead-time-by-assignee.json index c2c7c1eef4b..66f18b1bc43 100644 --- a/grafana/dashboards/mysql/demo-average-requirement-lead-time-by-assignee.json +++ b/grafana/dashboards/mysql/demo-average-requirement-lead-time-by-assignee.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Compare the average time spent in each state of a requirement in the last 2 months.\n2. The requirements being calculated are the requirements delivered in the last 2 months.", "fieldConfig": { "defaults": { @@ -103,7 +103,7 @@ "mode": "multi" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -139,7 +139,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -174,7 +174,7 @@ "options": { "showHeader": true }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -221,7 +221,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/demo-commit-count-by-author.json b/grafana/dashboards/mysql/demo-commit-count-by-author.json index 7e28acce231..9e3c9f48d39 100644 --- a/grafana/dashboards/mysql/demo-commit-count-by-author.json +++ b/grafana/dashboards/mysql/demo-commit-count-by-author.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "The number of commits from different commit authors.", "fieldConfig": { "defaults": { @@ -105,7 +105,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -142,7 +142,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -180,7 +180,7 @@ "options": { "showHeader": true }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -228,7 +228,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/demo-detailed-bug-info.json b/grafana/dashboards/mysql/demo-detailed-bug-info.json index 61398ff4b44..80b6c636464 100644 --- a/grafana/dashboards/mysql/demo-detailed-bug-info.json +++ b/grafana/dashboards/mysql/demo-detailed-bug-info.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -106,7 +106,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -140,7 +140,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -241,7 +241,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -286,7 +286,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/demo-homepage.json b/grafana/dashboards/mysql/demo-homepage.json index f5947ba1901..9624d8c48b6 100644 --- a/grafana/dashboards/mysql/demo-homepage.json +++ b/grafana/dashboards/mysql/demo-homepage.json @@ -34,7 +34,7 @@ "content": "\n
\n

How fast do we respond to customer requirements?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", @@ -85,7 +85,7 @@ "content": "\n
\n

Was our quality improved or not?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", @@ -136,7 +136,7 @@ "content": "\n
\n

Is this month more productive than last?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", diff --git a/grafana/dashboards/mysql/demo-how-fast-do-we-respond-to-customer-requirements.json b/grafana/dashboards/mysql/demo-how-fast-do-we-respond-to-customer-requirements.json index c15b08cafbe..9dd0d04ac6d 100644 --- a/grafana/dashboards/mysql/demo-how-fast-do-we-respond-to-customer-requirements.json +++ b/grafana/dashboards/mysql/demo-how-fast-do-we-respond-to-customer-requirements.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -101,7 +101,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -150,7 +150,7 @@ "content": "
\n\n[Drill down by assignee](/d/q27fk7cnk/demo-average-requirement-lead-time-by-assignee?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -172,7 +172,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Requirement Lead Time

\n
\n\nSection | Description\n:----------------- | :-------------\nMetric Definition | Total duration of requirements from proposal to delivery. It can be divided by flow status in the practice domain or project management system to count the time share of each phase and help locate the links that drag out the requirement delivery cycle.\nMetric Value | The Requirement Lead Time reflects the rapid responsiveness of the R&D team.
In theory, the faster you can deliver value to customers, the better, but other aspects such as whether the delivered value meets customer expectations, requirement throughput, and delivery quality must be considered together. Fast delivery does not necessarily equate to good R&D practices.\n\n***\n#### *M (Measure)*\n1. Count the average or 80th percentile requirement lead time for different times.\n2. Counts the average or 80th percentile requirement lead time for different projects.
\n3. Count the length of time that requirements stay in different practice domains (requirements analysis, design, development, testing, release) or in different states.\n\n##### *A (Analyze)*\n1. Compare the requirement delivery speed of different projects to find the fastest and slowest delivering projects.\n2. Analyze the trend of the average requirement lead time within each cycle, make a vertical comparison, and locate the key points such as maximum value, minimum value, continuous up cycle, and continuous down cycle.\n3. Analyze the trend of the delivery cycle of 80% of the requirements within each cycle, make a longitudinal comparison, and locate the key points such as maximum value, minimum value, continuous up cycle, and continuous down cycle.

\nWhy choose the 80% quantile instead of using the average?
\nThe point of statistics is to make predictions with real and valid data to support better decisions, while the mean and median cannot have the role of supporting predictions.
\nTypically, the mean and 80% quantile statistics will appear twice as far apart, and the 80% and 99% quantile tend to be approximately twice as related.
\nTherefore, the 80% quantile is a good balance point for prediction.\n
\n4. Analysis compares the length of time requirement stays in different practice domains or different states to identify the most time-consuming links and find the key bottlenecks that affect overall delivery speed.\n5. Requirement lead time is correlated with requirement throughput to identify whether the requirement delivery trend is healthy or not.\n - Healthy trend: requirement lead time is shortened and requirement throughput is increased.\n - Unhealthy trend: longer requirement lead time and lower requirement throughput.\n\n\n##### *R (Review)*\nBased on the analysis results, focus on a few key points and use Ishikawa diagram (fishbone diagram) or Root Cause Analysis (RCA) to conduct root cause analysis, research and review. For example, if the requirement delivery cycle becomes longer in several consecutive statistical cycles, it is necessary to further investigate the length of stay of requirements in different phases and find the longest phase for root cause analysis.\n\n1. The requirements phase takes too long: unclear requirements, frequent changes, overly granular requirements, requirements priorities not clearly defined, insufficient resources or experience of requirements analysts or product managers?\n2. The design phase takes too long: unclear requirement documents, insufficient resources or experience of R&D leaders or architects?\n3. The development phase takes too long: unclear design documents, uneven task distribution, high stream load (parallel tasks), too much technical debt, too many bugs, insufficient resources or experience of developers?\n4. The testing phase takes too long: unclear requirements documentation, poor code quality, few automated tests, insufficient resources or experience of testers?\n5. The release phase takes too long: too long build or deployment time, insufficient resources or experience of operation and maintenance staff?\n\n##### *I (Improve)*\nBased on the review results, focus on the key root causes, and give targeted improvement measures in terms of norms, processes, tools and behaviors, etc., with clear improvement targets, improvement measures, verification cycles and responsible persons.\n\nThe following are the improvement ideas for reference:\n\n1. Communicate with customers or business parties to clarify requirements, reasonably disassemble requirements and define priorities, and invite business parties, R&D leaders and testing leaders to review requirements.\n2. Invite product managers, R&D personnel, and test leaders to conduct design reviews.\n3. Reduce requirement or task granularity, distribute tasks evenly, reduce flow load, increase unit testing, and solve technical debt and code problems in time to reduce the number of bugs and rework.\n4. Test left, develop self-test, code review, increase automated testing, and improve continuous integration capabilities.\n5. Automate deployment, shorten build time, and improve continuous delivery.\n6. Reasonable resource allocation and necessary training for each job holder.\n7. The improvement results should also be quantifiable to facilitate continuous metrics and tracking of improvement effects.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -194,7 +194,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/demo-is-this-month-more-productive-than-last.json b/grafana/dashboards/mysql/demo-is-this-month-more-productive-than-last.json index e59181e73be..d59fbc7fce4 100644 --- a/grafana/dashboards/mysql/demo-is-this-month-more-productive-than-last.json +++ b/grafana/dashboards/mysql/demo-is-this-month-more-productive-than-last.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -131,7 +131,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -180,7 +180,7 @@ "content": "
\n\n[Drill down by commit author](/d/F0iYknc7z/demo-commit-count-by-author?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -202,7 +202,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Commit Count

\n
\n\nSection | Description\n:------------------ | :-------------\nMetric Definition | The total number of commits.\nMetric Value | The number of commits reflects the frequency of code commits and encourages multiple small step commits per day. While paying attention to the number of times, you should also observe the number of lines of code per commit.\n\n***\n\n#### *M (Measure)*\nThe number of commits can be counted in time, project, team or individual dimensions, and the above 4 dimensions can be cross-tabulated, e.g., the number of commits per week for a project, the average number of commits per person per day for a team.\n\n##### *A (Analyze)*\n1. By project dimension, analyze and compare the number of code commits of different projects horizontally, and locate the projects with the maximum, minimum and lower than average values for research.\n2. By team dimension, analyze and compare the number of code commits of different teams horizontally, and locate the teams with the maximum, minimum, and lower than average values for research.\n3. By individual dimension, analyze and compare the number of code commits of different personnel horizontally, and locate the individuals with the maximum, minimum, and lower than average values for research.\n4. Analyze the trend of the number of code commits in each cycle, compare vertically, and locate the maximum, minimum, and continuously increasing or decreasing cycles for research.\n\n##### *R (Review)*\nBased on the results of metrics analysis, use Ishikawa diagram (fishbone diagram) or root cause analysis (RCA) to analyze, investigate and review the root causes of projects/teams/individuals with low (e.g. lower than average) code submission times in a cycle:\n1. too many complicated requirements with large granularity (estimated workload)?\n2. uneven and full task distribution?\n3. no specification for small step submission?\n\n##### *I (Improve)*\nBased on the review results, focus on the key root causes, give targeted improvement measures in terms of specification, process, tools, behavior, etc., and clarify the improvement target, improvement measures, verification cycle and responsible person.\nTo address the root causes of low code submission in the cycle, the following improvement measures were taken: 1.\n1. reduce the granularity of requirements.\n2. distribute tasks evenly so that each person has a full workload each day.\n3. set small step commit specifications, such as an average number of commits per person per day greater than 1, an average number of lines per commit less than 100, etc.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -224,7 +224,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/demo-was-our-quality-improved-or-not.json b/grafana/dashboards/mysql/demo-was-our-quality-improved-or-not.json index a44614f495f..3c61266242c 100644 --- a/grafana/dashboards/mysql/demo-was-our-quality-improved-or-not.json +++ b/grafana/dashboards/mysql/demo-was-our-quality-improved-or-not.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -101,7 +101,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -147,7 +147,7 @@ "content": "
\n\n[See Detailed Bug Info](/d/s48Lzn5nz/demo-detailed-bug-info?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -169,7 +169,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Bug Count per 1k Lines of Code

\n
\n\nSection | Description\n:----------------- | :-------------\nMetric Definition | The ratio of the number of bugs found to the corresponding amount of code or code changes, to characterize the density of overall bugs, including bugs found in testing and online. For example, bug count per 1k lines of code, bug count per 1k code equivalent.\nMetric Value | The bug rate, as a quality indicator, represents the density of bugs, and is one of the important indicators used to assess the quality of software products and testing quality. Usually, the cost of fixing detected bugs is higher in the later stage of the software development life cycle, and this metric is valuable for analyzing and evaluating both online quality and bug fixing cost.\n\n***\n#### *M (Measure)*\n1. Bug count per 1k lines of code by project.\n2. Trends in 'Bug count per 1k lines of code' over time.\n3. Measure historical data to establish year-over-year and historical baseline reference values for 'Bug count per 1k lines of code'.\n\n##### *A (Analyze)*\n1. Year-over-year analysis: The bug rate of similar projects in the same period is compared and analyzed, and the improvement effect of product quality is observed through the rise and fall of the data.\n2. Circumferential analysis: Analyze the bug rate of projects in the recent year, analyze the change of online bug rate according to the time axis, and compare with the historical baseline at the same time to give a judgment analysis of the rise and fall of indicators.\n3. Trend analysis: analyze the trend of bug rate over time (days, weeks, months), judge the trend rise, and evaluate whether the stable cycle of product quality is reasonable by observing changes such as trend slowing-down and smoothing.\n4. Horizontal analysis: Compare the bug rate of multiple projects as a reference to evaluate the quality of software products online.\n5. Classification analysis: Classify and analyze the types of bugs, severity levels, and modules they belong to, and identify the key issues that show aggregated distribution.\n\n##### *R (Review)*\nFor the high severity level of online bugs should be a complete review, according to the timeline, role dimensions, the sequence of events on the root cause of bugs to dig, locate the key issues.\nAccording to the quantitative conclusions drawn from the analysis, further data drilling and root cause mining can be organized for bugs in several dimensions, including whether they are missed, the module they belong to, the cause, the occurrence cycle, and the resolution.\n1. bug escape rate: derived from [number of online bugs / (number of online bugs + number of bugs found in test)], this indicator can be compared with historical data, if the data exceeds the acceptable range of history and testing department, then it is necessary to conduct leak analysis. If the data exceeds the acceptable interval of history and testing department, it is necessary to analyze the missed test and confirm whether the use case is missed or not covered, so as to strengthen the use case design and management.\n2. defective module: The defective module can be located to the key module where the problem is concentrated, and targeted improvement measures are required for each link from requirements, design, development to testing, and typical problems are located for the bugive module to establish targeted measures.\n3. bug generation causes: through the cause analysis of bugs, similar bugs bugs can be put together, so that bugs belonging to the same category and accounting for a high percentage of bugs will be highlighted, so that it is easy to take out the bugs with more concentrated causes and jointly discuss the next improvement measures to precisely reduce the number of similar bugs.\n4. bug occurrence cycle: analyze the bug occurrence cycle, determine whether the users use the system frequently, whether the system has been updated or optimized, whether the system has been refactored, etc., which will cause a long and short bug occurrence cycle after the launch, through the analysis of the bug cycle length, to draw some valuable conclusions about the stability of the system.\n5. bug resolution: statistics on the resolution of bugs, which bugs are not reproduced, which are temporarily handled, and which are in need of continuous improvement. For the temporary resolution of bugs, analyze whether it will cause another bug elsewhere in the system, whether the user can receive the temporary resolution, what development and testing need to focus on similar bugs, and whether similar bugs need to be tested elsewhere for horizontal expansion. Those that require continuous improvement need to be further tracked by testing until the problem is resolved.\n\n##### *I (Improve)*\nThrough root cause mining, starting from the key bugs, the key problems of each link to locate, in accordance with the principle that the later the bugs are found, the higher the cost and complexity of the solution, in addition to the test design and implementation to start improving (refer to the improvement links of the number of bugs on the line), more should start the construction of quality from the upstream of the software engineering stage, to achieve the forward movement of the bug discovery stage, such as\n1. optimizing static scan rules according to the type, number and severity level of static scan problems to reduce false positives and expose as many serious problems as possible (quality over quantity).\n2. Define the requirement of resolution ratio for different severity level problems to control the backlog of serious problems.\n3. Establish code review system, strategy, and encourage the promotion of code review implementation.\n4. Establish unit test coverage ratio or unit test coverage condition requirements, e.g. functions with circle complexity greater than 10 shall be covered by unit tests.\nImplement improvement measures and clarify the improvement target, improvement measures, verification cycle and responsible person. Do a new round of MARI (Measure, Analysis, Review, and Verification) for the improvement effect to quantify the improvement effect.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -191,7 +191,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/mysql/developer-productivity-hours.json b/grafana/dashboards/mysql/developer-productivity-hours.json index 3201acdc08b..2259f6d5bdd 100644 --- a/grafana/dashboards/mysql/developer-productivity-hours.json +++ b/grafana/dashboards/mysql/developer-productivity-hours.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Chat and completion events by hour of day", "fieldConfig": { "defaults": { @@ -40,7 +40,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(hr AS CHAR), 2, '0') AS 'Hour',\n SUM(chat) AS 'Chat Events', SUM(comp) AS 'Completion Events'\nFROM (\n SELECT HOUR(timestamp) AS hr, COUNT(*) AS chat, 0 AS comp\n FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)\n GROUP BY HOUR(timestamp)\n UNION ALL\n SELECT HOUR(timestamp) AS hr, 0 AS chat, COUNT(*) AS comp\n FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp)\n GROUP BY HOUR(timestamp)\n) t GROUP BY hr ORDER BY hr", @@ -51,7 +51,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average prompt complexity and response richness by hour", "fieldConfig": { "defaults": { @@ -73,7 +73,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(HOUR(timestamp) AS CHAR), 2, '0') AS 'Hour',\n ROUND(AVG(prompt_length)) AS 'Avg Prompt Length',\n ROUND(AVG(response_length)) AS 'Avg Response Length'\nFROM _tool_q_dev_chat_log\nWHERE $__timeFilter(timestamp)\nGROUP BY HOUR(timestamp)\nORDER BY HOUR(timestamp)", @@ -84,7 +84,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Steering and spec mode usage concentration by hour", "fieldConfig": { "defaults": { @@ -105,7 +105,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(HOUR(timestamp) AS CHAR), 2, '0') AS 'Hour',\n SUM(CASE WHEN has_steering = 1 THEN 1 ELSE 0 END) AS 'Steering',\n SUM(CASE WHEN is_spec_mode = 1 THEN 1 ELSE 0 END) AS 'Spec Mode',\n SUM(CASE WHEN has_steering = 0 AND is_spec_mode = 0 THEN 1 ELSE 0 END) AS 'Plain Chat'\nFROM _tool_q_dev_chat_log\nWHERE $__timeFilter(timestamp)\nGROUP BY HOUR(timestamp)\nORDER BY HOUR(timestamp)", @@ -116,7 +116,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Day-of-week activity pattern", "fieldConfig": { "defaults": { @@ -137,7 +137,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT\n CASE DAYOFWEEK(timestamp)\n WHEN 1 THEN 'Sun' WHEN 2 THEN 'Mon' WHEN 3 THEN 'Tue'\n WHEN 4 THEN 'Wed' WHEN 5 THEN 'Thu' WHEN 6 THEN 'Fri' WHEN 7 THEN 'Sat'\n END AS 'Day',\n SUM(chat) AS 'Chat Events', SUM(comp) AS 'Completions'\nFROM (\n SELECT timestamp, COUNT(*) AS chat, 0 AS comp FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY timestamp\n UNION ALL\n SELECT timestamp, 0, COUNT(*) FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) GROUP BY timestamp\n) t\nGROUP BY DAYOFWEEK(timestamp)\nORDER BY DAYOFWEEK(timestamp)", diff --git a/grafana/dashboards/mysql/dora-by-team.json b/grafana/dashboards/mysql/dora-by-team.json index 863aaac35a1..d31c6a6f181 100644 --- a/grafana/dashboards/mysql/dora-by-team.json +++ b/grafana/dashboards/mysql/dora-by-team.json @@ -49,7 +49,7 @@ "content": "- See [how to config](https://devlake.apache.org/docs/DORA) this dashboard\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- You can validate/debug this dashboard with the [DORA validation dashboard](/grafana/d/KGkUnV-Vz/dora-dashboard-validation) \n- You also need to do [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard. \n- DORA benchmarks vary in different years. You can switch the benchmarks to change them.\n- In DORA's official report in 2023, metric 'failed deployment recovery time' has replaced 'MTTR'.\n- How does this work? \n - Gets the author of the specific commit and then navigates to the team the user belongs to. \n - Gets the team from the PR's author. \n - Gets the team from the commit author.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -63,7 +63,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -198,10 +198,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -231,7 +231,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -315,10 +315,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -370,7 +370,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -454,10 +454,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -487,7 +487,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -571,10 +571,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -604,7 +604,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -689,10 +689,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -722,7 +722,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -799,7 +799,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -829,7 +829,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -901,10 +901,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -934,7 +934,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1025,10 +1025,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -1058,7 +1058,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1135,10 +1135,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -1181,7 +1181,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from teams", "hide": 0, "includeAll": true, @@ -1202,7 +1202,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -1223,7 +1223,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/dora-debug.json b/grafana/dashboards/mysql/dora-debug.json index 89935cbc360..4f83fcd86d2 100644 --- a/grafana/dashboards/mysql/dora-debug.json +++ b/grafana/dashboards/mysql/dora-debug.json @@ -43,7 +43,7 @@ "content": "This dashboard is designed to validate the [DORA dashboard](/grafana/d/qNo8_0M4z/dora?orgId=1).", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -104,7 +104,7 @@ "content": "- See the definition and calculation logic of [Deployment Frequency](https://devlake.apache.org/docs/Metrics/DeploymentFrequency)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n- Transformation Required: Define `deployments` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -118,7 +118,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -189,10 +189,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -226,7 +226,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -310,10 +310,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -365,7 +365,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -436,10 +436,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -473,7 +473,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -550,7 +550,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -602,7 +602,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -681,10 +681,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -718,7 +718,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -798,10 +798,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -835,7 +835,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -915,10 +915,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -998,7 +998,7 @@ "content": "- See the definition and calculation logic of [Median Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n- Transformation Required: Define `deployments` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- Validatation Steps below:\n - Step 1 - check the data integrity of PRs in table `pull_requests`\n - Step 2 - check the data integrity of deployment_commit in table `cicd_deployment_commits`\n - Step 3 - check if a deployment_commit is associated with the correct PR in table `project_pr_metrics`\n - Step 4 - check if metrics like PR Coding/Pickup/Review/Deploy/cycle time are correct in table `project_pr_metrics`\n - Step 5 - check if the median lead time for changes in each month is correct", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1012,7 +1012,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1059,10 +1059,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1096,7 +1096,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1179,10 +1179,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1234,7 +1234,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1348,10 +1348,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1385,7 +1385,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1456,10 +1456,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1511,7 +1511,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1565,10 +1565,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1598,7 +1598,7 @@ ] }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1632,7 +1632,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1702,10 +1702,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1739,7 +1739,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1859,10 +1859,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1896,7 +1896,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1958,10 +1958,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1995,7 +1995,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2040,10 +2040,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2073,7 +2073,7 @@ ] }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2107,7 +2107,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2148,10 +2148,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2181,7 +2181,7 @@ ] }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2215,7 +2215,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2256,10 +2256,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2289,7 +2289,7 @@ ] }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2323,7 +2323,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2364,10 +2364,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2397,7 +2397,7 @@ ] }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2431,7 +2431,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2472,10 +2472,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2509,7 +2509,7 @@ "type": "gauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2608,10 +2608,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2691,7 +2691,7 @@ "content": "- See the definition and calculation logic of [${title_value}](https://devlake.apache.org/docs/Metrics/MTTR)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2725,7 +2725,7 @@ "content": "- See the definition and calculation logic of [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2739,7 +2739,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2800,10 +2800,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2837,7 +2837,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2920,10 +2920,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2975,7 +2975,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -3036,10 +3036,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -3093,7 +3093,7 @@ "content": "\n\nIn this case:\n\n- Deployment-1 maps to Incident-1\n- Deployment-3 maps to Incident-2 and Incident-3\n- Deployment-2,4,5 doesn't map to any Incident", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3108,7 +3108,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3200,10 +3200,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3255,7 +3255,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -3338,10 +3338,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3393,7 +3393,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -3455,10 +3455,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -3492,7 +3492,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -3554,10 +3554,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3609,7 +3609,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3701,10 +3701,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3769,7 +3769,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -3790,7 +3790,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(Url, '--', id) from pull_requests", "hide": 0, "includeAll": false, @@ -3811,7 +3811,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -3832,7 +3832,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/dora-details-change-failure-rate.json b/grafana/dashboards/mysql/dora-details-change-failure-rate.json index ee27327d5b7..878540d0fdb 100644 --- a/grafana/dashboards/mysql/dora-details-change-failure-rate.json +++ b/grafana/dashboards/mysql/dora-details-change-failure-rate.json @@ -57,7 +57,7 @@ "content": "This dashboard shows the details about [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR) in DORA.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -154,10 +154,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -209,7 +209,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -355,10 +355,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -410,7 +410,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -492,10 +492,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -546,7 +546,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -617,10 +617,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -686,7 +686,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -707,7 +707,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -728,7 +728,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/dora-details-deployment-frequency.json b/grafana/dashboards/mysql/dora-details-deployment-frequency.json index 44c49c5ad23..3023118a526 100644 --- a/grafana/dashboards/mysql/dora-details-deployment-frequency.json +++ b/grafana/dashboards/mysql/dora-details-deployment-frequency.json @@ -56,7 +56,7 @@ "content": "This dashboard shows the details about [deployment frequency](https://devlake.apache.org/docs/Metrics/DeploymentFrequency) in DORA.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -247,10 +247,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -302,7 +302,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -365,10 +365,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -420,7 +420,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -493,10 +493,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -548,7 +548,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -623,10 +623,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -678,7 +678,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -752,10 +752,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -827,12 +827,12 @@ "content": "# 2023 Benchmarks\n- Elite: >= 5 days per week\n- High: >= 1 day per week\n- Medium: >= 1 day per month\n- Low: < 1 day per month\n# 2021 Benchmarks\n- Elite: >= 5 days per week\n- High: >= 1 day per month\n- Medium: >= 1 day per six months\n- Low: < 1 day per six months", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "title": "DORA Report", "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -915,10 +915,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -970,7 +970,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1053,10 +1053,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1108,7 +1108,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1191,10 +1191,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1262,7 +1262,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -1283,7 +1283,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -1304,7 +1304,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/dora-details-failed-deployment-recovery-time.json b/grafana/dashboards/mysql/dora-details-failed-deployment-recovery-time.json index 4dfd6fb0638..aabdd461e4c 100644 --- a/grafana/dashboards/mysql/dora-details-failed-deployment-recovery-time.json +++ b/grafana/dashboards/mysql/dora-details-failed-deployment-recovery-time.json @@ -56,7 +56,7 @@ "content": "This dashboard shows the details about [Failed Deployment Recovery Time\n](https://devlake.apache.org/docs/Metrics/MTTR) in DORA.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -146,7 +146,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -304,10 +304,10 @@ } ] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -359,7 +359,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -401,10 +401,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -447,7 +447,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/dora-details-lead-timefor-changes.json b/grafana/dashboards/mysql/dora-details-lead-timefor-changes.json index 20b1a393e42..345eb16e2af 100644 --- a/grafana/dashboards/mysql/dora-details-lead-timefor-changes.json +++ b/grafana/dashboards/mysql/dora-details-lead-timefor-changes.json @@ -55,7 +55,7 @@ "content": "- This dashboard shows the details about [Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges) in DORA.\n- It displays the statistics for pull requests **deployed** within the selected time range.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -69,7 +69,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -122,10 +122,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -177,7 +177,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -230,10 +230,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -285,7 +285,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -369,10 +369,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -424,7 +424,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -508,10 +508,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -563,7 +563,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -647,10 +647,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -702,7 +702,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Lead time for changes = median(PR deployed date - PR's first commit's authored date)", "fieldConfig": { "defaults": { @@ -823,10 +823,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -895,7 +895,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -916,7 +916,7 @@ "text": "2023", "value": "2023" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select dora_report from dora_benchmarks", "hide": 0, "includeAll": false, @@ -937,7 +937,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT \n CASE \n WHEN dora_report = '2023' THEN \"Failed Deployment Recovery Time\"\n WHEN dora_report = '2021' THEN \"Median Time to Restore Service\"\n ELSE NULL \n END AS title_value\nFROM dora_benchmarks\nWHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/mysql/dora-details-timeto-restore-service.json b/grafana/dashboards/mysql/dora-details-timeto-restore-service.json index 24f99a534a1..127ec734ed9 100644 --- a/grafana/dashboards/mysql/dora-details-timeto-restore-service.json +++ b/grafana/dashboards/mysql/dora-details-timeto-restore-service.json @@ -57,7 +57,7 @@ "content": "This dashboard shows the details about [Time to restore service\n](https://devlake.apache.org/docs/Metrics/MTTR) in DORA.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -113,10 +113,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -146,7 +146,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -291,10 +291,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -347,7 +347,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -388,10 +388,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -435,7 +435,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/engineering-overview.json b/grafana/dashboards/mysql/engineering-overview.json index 00ca588768e..ad6d5dfefb6 100644 --- a/grafana/dashboards/mysql/engineering-overview.json +++ b/grafana/dashboards/mysql/engineering-overview.json @@ -43,7 +43,7 @@ "content": "- Use Cases: This dashboard is to overview the Git and project management metrics.\n- Data Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira)", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -58,7 +58,7 @@ "type": "text" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -109,10 +109,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -164,7 +164,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -243,10 +243,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -298,7 +298,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -351,10 +351,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -405,7 +405,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -494,10 +494,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -530,7 +530,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -581,10 +581,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -636,7 +636,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -715,10 +715,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -770,7 +770,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -830,10 +830,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -885,7 +885,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -971,10 +971,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1026,7 +1026,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1080,10 +1080,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1135,7 +1135,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1221,10 +1221,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1276,7 +1276,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1334,10 +1334,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1389,7 +1389,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1473,10 +1473,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1528,7 +1528,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1575,10 +1575,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1630,7 +1630,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1707,10 +1707,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1762,7 +1762,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1818,10 +1818,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1873,7 +1873,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1959,10 +1959,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2014,7 +2014,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2068,7 +2068,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2120,7 +2120,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2201,7 +2201,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2255,7 +2255,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2287,7 +2287,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -2308,7 +2308,7 @@ "text": "", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select\n distinct(concat(date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY), '%Y-%m') , ':', date_format(DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY), '%Y-%m-%d'))) as month\nfrom\n issues i\norder by month desc", "hide": 0, "includeAll": false, @@ -2333,7 +2333,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct priority from issues", "description": "Customize what prioriti(es) are considered \"critical\"", "hide": 0, @@ -2355,7 +2355,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/engineering-throughput-and-cycle-time-team-view.json b/grafana/dashboards/mysql/engineering-throughput-and-cycle-time-team-view.json index 82251d97eab..1a9c99c272c 100644 --- a/grafana/dashboards/mysql/engineering-throughput-and-cycle-time-team-view.json +++ b/grafana/dashboards/mysql/engineering-throughput-and-cycle-time-team-view.json @@ -43,7 +43,7 @@ "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 Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira) ([Scope Config](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) required to tell DevLake what the story_points field is)\n- You also need to do [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -84,7 +84,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -200,10 +200,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -255,7 +255,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -371,10 +371,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -408,7 +408,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -524,10 +524,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -561,7 +561,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -677,10 +677,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -740,7 +740,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -856,10 +856,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -911,7 +911,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1027,10 +1027,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1108,7 +1108,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1224,10 +1224,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1279,7 +1279,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1395,10 +1395,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1476,7 +1476,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1592,10 +1592,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1647,7 +1647,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1763,10 +1763,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1844,7 +1844,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1960,10 +1960,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2015,7 +2015,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2131,10 +2131,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2212,7 +2212,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2325,10 +2325,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2380,7 +2380,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2492,10 +2492,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2547,7 +2547,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2659,10 +2659,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2714,7 +2714,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2826,10 +2826,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2881,7 +2881,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2993,10 +2993,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3074,7 +3074,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3186,10 +3186,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3261,7 +3261,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3288,7 +3288,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -3311,7 +3311,7 @@ "text": "None", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from teams", "hide": 0, "includeAll": false, @@ -3334,7 +3334,7 @@ "text": "None", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from teams", "hide": 0, "includeAll": false, @@ -3360,7 +3360,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct priority from issues where priority != ''", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/engineering-throughput-and-cycle-time.json b/grafana/dashboards/mysql/engineering-throughput-and-cycle-time.json index 6d3b5ecc72d..fd62b4e053f 100644 --- a/grafana/dashboards/mysql/engineering-throughput-and-cycle-time.json +++ b/grafana/dashboards/mysql/engineering-throughput-and-cycle-time.json @@ -42,7 +42,7 @@ "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 Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira) ([Scope Config](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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -83,7 +83,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -199,10 +199,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -236,7 +236,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -352,7 +352,7 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -388,7 +388,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -473,10 +473,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -528,7 +528,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -613,10 +613,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "hide": false, @@ -650,7 +650,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -736,10 +736,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -773,7 +773,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -858,10 +858,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -913,7 +913,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -995,10 +995,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1058,7 +1058,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1139,10 +1139,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1194,7 +1194,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1275,10 +1275,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1330,7 +1330,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1442,10 +1442,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1497,7 +1497,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1609,10 +1609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1664,7 +1664,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1776,10 +1776,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1851,7 +1851,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1879,7 +1879,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct name from projects", "hide": 0, "includeAll": true, @@ -1905,7 +1905,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct priority from issues where priority != ''", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/git-hub.json b/grafana/dashboards/mysql/git-hub.json index 89bc8842b50..c9df4e68504 100644 --- a/grafana/dashboards/mysql/git-hub.json +++ b/grafana/dashboards/mysql/git-hub.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from GitHub.\n- Data Source Required: GitHub", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -140,10 +140,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -195,7 +195,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -276,10 +276,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -357,7 +357,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -406,10 +406,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -443,7 +443,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -541,10 +541,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -596,7 +596,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -650,10 +650,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -687,7 +687,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -771,10 +771,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -826,7 +826,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -906,10 +906,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -961,7 +961,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1094,10 +1094,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1157,7 +1157,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1206,10 +1206,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1261,7 +1261,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1356,10 +1356,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1411,7 +1411,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1495,10 +1495,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1576,7 +1576,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1628,10 +1628,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1683,7 +1683,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1807,10 +1807,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1862,7 +1862,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1911,10 +1911,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1966,7 +1966,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2046,10 +2046,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2101,7 +2101,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2155,10 +2155,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2192,7 +2192,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2275,10 +2275,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2330,7 +2330,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2382,10 +2382,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -2419,7 +2419,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2502,10 +2502,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2570,7 +2570,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of workflow runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -2617,10 +2617,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2671,7 +2671,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -2724,10 +2724,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2778,7 +2778,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2891,10 +2891,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2946,7 +2946,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -3079,10 +3079,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3133,7 +3133,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Mean Workflow Runs success rate over time.\n2. The workflow runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -3236,10 +3236,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3290,7 +3290,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -3337,10 +3337,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3391,7 +3391,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3491,10 +3491,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3566,7 +3566,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3600,7 +3600,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos where id like 'github%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/github-release-quality-and-contribution-analysis.json b/grafana/dashboards/mysql/github-release-quality-and-contribution-analysis.json index 2bf976806cd..74bcc745d23 100644 --- a/grafana/dashboards/mysql/github-release-quality-and-contribution-analysis.json +++ b/grafana/dashboards/mysql/github-release-quality-and-contribution-analysis.json @@ -33,7 +33,7 @@ "content": "- Use Cases: This dashboard can be used to track bugs.\n- Data Source Required: GitHub ([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional) required. Additional settings are required to get version data).", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -58,7 +58,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -146,7 +146,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -273,7 +273,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -359,7 +359,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -515,7 +515,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -601,7 +601,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -727,7 +727,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -763,7 +763,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -850,7 +850,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -937,7 +937,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -989,7 +989,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1025,7 +1025,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1123,7 +1123,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1177,7 +1177,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1213,7 +1213,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1317,7 +1317,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1371,7 +1371,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1407,7 +1407,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1539,7 +1539,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1575,7 +1575,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1688,7 +1688,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1724,7 +1724,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1850,7 +1850,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1900,7 +1900,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1995,7 +1995,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2071,7 +2071,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -2106,7 +2106,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2223,7 +2223,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2340,7 +2340,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2457,7 +2457,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2509,7 +2509,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -2545,7 +2545,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2652,7 +2652,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -2681,7 +2681,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from repos", "description": null, "error": null, diff --git a/grafana/dashboards/mysql/kiro-credits-dora.json b/grafana/dashboards/mysql/kiro-credits-dora.json index d8195d8bee5..46614cc0834 100644 --- a/grafana/dashboards/mysql/kiro-credits-dora.json +++ b/grafana/dashboards/mysql/kiro-credits-dora.json @@ -65,7 +65,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Pearson correlation coefficient between weekly Kiro credits and PR cycle time", "fieldConfig": { "defaults": { @@ -95,7 +95,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -107,7 +107,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total Kiro credits consumed in period", "fieldConfig": { "defaults": { @@ -127,7 +127,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(credits_used) AS 'Credits Used'\nFROM _tool_q_dev_user_report\nWHERE $__timeFilter(date)", @@ -138,7 +138,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Median PR cycle time in hours", "fieldConfig": { "defaults": { @@ -159,7 +159,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _ranked AS (\n SELECT pr_cycle_time / 60.0 AS ct,\n PERCENT_RANK() OVER (ORDER BY pr_cycle_time) AS prank\n FROM project_pr_metrics\n WHERE pr_merged_date IS NOT NULL AND pr_cycle_time IS NOT NULL\n AND $__timeFilter(pr_merged_date)\n)\nSELECT ROUND(MAX(ct), 1) AS 'Median Cycle Time'\nFROM _ranked WHERE prank <= 0.5", @@ -170,7 +170,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Cycle time comparison: weeks with above-median vs below-median AI credits usage", "fieldConfig": { "defaults": { @@ -193,7 +193,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _kiro_weekly AS (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS week_start,\n SUM(credits_used) AS weekly_credits\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n),\n_pr_weekly AS (\n SELECT DATE_SUB(DATE(pr_merged_date), INTERVAL WEEKDAY(DATE(pr_merged_date)) DAY) AS week_start,\n AVG(pr_cycle_time) / 60.0 AS avg_ct\n FROM project_pr_metrics\n WHERE pr_merged_date IS NOT NULL AND pr_cycle_time IS NOT NULL AND $__timeFilter(pr_merged_date)\n GROUP BY DATE_SUB(DATE(pr_merged_date), INTERVAL WEEKDAY(DATE(pr_merged_date)) DAY)\n),\n_joined AS (\n SELECT k.weekly_credits, p.avg_ct FROM _kiro_weekly k INNER JOIN _pr_weekly p ON k.week_start = p.week_start\n),\n_med AS (\n SELECT weekly_credits AS med FROM _joined ORDER BY weekly_credits LIMIT 1 OFFSET (SELECT FLOOR(COUNT(*)/2) FROM _joined)\n)\nSELECT\n CASE WHEN j.weekly_credits >= m.med THEN 'High AI Usage' ELSE 'Low AI Usage' END AS 'Tier',\n ROUND(AVG(j.avg_ct), 1) AS 'Avg Cycle Time'\nFROM _joined j, _med m\nGROUP BY CASE WHEN j.weekly_credits >= m.med THEN 'High AI Usage' ELSE 'Low AI Usage' END", @@ -212,7 +212,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly Kiro credits consumed", "fieldConfig": { "defaults": { @@ -235,7 +235,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(credits_used) AS 'Credits Used',\n COUNT(DISTINCT user_id) AS 'Active Users'\nFROM _tool_q_dev_user_report\nWHERE $__timeFilter(date)\nGROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\nORDER BY time", @@ -246,7 +246,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly average PR cycle time in hours", "fieldConfig": { "defaults": { @@ -269,7 +269,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(pr_merged_date), INTERVAL WEEKDAY(DATE(pr_merged_date)) DAY) AS time,\n ROUND(AVG(pr_cycle_time) / 60.0, 1) AS 'Avg Cycle Time (hrs)',\n COUNT(*) AS 'PRs Merged'\nFROM project_pr_metrics\nWHERE pr_merged_date IS NOT NULL AND pr_cycle_time IS NOT NULL\n AND $__timeFilter(pr_merged_date)\nGROUP BY DATE_SUB(DATE(pr_merged_date), INTERVAL WEEKDAY(DATE(pr_merged_date)) DAY)\nORDER BY time", @@ -288,7 +288,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Pearson correlation between weekly credits and deployment count", "fieldConfig": { "defaults": { @@ -308,7 +308,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _kiro_weekly AS (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS week_start,\n SUM(credits_used) AS weekly_credits\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n),\n_deploy_weekly AS (\n SELECT DATE_SUB(DATE(cdc.finished_date), INTERVAL WEEKDAY(DATE(cdc.finished_date)) DAY) AS week_start,\n COUNT(DISTINCT cdc.cicd_deployment_id) AS deploys\n FROM cicd_deployment_commits cdc\n JOIN project_mapping pm ON cdc.cicd_scope_id = pm.row_id AND pm.`table` = 'cicd_scopes'\n WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION'\n AND $__timeFilter(cdc.finished_date)\n GROUP BY DATE_SUB(DATE(cdc.finished_date), INTERVAL WEEKDAY(DATE(cdc.finished_date)) DAY)\n),\n_joined AS (\n SELECT k.weekly_credits AS x, d.deploys AS y\n FROM _kiro_weekly k INNER JOIN _deploy_weekly d ON k.week_start = d.week_start\n),\n_stats AS (\n SELECT COUNT(*) AS n, AVG(x) AS mx, AVG(y) AS my, STDDEV_POP(x) AS sx, STDDEV_POP(y) AS sy FROM _joined\n)\nSELECT CASE\n WHEN s.n < 4 THEN NULL\n WHEN s.sx = 0 OR s.sy = 0 THEN 0\n ELSE ROUND((SELECT SUM((j.x - s.mx) * (j.y - s.my)) FROM _joined j) / (s.n * s.sx * s.sy), 2)\nEND AS 'r'\nFROM _stats s", @@ -319,7 +319,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly credits overlaid with deployment count", "fieldConfig": { "defaults": { @@ -342,7 +342,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(credits) AS 'Credits Used', SUM(deploys) AS 'Deployments'\nFROM (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(credits_used) AS credits, 0 AS deploys\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n UNION ALL\n SELECT DATE_SUB(DATE(cdc.finished_date), INTERVAL WEEKDAY(DATE(cdc.finished_date)) DAY) AS time,\n 0 AS credits, COUNT(DISTINCT cdc.cicd_deployment_id) AS deploys\n FROM cicd_deployment_commits cdc\n JOIN project_mapping pm ON cdc.cicd_scope_id = pm.row_id AND pm.`table` = 'cicd_scopes'\n WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION'\n AND $__timeFilter(cdc.finished_date)\n GROUP BY DATE_SUB(DATE(cdc.finished_date), INTERVAL WEEKDAY(DATE(cdc.finished_date)) DAY)\n) combined\nGROUP BY time ORDER BY time", @@ -361,7 +361,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Change failure rate: % of deployments that caused incidents", "fieldConfig": { "defaults": { @@ -384,7 +384,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(credits) AS 'Credits Used', SUM(cfr) AS 'Change Failure Rate'\nFROM (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(credits_used) AS credits, 0 AS cfr\n FROM _tool_q_dev_user_report WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n UNION ALL\n SELECT DATE_SUB(DATE(d.deployment_finished_date), INTERVAL WEEKDAY(DATE(d.deployment_finished_date)) DAY) AS time,\n 0 AS credits,\n SUM(CASE WHEN i.id IS NOT NULL THEN 1 ELSE 0 END) / COUNT(DISTINCT d.deployment_id) AS cfr\n FROM (\n SELECT cdc.cicd_deployment_id AS deployment_id, MAX(cdc.finished_date) AS deployment_finished_date\n FROM cicd_deployment_commits cdc\n JOIN project_mapping pm ON cdc.cicd_scope_id = pm.row_id AND pm.`table` = 'cicd_scopes'\n WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION'\n AND $__timeFilter(cdc.finished_date)\n GROUP BY cdc.cicd_deployment_id\n ) d\n LEFT JOIN project_incident_deployment_relationships pidr ON d.deployment_id = pidr.deployment_id\n LEFT JOIN incidents i ON pidr.id = i.id\n GROUP BY DATE_SUB(DATE(d.deployment_finished_date), INTERVAL WEEKDAY(DATE(d.deployment_finished_date)) DAY)\n) combined\nGROUP BY time ORDER BY time", @@ -403,7 +403,7 @@ "list": [ { "current": { "selected": true, "text": ["All"], "value": ["$__all"] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/language-ai-heatmap.json b/grafana/dashboards/mysql/language-ai-heatmap.json index adb3958071e..789b291e5c1 100644 --- a/grafana/dashboards/mysql/language-ai-heatmap.json +++ b/grafana/dashboards/mysql/language-ai-heatmap.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Completion requests, avg context size, and completion rate per language", "fieldConfig": { "defaults": { @@ -34,7 +34,7 @@ "options": { "cellHeight": "sm", "showHeader": true, "sortBy": [{ "desc": true, "displayName": "Requests" }] }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT\n CASE WHEN file_extension = '' THEN '(unknown)' ELSE file_extension END AS 'Language',\n COUNT(*) AS 'Requests',\n ROUND(AVG(completions_count), 2) AS 'Avg Completions',\n ROUND(AVG(left_context_length)) AS 'Avg Left Context',\n ROUND(AVG(right_context_length)) AS 'Avg Right Context',\n ROUND(AVG(left_context_length + right_context_length)) AS 'Avg Total Context',\n COUNT(DISTINCT user_id) AS 'Users'\nFROM _tool_q_dev_completion_log\nWHERE $__timeFilter(timestamp)\nGROUP BY file_extension\nORDER BY COUNT(*) DESC", @@ -45,7 +45,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily completion requests by language", "fieldConfig": { "defaults": { @@ -66,7 +66,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT DATE(timestamp) AS time,\n CASE WHEN file_extension = '' THEN '(unknown)' ELSE file_extension END AS metric,\n COUNT(*) AS value\nFROM _tool_q_dev_completion_log\nWHERE $__timeFilter(timestamp)\nGROUP BY DATE(timestamp), file_extension\nORDER BY time", @@ -77,7 +77,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Which file types are most active during chat sessions", "fieldConfig": { "defaults": { @@ -98,7 +98,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT\n CASE WHEN active_file_extension = '' OR active_file_extension IS NULL THEN '(no file)' ELSE active_file_extension END AS 'File Type',\n COUNT(*) AS 'Chat Events'\nFROM _tool_q_dev_chat_log\nWHERE $__timeFilter(timestamp)\nGROUP BY active_file_extension\nORDER BY COUNT(*) DESC\nLIMIT 10", @@ -109,7 +109,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Context size trends for top languages", "fieldConfig": { "defaults": { @@ -131,7 +131,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT DATE(timestamp) AS time,\n file_extension AS metric,\n ROUND(AVG(left_context_length + right_context_length)) AS value\nFROM _tool_q_dev_completion_log\nWHERE $__timeFilter(timestamp)\n AND file_extension IN (SELECT file_extension FROM _tool_q_dev_completion_log GROUP BY file_extension ORDER BY COUNT(*) DESC LIMIT 5)\nGROUP BY DATE(timestamp), file_extension\nORDER BY time", diff --git a/grafana/dashboards/mysql/multi-ai-comparison.json b/grafana/dashboards/mysql/multi-ai-comparison.json index 0ca1a3367ab..617cda77637 100644 --- a/grafana/dashboards/mysql/multi-ai-comparison.json +++ b/grafana/dashboards/mysql/multi-ai-comparison.json @@ -65,7 +65,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly active users for both tools", "fieldConfig": { "defaults": { @@ -88,14 +88,14 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n COUNT(DISTINCT user_id) AS 'Kiro Active Users'\nFROM _tool_q_dev_user_report\nWHERE $__timeFilter(date)\nGROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\nORDER BY time", "refId": "A" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY) AS time,\n MAX(daily_active_users) AS 'Copilot Active Users'\nFROM _tool_copilot_enterprise_daily_metrics\nWHERE connection_id = ${copilot_connection_id}\n AND scope_id = '${copilot_scope_id}'\n AND $__timeFilter(day)\nGROUP BY DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY)\nORDER BY time", @@ -114,7 +114,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly code generation and acceptance events", "fieldConfig": { "defaults": { @@ -137,7 +137,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(inline_suggestions_count) AS 'Kiro: Suggestions',\n SUM(inline_acceptance_count) AS 'Kiro: Accepted'\nFROM _tool_q_dev_user_data\nWHERE $__timeFilter(date)\nGROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\nORDER BY time", @@ -148,7 +148,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly Copilot code generation and acceptance events", "fieldConfig": { "defaults": { @@ -171,7 +171,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY) AS time,\n SUM(code_generation_activity_count) AS 'Copilot: Suggestions',\n SUM(code_acceptance_activity_count) AS 'Copilot: Accepted'\nFROM _tool_copilot_enterprise_daily_metrics\nWHERE connection_id = ${copilot_connection_id}\n AND scope_id = '${copilot_scope_id}'\n AND $__timeFilter(day)\nGROUP BY DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY)\nORDER BY time", @@ -190,7 +190,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly AI-generated lines of code accepted", "fieldConfig": { "defaults": { @@ -213,7 +213,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(kiro_loc) AS 'Kiro LOC Accepted', SUM(copilot_loc) AS 'Copilot LOC Added'\nFROM (\n SELECT DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY) AS time,\n SUM(inline_ai_code_lines + chat_ai_code_lines) AS kiro_loc, 0 AS copilot_loc\n FROM _tool_q_dev_user_data WHERE $__timeFilter(date)\n GROUP BY DATE_SUB(DATE(date), INTERVAL WEEKDAY(DATE(date)) DAY)\n UNION ALL\n SELECT DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY) AS time,\n 0 AS kiro_loc, SUM(loc_added_sum) AS copilot_loc\n FROM _tool_copilot_enterprise_daily_metrics\n WHERE connection_id = ${copilot_connection_id}\n AND scope_id = '${copilot_scope_id}'\n AND $__timeFilter(day)\n GROUP BY DATE_SUB(DATE(day), INTERVAL WEEKDAY(DATE(day)) DAY)\n) combined\nGROUP BY time ORDER BY time", @@ -224,7 +224,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Overall acceptance rates for both tools", "fieldConfig": { "defaults": { @@ -247,7 +247,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'Kiro' AS Tool,\n ROUND(SUM(inline_acceptance_count) * 100.0 / NULLIF(SUM(inline_suggestions_count), 0), 1) AS 'Acceptance Rate'\nFROM _tool_q_dev_user_data\nWHERE $__timeFilter(date)\nUNION ALL\nSELECT 'Copilot' AS Tool,\n ROUND(SUM(code_acceptance_activity_count) * 100.0 / NULLIF(SUM(code_generation_activity_count), 0), 1)\nFROM _tool_copilot_enterprise_daily_metrics\nWHERE connection_id = ${copilot_connection_id}\n AND scope_id = '${copilot_scope_id}'\n AND $__timeFilter(day)", @@ -266,7 +266,7 @@ "list": [ { "current": {}, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_copilot_scopes ORDER BY connection_id DESC", "hide": 0, "label": "Copilot Connection", @@ -278,7 +278,7 @@ }, { "current": {}, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT id FROM _tool_copilot_scopes WHERE connection_id = CAST('${copilot_connection_id}' AS UNSIGNED)", "hide": 0, "label": "Copilot Scope", diff --git a/grafana/dashboards/mysql/pager-duty.json b/grafana/dashboards/mysql/pager-duty.json index fcf63114531..49101c42021 100644 --- a/grafana/dashboards/mysql/pager-duty.json +++ b/grafana/dashboards/mysql/pager-duty.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the incident data from PagerDuty.\n- Data Source Required: PagerDuty", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -388,10 +388,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -441,7 +441,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -495,10 +495,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -548,7 +548,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -629,10 +629,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -708,7 +708,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -764,10 +764,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -818,7 +818,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -873,10 +873,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -927,7 +927,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1012,10 +1012,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1070,7 +1070,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "1. The cumulative distribution of MTTR\n2. Each point refers to the percent rank of a distinct duration to resolve incidents.", "fill": 0, "fillGradient": 4, @@ -1107,7 +1107,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1117,7 +1117,7 @@ "steppedLine": false, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1232,7 +1232,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1265,7 +1265,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from boards where id like 'pagerduty%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/q-dev-dora.json b/grafana/dashboards/mysql/q-dev-dora.json index d9ba306f349..b9fd48f3afb 100644 --- a/grafana/dashboards/mysql/q-dev-dora.json +++ b/grafana/dashboards/mysql/q-dev-dora.json @@ -64,7 +64,7 @@ "content": "## AI-Powered DORA Dashboard\nThis dashboard correlates **Q Dev (AI coding assistant)** usage metrics with **DORA** performance indicators to help understand the impact of AI-assisted development on engineering efficiency.\n\n- **Left side**: Q Dev AI usage metrics (code generation, acceptance rate)\n- **Right side**: DORA metrics (Lead Time, Deployment Frequency, Change Failure Rate)\n- **Correlation charts**: Show trends over time to identify potential relationships", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "title": "Dashboard Introduction", "type": "text" }, @@ -82,7 +82,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of unique users who used Q Dev AI features", "fieldConfig": { "defaults": { @@ -123,10 +123,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -138,7 +138,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Total AI-generated code lines accepted (Inline + Chat)", "fieldConfig": { "defaults": { @@ -180,10 +180,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -195,7 +195,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Acceptance rate of inline AI suggestions", "fieldConfig": { "defaults": { @@ -245,10 +245,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -260,7 +260,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of production deployments in selected period", "fieldConfig": { "defaults": { @@ -301,10 +301,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -316,7 +316,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Median lead time for changes in hours", "fieldConfig": { "defaults": { @@ -366,10 +366,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -381,7 +381,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Percentage of deployments that caused incidents", "fieldConfig": { "defaults": { @@ -431,10 +431,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -459,7 +459,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Compare AI code generation trends with Lead Time for Changes. A negative correlation (AI lines up, Lead Time down) suggests AI is helping accelerate delivery.", "fieldConfig": { "defaults": { @@ -579,10 +579,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -594,7 +594,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Compare AI suggestion acceptance rate with deployment frequency. Higher acceptance rate may indicate better AI integration and potentially more deployments.", "fieldConfig": { "defaults": { @@ -718,10 +718,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -733,7 +733,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Compare AI-generated tests with Change Failure Rate. More AI-generated tests might correlate with lower failure rates.", "fieldConfig": { "defaults": { @@ -857,10 +857,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -872,7 +872,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Compare active Q Dev users with Code Review findings. More AI-assisted code review might catch issues earlier.", "fieldConfig": { "defaults": { @@ -992,10 +992,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1020,7 +1020,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Monthly summary comparing Q Dev AI metrics with DORA metrics side by side", "fieldConfig": { "defaults": { @@ -1142,10 +1142,10 @@ } ] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1174,7 +1174,7 @@ "text": ["All"], "value": ["$__all"] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/qdev_executive.json b/grafana/dashboards/mysql/qdev_executive.json index df36a6c9e0e..fffbc99ba60 100644 --- a/grafana/dashboards/mysql/qdev_executive.json +++ b/grafana/dashboards/mysql/qdev_executive.json @@ -69,7 +69,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distinct users with chat activity in the last 7 days (from prompt logging)", "fieldConfig": { "defaults": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -128,7 +128,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average credits spent per accepted line of code (new report + legacy metrics)", "fieldConfig": { "defaults": { @@ -172,10 +172,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -187,7 +187,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Percentage of inline suggestions accepted (from legacy feature metrics)", "fieldConfig": { "defaults": { @@ -231,10 +231,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -246,7 +246,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Percentage of users who used steering rules (from prompt logging)", "fieldConfig": { "defaults": { @@ -291,10 +291,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -319,7 +319,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly active user count over time (from prompt logging)", "fieldConfig": { "defaults": { @@ -396,10 +396,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -411,7 +411,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "New vs returning users by week (from prompt logging)", "fieldConfig": { "defaults": { @@ -488,10 +488,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -516,7 +516,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Cumulative credits this month vs projected total (from new user_report)", "fieldConfig": { "defaults": { @@ -593,10 +593,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -608,7 +608,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Power tier users with no activity in the last 14 days (from new user_report)", "fieldConfig": { "defaults": { @@ -655,10 +655,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -683,7 +683,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Per-user productivity combining credits (new format) with feature metrics (legacy). Only shows users present in both data sources.", "fieldConfig": { "defaults": { @@ -730,10 +730,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/mysql/qdev_feature_metrics.json b/grafana/dashboards/mysql/qdev_feature_metrics.json index 597217bcf0e..5156e652a34 100644 --- a/grafana/dashboards/mysql/qdev_feature_metrics.json +++ b/grafana/dashboards/mysql/qdev_feature_metrics.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "High-level summary of legacy feature-level activity metrics (from by_user_analytic CSV reports)", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily inline suggestion and acceptance counts", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -182,7 +182,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Acceptance rates for inline suggestions, code fix, and inline chat over time", "fieldConfig": { "defaults": { @@ -258,10 +258,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -286,7 +286,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily chat messages sent and AI-generated code lines from chat", "fieldConfig": { "defaults": { @@ -362,10 +362,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -377,7 +377,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Agentic (Dev) code generation and acceptance metrics", "fieldConfig": { "defaults": { @@ -453,10 +453,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -481,7 +481,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Code review findings and test generation metrics over time", "fieldConfig": { "defaults": { @@ -557,10 +557,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -572,7 +572,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Test generation events and acceptance over time", "fieldConfig": { "defaults": { @@ -648,10 +648,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -663,7 +663,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Doc generation and code transformation events", "fieldConfig": { "defaults": { @@ -739,10 +739,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -754,7 +754,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Number of users who used each feature in the selected period", "fieldConfig": { "defaults": { @@ -835,10 +835,10 @@ }, "xTickLabelRotation": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -863,7 +863,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Per-user breakdown of legacy feature-level metrics", "fieldConfig": { "defaults": { @@ -910,10 +910,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/mysql/qdev_logging.json b/grafana/dashboards/mysql/qdev_logging.json index 6a47b03bf2b..aa7826ae243 100644 --- a/grafana/dashboards/mysql/qdev_logging.json +++ b/grafana/dashboards/mysql/qdev_logging.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Overview of logging event metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -78,7 +78,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Hourly distribution of AI usage activity (chat + completions)", "fieldConfig": { "defaults": { @@ -152,10 +152,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -167,7 +167,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of chat trigger types: MANUAL (chat window) vs INLINE_CHAT", "fieldConfig": { "defaults": { @@ -220,10 +220,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -235,7 +235,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of model usage across chat events", "fieldConfig": { "defaults": { @@ -288,10 +288,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -303,7 +303,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Top file extensions used with inline completions", "fieldConfig": { "defaults": { @@ -356,10 +356,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -371,7 +371,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average number of chat events per conversation", "fieldConfig": { "defaults": { @@ -448,10 +448,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -463,7 +463,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily chat and completion events over time", "fieldConfig": { "defaults": { @@ -540,10 +540,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -555,7 +555,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Per-user logging activity summary", "fieldConfig": { "defaults": { @@ -602,10 +602,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -617,7 +617,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of Kiro feature adoption: Steering, Spec Mode, and Plain Chat", "fieldConfig": { "defaults": { @@ -670,10 +670,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -685,7 +685,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Top file extensions active during chat events", "fieldConfig": { "defaults": { @@ -738,10 +738,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -753,7 +753,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "How often Kiro responses include code references and web links", "fieldConfig": { "defaults": { @@ -806,10 +806,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -821,7 +821,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average and maximum prompt/response lengths over time", "fieldConfig": { "defaults": { @@ -898,10 +898,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -913,7 +913,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Average code context size provided to inline completions over time", "fieldConfig": { "defaults": { @@ -989,10 +989,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -1004,7 +1004,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily trend of code references and web links in chat responses", "fieldConfig": { "defaults": { @@ -1080,10 +1080,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, diff --git a/grafana/dashboards/mysql/qdev_user_data.json b/grafana/dashboards/mysql/qdev_user_data.json index 578cf095dca..affaf57244c 100644 --- a/grafana/dashboards/mysql/qdev_user_data.json +++ b/grafana/dashboards/mysql/qdev_user_data.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Overview of key user metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -115,7 +115,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily AI code line changes across all users", "fieldConfig": { "defaults": { @@ -192,10 +192,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -244,7 +244,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily AI interaction trends across all users", "fieldConfig": { "defaults": { @@ -321,10 +321,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -373,7 +373,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Code review metrics over time", "fieldConfig": { "defaults": { @@ -450,10 +450,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -501,7 +501,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily acceptance rate of AI suggestions", "fieldConfig": { "defaults": { @@ -578,10 +578,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -630,7 +630,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "User AI interaction metrics", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -773,7 +773,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily doc generation events and accepted/rejected lines", "fieldConfig": { "defaults": { @@ -850,10 +850,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -902,7 +902,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily test generation events and lines", "fieldConfig": { "defaults": { @@ -979,10 +979,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1031,7 +1031,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily agentic dev events and lines", "fieldConfig": { "defaults": { @@ -1108,10 +1108,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "group": [], diff --git a/grafana/dashboards/mysql/qdev_user_report.json b/grafana/dashboards/mysql/qdev_user_report.json index 920fc1f6cde..acd0f14b3b6 100644 --- a/grafana/dashboards/mysql/qdev_user_report.json +++ b/grafana/dashboards/mysql/qdev_user_report.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Overview of credits and usage metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -78,7 +78,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily credits consumed broken down by subscription tier", "fieldConfig": { "defaults": { @@ -155,10 +155,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -170,7 +170,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Daily messages and conversations broken down by client type", "fieldConfig": { "defaults": { @@ -247,10 +247,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -262,7 +262,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Distribution of users across subscription tiers", "fieldConfig": { "defaults": { @@ -315,10 +315,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -330,7 +330,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Per-user credits, messages, and subscription details", "fieldConfig": { "defaults": { @@ -426,10 +426,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/mysql/sonar-qube-cloud.json b/grafana/dashboards/mysql/sonar-qube-cloud.json index 8cb1939a5eb..064285ab9eb 100644 --- a/grafana/dashboards/mysql/sonar-qube-cloud.json +++ b/grafana/dashboards/mysql/sonar-qube-cloud.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the code quality metrics from SonarCloud.\n- Data Source Required: SonarCloud\n- Snapshot panels (Software Quality, Security Review, Test, etc.) show the latest scan and do not honor the time filter.\n- **Historical Trends** panels at the bottom respond to the time range selector and show metric history over time.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -89,7 +89,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -144,11 +144,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -177,7 +177,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -232,11 +232,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -265,7 +265,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -320,11 +320,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -366,7 +366,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -422,11 +422,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -455,7 +455,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -511,11 +511,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -570,7 +570,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -626,11 +626,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -659,7 +659,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -716,11 +716,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -749,7 +749,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -806,11 +806,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -865,7 +865,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -921,11 +921,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -954,7 +954,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1010,11 +1010,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1056,7 +1056,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1113,11 +1113,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1146,7 +1146,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1203,11 +1203,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1236,7 +1236,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1293,11 +1293,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1339,7 +1339,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1397,11 +1397,11 @@ }, "showHeader": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1705,7 +1705,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) as text from cq_projects", "hide": 0, "includeAll": true, @@ -1730,7 +1730,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct severity from cq_issues where id like 'sonar%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/steering-adoption-tracker.json b/grafana/dashboards/mysql/steering-adoption-tracker.json index 4a840893827..14711cfd609 100644 --- a/grafana/dashboards/mysql/steering-adoption-tracker.json +++ b/grafana/dashboards/mysql/steering-adoption-tracker.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -38,7 +38,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(COUNT(DISTINCT CASE WHEN has_steering = 1 THEN user_id END) * 100.0 / NULLIF(COUNT(DISTINCT user_id), 0), 0) AS 'value'\nFROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -49,7 +49,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -68,7 +68,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(COUNT(DISTINCT CASE WHEN is_spec_mode = 1 THEN user_id END) * 100.0 / NULLIF(COUNT(DISTINCT user_id), 0), 0) AS 'value'\nFROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -79,7 +79,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, @@ -98,7 +98,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(CASE WHEN has_steering = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) AS 'value'\nFROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -109,7 +109,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Weekly trend of steering and spec mode adoption rate", "fieldConfig": { "defaults": { @@ -131,7 +131,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT\n DATE_SUB(DATE(timestamp), INTERVAL WEEKDAY(DATE(timestamp)) DAY) AS time,\n SUM(CASE WHEN has_steering = 1 THEN 1 ELSE 0 END) / COUNT(*) AS 'Steering Rate',\n SUM(CASE WHEN is_spec_mode = 1 THEN 1 ELSE 0 END) / COUNT(*) AS 'Spec Mode Rate'\nFROM _tool_q_dev_chat_log\nWHERE $__timeFilter(timestamp)\nGROUP BY DATE_SUB(DATE(timestamp), INTERVAL WEEKDAY(DATE(timestamp)) DAY)\nORDER BY time", @@ -142,7 +142,7 @@ "type": "timeseries" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Compare prompt and response quality between steering and non-steering sessions", "fieldConfig": { "defaults": { @@ -161,7 +161,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'With Steering' AS 'Mode', ROUND(AVG(prompt_length)) AS 'Avg Prompt', ROUND(AVG(response_length)) AS 'Avg Response'\nFROM _tool_q_dev_chat_log WHERE has_steering = 1 AND $__timeFilter(timestamp)\nUNION ALL\nSELECT 'Without Steering', ROUND(AVG(prompt_length)), ROUND(AVG(response_length))\nFROM _tool_q_dev_chat_log WHERE has_steering = 0 AND $__timeFilter(timestamp)", @@ -172,7 +172,7 @@ "type": "bargauge" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Per-user steering and spec mode usage", "fieldConfig": { "defaults": { @@ -187,7 +187,7 @@ "options": { "cellHeight": "sm", "showHeader": true }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT\n COALESCE(MAX(display_name), user_id) AS 'User',\n COUNT(*) AS 'Total Chats',\n SUM(CASE WHEN has_steering = 1 THEN 1 ELSE 0 END) AS 'Steering',\n SUM(CASE WHEN is_spec_mode = 1 THEN 1 ELSE 0 END) AS 'Spec Mode',\n ROUND(SUM(CASE WHEN has_steering = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) AS 'Steering %'\nFROM _tool_q_dev_chat_log\nWHERE $__timeFilter(timestamp)\nGROUP BY user_id\nORDER BY COUNT(*) DESC", diff --git a/grafana/dashboards/mysql/weekly-bug-retro.json b/grafana/dashboards/mysql/weekly-bug-retro.json index f6351bf0e9d..424e71b18a6 100644 --- a/grafana/dashboards/mysql/weekly-bug-retro.json +++ b/grafana/dashboards/mysql/weekly-bug-retro.json @@ -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: One of the issue tracking tools, e.g. [GitHub](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab) or [Jira](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) (Scope Config required to define which issues are bugs).", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -157,7 +157,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -209,7 +209,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -295,7 +295,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -347,7 +347,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -435,7 +435,7 @@ }, "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -500,7 +500,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -554,10 +554,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -609,7 +609,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -666,10 +666,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -721,7 +721,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -825,10 +825,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -880,7 +880,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -934,10 +934,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -989,7 +989,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1048,10 +1048,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1103,7 +1103,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1221,10 +1221,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1276,7 +1276,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1361,10 +1361,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1416,7 +1416,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1470,10 +1470,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1525,7 +1525,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1579,10 +1579,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1616,7 +1616,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1758,10 +1758,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1813,7 +1813,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1898,10 +1898,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 100 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1953,7 +1953,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -2095,10 +2095,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2170,7 +2170,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2198,7 +2198,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '-', id) as text from boards", "hide": 0, "includeAll": true, @@ -2219,7 +2219,7 @@ "text": "BUG", "value": "BUG" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, @@ -2244,7 +2244,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct priority from issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/mysql/weekly-community-retro.json b/grafana/dashboards/mysql/weekly-community-retro.json index fdf6ed989d3..1dc16a0e0b7 100644 --- a/grafana/dashboards/mysql/weekly-community-retro.json +++ b/grafana/dashboards/mysql/weekly-community-retro.json @@ -44,7 +44,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 dashboard **DOES NOT** honor the time filter on the top-right corner.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -85,7 +85,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -137,10 +137,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -192,7 +192,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -244,10 +244,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -299,7 +299,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -352,10 +352,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -407,7 +407,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -463,10 +463,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -500,7 +500,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -557,10 +557,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -594,7 +594,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -726,10 +726,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -781,7 +781,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -837,10 +837,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -874,7 +874,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1010,10 +1010,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1091,7 +1091,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1143,10 +1143,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1198,7 +1198,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1250,10 +1250,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1305,7 +1305,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1357,10 +1357,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1412,7 +1412,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1464,10 +1464,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1519,7 +1519,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1572,10 +1572,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "format": "table", "group": [], "hide": false, @@ -1609,7 +1609,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "Contributors: the PR authors who have merged PR(s)", "fieldConfig": { "defaults": { @@ -1665,10 +1665,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1720,7 +1720,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1777,10 +1777,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1832,7 +1832,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1916,10 +1916,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1971,7 +1971,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2054,10 +2054,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2109,7 +2109,7 @@ "type": "barchart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2156,10 +2156,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2211,7 +2211,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2263,10 +2263,10 @@ }, "valueMode": "color" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2338,7 +2338,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2370,7 +2370,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '-', id) as text from repos", "hide": 0, "includeAll": true, @@ -2391,7 +2391,7 @@ "text": "All", "value": "$__all" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct type from issues", "hide": 0, "includeAll": true, @@ -2416,7 +2416,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select distinct organization from accounts where organization != ''", "description": "", "hide": 0, diff --git a/grafana/dashboards/mysql/work-logs.json b/grafana/dashboards/mysql/work-logs.json index 3c7b784cea2..df6d88baa8e 100644 --- a/grafana/dashboards/mysql/work-logs.json +++ b/grafana/dashboards/mysql/work-logs.json @@ -43,7 +43,7 @@ "content": "- Use Cases: This dashboard shows the work logs of a team or a developer\n- Data Sources Required to show all data: \n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira)\n - You also need to complete the [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -69,7 +69,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -209,10 +209,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -241,7 +241,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -352,10 +352,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -384,7 +384,7 @@ "type": "table" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -573,10 +573,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -618,7 +618,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -709,10 +709,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -741,7 +741,7 @@ "type": "piechart" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -780,10 +780,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -812,7 +812,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -852,10 +852,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -884,7 +884,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -924,10 +924,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -956,7 +956,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -996,10 +996,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1028,7 +1028,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1111,10 +1111,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1179,7 +1179,7 @@ "type": "row" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1219,10 +1219,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1251,7 +1251,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "fieldConfig": { "defaults": { "color": { @@ -1291,10 +1291,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1323,7 +1323,7 @@ "type": "stat" }, { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "description": "average pr review time from first comment to the last comment", "fieldConfig": { "defaults": { @@ -1364,10 +1364,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1411,7 +1411,7 @@ "text": "None", "value": "" }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(name, '--', id) from teams", "hide": 0, "includeAll": false, @@ -1436,7 +1436,7 @@ "$__all" ] }, - "datasource": "mysql", + "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}, "definition": "select concat(users.name, '--', users.id) from users left join team_users on users.id = team_users.user_id where team_users.team_id in ($team)", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Asana.json b/grafana/dashboards/postgresql/Asana.json index 82eb837507a..37650ca6d82 100644 --- a/grafana/dashboards/postgresql/Asana.json +++ b/grafana/dashboards/postgresql/Asana.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Asana.\n- Data Source Required: Asana", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total number of issues created in the selected time range and board.", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "The cumulative distribution of issue lead time. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1109,7 +1109,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1141,7 +1141,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'asana%'", "hide": 0, "includeAll": true, @@ -1162,7 +1162,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Bamboo.json b/grafana/dashboards/postgresql/Bamboo.json index 884604b2612..469b3fdd2ee 100644 --- a/grafana/dashboards/postgresql/Bamboo.json +++ b/grafana/dashboards/postgresql/Bamboo.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from Bamboo, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate). A build in Bamboo is an execution of a Bamboo Plan.\n- Data Source Required: Bamboo", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -111,10 +111,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -165,7 +165,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -214,10 +214,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -268,7 +268,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -401,10 +401,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -556,7 +556,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -639,10 +639,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -694,7 +694,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Build success rate over time.\n2. The builds being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -797,10 +797,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -851,7 +851,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -964,10 +964,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -1001,7 +1001,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1100,10 +1100,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1157,7 +1157,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1189,7 +1189,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM cicd_scopes WHERE id::text LIKE 'bamboo%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/DORA.json b/grafana/dashboards/postgresql/DORA.json index fa615b51b81..d1aaa0dc2e9 100644 --- a/grafana/dashboards/postgresql/DORA.json +++ b/grafana/dashboards/postgresql/DORA.json @@ -42,12 +42,12 @@ "content": "- See [how to config](https://devlake.apache.org/docs/DORA) this dashboard\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- You can validate/debug this dashboard with the [DORA validation dashboard](/grafana/d/KGkUnV-Vz/dora-dashboard-validation)\n- DORA benchmarks vary in different years. You can switch the benchmarks to change them.\n- In DORA's official report in 2023, metric 'failed deployment recovery time' has replaced 'MTTR'.", "mode": "markdown" }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "title": "Dashboard Introduction", "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -211,10 +211,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -266,7 +266,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "How often an organization deploys code to production or release it to end users\n\n# 2023 Benchmarks\n- **Elite**: >= 7 deployment days per week\n- **High**: >= 1 deployment day per week\n- **Medium**: >= 1 deployment day per month\n- **Low**: < 1 deployment day per month\n# 2021 Benchmarks\n- **Elite**: >= 7 deployment days per week\n- **High**: >= 1 deployment day per month\n- **Medium**: >= 1 deployment day per six months\n- **Low**: < 1 deployment day per six months", "fieldConfig": { "defaults": { @@ -358,10 +358,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -413,7 +413,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "The median amount of time for a code change to be deployed into production.\n\n\n# 2023 Benchmarks\n- **Elite**: Less than one day\n- **High**: Between one day and one week\n- **Medium**: Between one week and one month\n- **Low**: More than one month\n# 2021 Benchmarks\n- **Elite**: Less than one hour\n- **High**: Less than one week\n- **Medium**: Between one week and six months\n- **Low**: More than six months\n", "fieldConfig": { "defaults": { @@ -504,10 +504,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -559,7 +559,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "The percentage of changes that were made to a code that then resulted in incidents, rollbacks, or any type of production failure.\n\n# 2023 Benchmarks\n- **Elite**: (0, 5%]\n- **High**: (5%, 10%]\n- **Medium**: (10%, 15%]\n- **Low**: (15%, 100%]\n# 2021 Benchmarks\n- **Elite**: (0, 15%]\n- **High**: (16%, 20%]\n- **Medium**: (21%, 30%]\n- **Low**: (30%, 100%]\n", "fieldConfig": { "defaults": { @@ -651,10 +651,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -706,7 +706,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "# MTTR benchmarks:\ndevlake.apache.org/docs/Metrics/MTTR#how-is-it-calculated\n# FDRT benchmarks:\ndevlake.apache.org/docs/Metrics/FailedDeploymentRecoveryTime#how-is-it-calculated\n", "fieldConfig": { "defaults": { @@ -805,10 +805,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -860,7 +860,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -941,10 +941,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -996,7 +996,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1074,10 +1074,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1129,7 +1129,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1228,10 +1228,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1283,7 +1283,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1386,10 +1386,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1458,7 +1458,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "includeAll": true, "label": "Project", @@ -1475,7 +1475,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "includeAll": false, "label": "DORA Report", @@ -1491,7 +1491,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/Gitlab.json b/grafana/dashboards/postgresql/Gitlab.json index 46435b4756d..af78160fc19 100644 --- a/grafana/dashboards/postgresql/Gitlab.json +++ b/grafana/dashboards/postgresql/Gitlab.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from GitLab.\n- Data Source Required: GitLab", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -140,10 +140,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -195,7 +195,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -290,10 +290,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -345,7 +345,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -429,10 +429,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -506,7 +506,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -558,7 +558,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -594,7 +594,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -718,10 +718,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -773,7 +773,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -822,10 +822,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -877,7 +877,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -959,10 +959,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1014,7 +1014,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1068,7 +1068,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1104,7 +1104,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1188,10 +1188,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1256,7 +1256,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1303,10 +1303,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1357,7 +1357,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -1410,10 +1410,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1464,7 +1464,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1577,10 +1577,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1632,7 +1632,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1765,10 +1765,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1819,7 +1819,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1906,10 +1906,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1960,7 +1960,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -2007,10 +2007,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2061,7 +2061,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2161,10 +2161,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2236,7 +2236,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2270,7 +2270,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos WHERE id::text LIKE 'gitlab%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Homepage.json b/grafana/dashboards/postgresql/Homepage.json index c86a2e566bd..33902882efd 100644 --- a/grafana/dashboards/postgresql/Homepage.json +++ b/grafana/dashboards/postgresql/Homepage.json @@ -43,7 +43,7 @@ "content": "# Welcome\n\n - Dashboards are grouped by use cases and data sources.\n - All data is queried from here. You can go to the 'Explore' page on the left menu to play around.\n - You can always make your own dashboard based on the domain layer schema, SQL examples in engineering metrics, and dashboard manuals.\n", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -78,7 +78,7 @@ "showStarred": true, "tags": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "Highlights" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -179,7 +179,7 @@ "Engineering Leads Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For Engineering Leads", "type": "dashlist" }, @@ -206,7 +206,7 @@ "OSS Maintainer Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For OSS Maintainers", "type": "dashlist" }, @@ -233,7 +233,7 @@ "Developer" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "title": "For Developers", "type": "dashlist" }, @@ -286,7 +286,7 @@ "Data Source Dashboard" ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "type": "dashlist" } ], diff --git a/grafana/dashboards/postgresql/Jenkins.json b/grafana/dashboards/postgresql/Jenkins.json index 03b70ea1c35..ccc85722e26 100644 --- a/grafana/dashboards/postgresql/Jenkins.json +++ b/grafana/dashboards/postgresql/Jenkins.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from Jenkins, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate).\n- Data Source Required: Jenkins", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -111,10 +111,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -165,7 +165,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -214,10 +214,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -268,7 +268,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -401,10 +401,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful builds / Number of total builds", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -538,7 +538,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -621,10 +621,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -676,7 +676,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Build success rate over time.\n2. The builds being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -779,10 +779,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -833,7 +833,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -946,10 +946,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -983,7 +983,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1082,10 +1082,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1139,7 +1139,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1172,7 +1172,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM cicd_scopes WHERE id::text LIKE 'jenkins%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Jira.json b/grafana/dashboards/postgresql/Jira.json index 2a8ee99de36..1b200dbb2f3 100644 --- a/grafana/dashboards/postgresql/Jira.json +++ b/grafana/dashboards/postgresql/Jira.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Jira.\n- Data Source Required: Jira", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -220,7 +220,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -272,10 +272,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -325,7 +325,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -411,10 +411,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -446,7 +446,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -502,10 +502,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -537,7 +537,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -621,10 +621,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -682,7 +682,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -735,10 +735,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -789,7 +789,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -841,10 +841,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -877,7 +877,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -964,10 +964,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1000,7 +1000,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fieldConfig": { "defaults": { @@ -1081,10 +1081,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 100 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1165,7 +1165,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1196,7 +1196,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'jira%'", "hide": 0, "includeAll": true, @@ -1217,7 +1217,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Opsgenie.json b/grafana/dashboards/postgresql/Opsgenie.json index c4c75b0d282..f76531c812b 100644 --- a/grafana/dashboards/postgresql/Opsgenie.json +++ b/grafana/dashboards/postgresql/Opsgenie.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the incident data from Opsgenie.\n- Data Source Required: Opsgenie", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -118,7 +118,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Opsgenie board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -220,7 +220,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -270,10 +270,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -323,7 +323,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -402,10 +402,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -455,7 +455,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -505,10 +505,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -558,7 +558,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -612,10 +612,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -665,7 +665,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -746,10 +746,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -825,7 +825,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -881,10 +881,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -935,7 +935,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -990,10 +990,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1044,7 +1044,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1129,10 +1129,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1187,7 +1187,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of MTTR\n2. Each point refers to the percent rank of a distinct duration to resolve incidents.", "fill": 0, "fillGradient": 4, @@ -1224,7 +1224,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.2", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1234,7 +1234,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1349,7 +1349,7 @@ "content": "
\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": "13.0.2", "targets": [ { "datasource": { @@ -1376,7 +1376,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Due to Opsgenie API limitation regarding the relationship between assignee, users, and incident (and lack of 'assign at' key ), the column assignee represents a JSON object containing all assignee from said incident", "fieldConfig": { "defaults": { @@ -1458,10 +1458,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1506,7 +1506,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'opsgenie%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Sonarqube.json b/grafana/dashboards/postgresql/Sonarqube.json index 1bae97b37a0..b9b916f14ca 100644 --- a/grafana/dashboards/postgresql/Sonarqube.json +++ b/grafana/dashboards/postgresql/Sonarqube.json @@ -49,7 +49,7 @@ "content": "- Use Cases: This dashboard shows the code quality metrics from SonarQube.\n- Data Source Required: SonarQube v8.2+\n- Snapshot panels (Reliability, Security, Test, etc.) show the latest scan and do not honor the time filter.\n- **Historical Trends** panels at the bottom respond to the time range selector and show metric history over time.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -88,7 +88,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -144,10 +144,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -176,7 +176,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -232,10 +232,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -264,7 +264,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -321,10 +321,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -353,7 +353,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -409,10 +409,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -467,7 +467,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -523,10 +523,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -555,7 +555,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -612,10 +612,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -644,7 +644,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -701,10 +701,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -759,7 +759,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -815,10 +815,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -847,7 +847,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -903,10 +903,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -935,7 +935,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -993,10 +993,10 @@ }, "showHeader": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1308,7 +1308,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM cq_projects", "hide": 0, "includeAll": true, @@ -1333,7 +1333,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT severity FROM cq_issues WHERE id::text LIKE 'sonar%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/TAPD.json b/grafana/dashboards/postgresql/TAPD.json index 61f2aa358dd..273f1dafe10 100644 --- a/grafana/dashboards/postgresql/TAPD.json +++ b/grafana/dashboards/postgresql/TAPD.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from TAPD.\n- Data Source Required: TAPD", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'tapd%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Taiga.json b/grafana/dashboards/postgresql/Taiga.json index 336d855d2c0..39bd23a5e82 100644 --- a/grafana/dashboards/postgresql/Taiga.json +++ b/grafana/dashboards/postgresql/Taiga.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows project management metrics from Taiga across all issue types (User Stories, Tasks, Issues/Requirements, Epics).\n- Data Source Required: Taiga\n- Metrics: Issue throughput (filtered by type), lead time, story points (User Stories), milestone progress, assignee breakdown and issue type breakdown.\n- Use the **Issue Type** variable to filter panels to a specific type, or select All to see all types together.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total number of user stories created in the selected time range and board.", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total number of issues that have been marked as Done/Closed in the selected time range.", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Monthly distribution of open vs. closed issues.", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Closed Issues) / count(All Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Monthly trend of issue delivery rate.", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average number of days from story creation to resolution.", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -755,7 +755,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "80% of stories are resolved within this many days.", "fieldConfig": { "defaults": { @@ -805,10 +805,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -839,7 +839,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Mean lead time per month for resolved stories.", "fieldConfig": { "defaults": { @@ -920,10 +920,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -954,7 +954,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "The cumulative distribution of story lead time. Each point shows the percent rank of a given lead time value.", "fieldConfig": { "defaults": { @@ -1033,10 +1033,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 100 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1121,7 +1121,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total story points for all user stories in the selected time range.", "fieldConfig": { "defaults": { @@ -1164,10 +1164,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1206,7 +1206,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total story points for closed/completed user stories.", "fieldConfig": { "defaults": { @@ -1249,10 +1249,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1291,7 +1291,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Story points allocated to each milestone/sprint. Requires milestone data from Taiga.", "fieldConfig": { "defaults": { @@ -1361,10 +1361,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1395,7 +1395,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Story points distributed across assignees.", "fieldConfig": { "defaults": { @@ -1465,10 +1465,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1499,7 +1499,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of story points across open vs. closed stories.", "fieldConfig": { "defaults": { @@ -1550,10 +1550,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1610,7 +1610,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Breakdown of all Taiga issues by their current status, across all issue types (User Story, Task, Issue/Requirement, Epic).", "fieldConfig": { "defaults": { @@ -1660,10 +1660,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT NOW() AS time, COUNT(DISTINCT CASE WHEN i.status = 'TODO' THEN i.id END) AS \"To Do\", COUNT(DISTINCT CASE WHEN i.status = 'IN_PROGRESS' THEN i.id END) AS \"In Progress\", COUNT(DISTINCT CASE WHEN i.status = 'DONE' THEN i.id END) AS \"Done\", COUNT(DISTINCT CASE WHEN NOT i.status IN ('TODO', 'IN_PROGRESS', 'DONE') THEN i.id END) AS \"Other\" FROM issues AS i JOIN board_issues AS bi ON i.id = bi.issue_id WHERE ('${board_id:csv}' = '' OR bi.board_id::text = ANY(ARRAY[${board_id:singlequote}]::text[]))", @@ -1674,7 +1674,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of user stories assigned to each team member.", "fieldConfig": { "defaults": { @@ -1743,10 +1743,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1777,7 +1777,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of user stories in each milestone/sprint.", "fieldConfig": { "defaults": { @@ -1846,10 +1846,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1880,7 +1880,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Milestone progress: open vs. closed user stories per sprint.", "fieldConfig": { "defaults": { @@ -1948,10 +1948,10 @@ "xTickLabelRotation": -15, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2002,7 +2002,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2042,7 +2042,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of all Taiga items across issue types (User Story, Task, Issue/Requirement, Epic).", "fieldConfig": { "defaults": { @@ -2092,10 +2092,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT NOW() AS time, COUNT(DISTINCT CASE WHEN i.type = 'USER_STORY' THEN i.id END) AS \"User Story\", COUNT(DISTINCT CASE WHEN i.type = 'TASK' THEN i.id END) AS \"Task\", COUNT(DISTINCT CASE WHEN i.type = 'REQUIREMENT' THEN i.id END) AS \"Issue\", COUNT(DISTINCT CASE WHEN i.type = 'EPIC' THEN i.id END) AS \"Epic\" FROM issues AS i JOIN board_issues AS bi ON i.id = bi.issue_id WHERE ('${board_id:csv}' = '' OR bi.board_id::text = ANY(ARRAY[${board_id:singlequote}]::text[]))", @@ -2106,7 +2106,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Open vs closed count for each Taiga issue type in the selected time range.", "fieldConfig": { "defaults": { @@ -2175,10 +2175,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -2190,7 +2190,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Monthly count of items created, broken down by issue type (User Stories, Tasks, Issues, Epics).", "fieldConfig": { "defaults": { @@ -2266,10 +2266,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(i.created_date AS DATE) + INTERVAL '1 DAY' * (-EXTRACT(DAY FROM CAST(i.created_date AS DATE)) + 1) AS time, COUNT(DISTINCT CASE WHEN i.type = 'USER_STORY' THEN i.id END) AS \"User Stories\", COUNT(DISTINCT CASE WHEN i.type = 'TASK' THEN i.id END) AS \"Tasks\", COUNT(DISTINCT CASE WHEN i.type = 'REQUIREMENT' THEN i.id END) AS \"Issues\", COUNT(DISTINCT CASE WHEN i.type = 'EPIC' THEN i.id END) AS \"Epics\" FROM issues AS i JOIN board_issues AS bi ON i.id = bi.issue_id WHERE ('${board_id:csv}' = '' OR bi.board_id::text = ANY(ARRAY[${board_id:singlequote}]::text[])) AND $__timeFilter(i.created_date) GROUP BY 1 ORDER BY 1 NULLS FIRST", @@ -2280,7 +2280,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average lead time in days from creation to resolution, broken down by issue type (resolved issues only).", "fieldConfig": { "defaults": { @@ -2354,10 +2354,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -2387,7 +2387,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'taiga%'", "hide": 0, "includeAll": true, @@ -2412,7 +2412,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT i.type FROM issues AS i JOIN board_issues AS bi ON i.id = bi.issue_id WHERE bi.board_id::text LIKE 'taiga%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Teambition.json b/grafana/dashboards/postgresql/Teambition.json index 8fc905b4157..2b0d2e62e3d 100644 --- a/grafana/dashboards/postgresql/Teambition.json +++ b/grafana/dashboards/postgresql/Teambition.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Teambition.\n- Data Source Required: Teambition", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'teambition%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Testmo.json b/grafana/dashboards/postgresql/Testmo.json index 9e8bcce9a65..86cdf283996 100644 --- a/grafana/dashboards/postgresql/Testmo.json +++ b/grafana/dashboards/postgresql/Testmo.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows comprehensive test management metrics from Testmo.\n- Data Source Required: Testmo\n- Metrics: Test execution, success rates, coverage, and performance analytics", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total number of test runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -158,10 +158,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -176,7 +176,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage of test runs that passed successfully", "fieldConfig": { "defaults": { @@ -227,10 +227,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -245,7 +245,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Test execution results over time showing pass/fail/skip distribution", "fieldConfig": { "defaults": { @@ -363,10 +363,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -380,7 +380,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total number of Testmo runs (new data source)", "fieldConfig": { "defaults": { @@ -422,10 +422,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average execution time per test run in minutes", "fieldConfig": { "defaults": { @@ -491,10 +491,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -508,7 +508,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily count of test runs from the new runs data source", "fieldConfig": { "defaults": { @@ -599,7 +599,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -613,7 +613,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Test coverage across different projects", "fieldConfig": { "defaults": { @@ -684,7 +684,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -723,7 +723,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Success rate trend over time", "fieldConfig": { "defaults": { @@ -797,7 +797,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -810,7 +810,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average test execution time trend", "fieldConfig": { "defaults": { @@ -882,7 +882,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -895,7 +895,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Comparison between automation runs and regular test runs over time", "fieldConfig": { "defaults": { @@ -1001,7 +1001,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1010,7 +1010,7 @@ "refId": "A" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1023,7 +1023,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Test runs that take the longest time to execute", "fieldConfig": { "defaults": { @@ -1113,10 +1113,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1149,7 +1149,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1181,7 +1181,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM _tool_testmo_connections", "hide": 0, "includeAll": true, @@ -1202,7 +1202,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM _tool_testmo_projects WHERE ('${connection_id:csv}' = '' OR connection_id::text = ANY(ARRAY[${connection_id:singlequote}]::text[]))", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/Zentao.json b/grafana/dashboards/postgresql/Zentao.json index b99b10e1861..046f8bf7928 100644 --- a/grafana/dashboards/postgresql/Zentao.json +++ b/grafana/dashboards/postgresql/Zentao.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the basic project management metrics from Zentao.\n- Data Source Required: Zentao", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of issues created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -439,7 +439,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -493,10 +493,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -528,7 +528,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Issue Delivery Rate = count(Delivered Issues)/count(Issues)", "fieldConfig": { "defaults": { @@ -609,10 +609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -670,7 +670,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -757,7 +757,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -807,10 +807,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -843,7 +843,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -928,10 +928,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -968,7 +968,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of requirement lead time. \n2. Each point refers to the percent rank of a lead time.", "fill": 0, "fillGradient": 4, @@ -1005,7 +1005,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1015,7 +1015,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -1112,7 +1112,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1144,7 +1144,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'zentao%'", "hide": 0, "includeAll": true, @@ -1165,7 +1165,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/ai-cost-efficiency.json b/grafana/dashboards/postgresql/ai-cost-efficiency.json index 9d463ae3d0f..497a05b0f34 100644 --- a/grafana/dashboards/postgresql/ai-cost-efficiency.json +++ b/grafana/dashboards/postgresql/ai-cost-efficiency.json @@ -44,7 +44,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -84,7 +84,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(SUM(credits_used)) AS \"Total Credits\" FROM _tool_q_dev_user_report WHERE $__timeFilter(date)", @@ -95,7 +95,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -135,7 +135,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(SUM(r.credits_used) AS NUMERIC) / NULLIF(NULLIF(COUNT(DISTINCT pr.id), 0), 0) AS DECIMAL), 1) AS \"Credits / PR\" FROM _tool_q_dev_user_report AS r CROSS JOIN (SELECT DISTINCT id FROM pull_requests WHERE NOT merged_date IS NULL AND $__timeFilter(merged_date)) AS pr WHERE $__timeFilter(r.date)", @@ -146,7 +146,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -186,7 +186,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(SUM(r.credits_used) AS NUMERIC) / NULLIF(NULLIF(COUNT(DISTINCT cdc.cicd_deployment_id), 0), 0) AS DECIMAL), 1) AS \"Credits / Deploy\" FROM _tool_q_dev_user_report AS r CROSS JOIN (SELECT DISTINCT cicd_deployment_id FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND environment = 'PRODUCTION' AND $__timeFilter(finished_date)) AS cdc WHERE $__timeFilter(r.date)", @@ -197,7 +197,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -237,7 +237,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(SUM(r.credits_used) AS NUMERIC) / NULLIF(NULLIF(COUNT(DISTINCT i.id), 0), 0) AS DECIMAL), 1) AS \"Credits / Issue\" FROM _tool_q_dev_user_report AS r CROSS JOIN (SELECT DISTINCT id FROM issues WHERE NOT resolution_date IS NULL AND type <> 'INCIDENT' AND $__timeFilter(resolution_date)) AS i WHERE $__timeFilter(r.date)", @@ -261,7 +261,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly cost per merged PR", "fieldConfig": { "defaults": { @@ -313,7 +313,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, SUM(credits_used) AS credits FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day'), _prs AS (SELECT CAST(merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS prs FROM pull_requests WHERE NOT merged_date IS NULL AND $__timeFilter(merged_date) GROUP BY CAST(merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(merged_date AS DATE)) - 1) * INTERVAL '1 day') SELECT c.week_start AS time, ROUND(CAST(c.credits AS NUMERIC) / NULLIF(NULLIF(p.prs, 0), 0), 1) AS \"Credits per PR\" FROM _credits AS c LEFT JOIN _prs AS p ON c.week_start = p.week_start ORDER BY time NULLS FIRST", @@ -324,7 +324,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly cost per production deployment", "fieldConfig": { "defaults": { @@ -376,7 +376,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, SUM(credits_used) AS credits FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day'), _deploys AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(DISTINCT cicd_deployment_id) AS deploys FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND environment = 'PRODUCTION' AND $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day') SELECT c.week_start AS time, ROUND(CAST(c.credits AS NUMERIC) / NULLIF(NULLIF(d.deploys, 0), 0), 1) AS \"Credits per Deploy\" FROM _credits AS c LEFT JOIN _deploys AS d ON c.week_start = d.week_start ORDER BY time NULLS FIRST", @@ -387,7 +387,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly cost per resolved issue", "fieldConfig": { "defaults": { @@ -439,7 +439,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _credits AS (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, SUM(credits_used) AS credits FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day'), _issues AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS resolved FROM issues WHERE NOT resolution_date IS NULL AND type <> 'INCIDENT' AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day') SELECT c.week_start AS time, ROUND(CAST(c.credits AS NUMERIC) / NULLIF(NULLIF(i.resolved, 0), 0), 1) AS \"Credits per Issue\" FROM _credits AS c LEFT JOIN _issues AS i ON c.week_start = i.week_start ORDER BY time NULLS FIRST", @@ -450,7 +450,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Is cost efficiency improving over time?", "fieldConfig": { "defaults": { @@ -502,7 +502,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(credits_used) AS \"Credits\", SUM(total_messages) AS \"Messages\", SUM(chat_conversations) AS \"Conversations\" FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", diff --git a/grafana/dashboards/postgresql/argo-cd.json b/grafana/dashboards/postgresql/argo-cd.json index 6ace7a63d50..523b012ddc0 100644 --- a/grafana/dashboards/postgresql/argo-cd.json +++ b/grafana/dashboards/postgresql/argo-cd.json @@ -50,7 +50,7 @@ "content": "- Use Cases: Track ArgoCD deployment activity, measure success rates, monitor environments, and spot slow deployments.\n- Data Source Required: ArgoCD plugin (deployments mapped into `cicd_deployments`).\n- Filters: Use the *Application* templating variable to focus on specific ArgoCD applications.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -103,10 +103,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -120,7 +120,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -158,10 +158,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -175,7 +175,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Successful deployments / Total deployments", "fieldConfig": { "defaults": { @@ -217,10 +217,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -234,7 +234,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -284,10 +284,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -314,7 +314,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -361,10 +361,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -378,7 +378,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -429,10 +429,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -446,7 +446,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -493,10 +493,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -523,7 +523,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average duration of deployments (minutes)", "fieldConfig": { "defaults": { @@ -563,10 +563,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -580,7 +580,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -627,10 +627,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -644,7 +644,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -695,10 +695,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -712,7 +712,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "7-day rolling average of deployment duration (minutes)", "fieldConfig": { "defaults": { @@ -749,10 +749,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -779,7 +779,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -830,10 +830,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -860,7 +860,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "mappings": [], @@ -901,10 +901,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -918,7 +918,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Approximation: counts deployments per unique images array (revision-level). For per-image counts, consider exploding arrays during ingestion.", "fieldConfig": { "defaults": { @@ -966,10 +966,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1002,7 +1002,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "allValue": "$__all", "definition": "SELECT name || '--' || id AS text FROM cicd_scopes WHERE id::text LIKE 'argocd:ArgocdApplication:%'", "hide": 0, diff --git a/grafana/dashboards/postgresql/azure-dev-ops.json b/grafana/dashboards/postgresql/azure-dev-ops.json index 9070b3a25c7..85d27bca014 100644 --- a/grafana/dashboards/postgresql/azure-dev-ops.json +++ b/grafana/dashboards/postgresql/azure-dev-ops.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from Azure DevOps.\n- Data Source Required: Azure DevOps", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -141,10 +141,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -196,7 +196,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -291,10 +291,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -346,7 +346,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -430,10 +430,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -511,7 +511,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -563,10 +563,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -600,7 +600,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -724,10 +724,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,7 +779,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -828,10 +828,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -883,7 +883,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -965,10 +965,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1020,7 +1020,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1074,10 +1074,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1111,7 +1111,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1195,10 +1195,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1263,7 +1263,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of Pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1310,10 +1310,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1364,7 +1364,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful Pipeline runs / Number of total Pipeline runs", "fieldConfig": { "defaults": { @@ -1417,10 +1417,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1471,7 +1471,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1584,10 +1584,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1639,7 +1639,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful Pipeline runs / Number of total Pipeline runs", "fieldConfig": { "defaults": { @@ -1772,10 +1772,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1826,7 +1826,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1913,10 +1913,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1967,7 +1967,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Pipeline runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"Pipeline runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -2014,10 +2014,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2068,7 +2068,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2168,10 +2168,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2243,7 +2243,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2277,7 +2277,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos WHERE id::text LIKE 'azure%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/bit-bucket.json b/grafana/dashboards/postgresql/bit-bucket.json index e71df2063bc..91504944776 100644 --- a/grafana/dashboards/postgresql/bit-bucket.json +++ b/grafana/dashboards/postgresql/bit-bucket.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from Bitbucket.\n- Data Source Required: Bitbucket Cloud or Server/data center. Please note that for Bitbucket Server/Data center, there is no embedded CI/CD data.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -144,10 +144,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -199,7 +199,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -294,10 +294,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -349,7 +349,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -433,10 +433,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -514,7 +514,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -566,10 +566,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -603,7 +603,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -724,10 +724,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,7 +779,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -828,10 +828,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -883,7 +883,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -965,10 +965,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1020,7 +1020,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1074,10 +1074,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1111,7 +1111,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1195,10 +1195,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1263,7 +1263,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of pipeline runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -1310,10 +1310,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1364,7 +1364,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -1417,10 +1417,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1471,7 +1471,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1584,10 +1584,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1639,7 +1639,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1772,10 +1772,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1826,7 +1826,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Pipeline Runs success rate over time.\n2. The Pipeline runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -1913,10 +1913,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1967,7 +1967,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful pipeline runs / Number of total pipeline runs", "fieldConfig": { "defaults": { @@ -2014,10 +2014,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2068,7 +2068,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2168,10 +2168,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2243,7 +2243,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2277,7 +2277,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos WHERE id::text LIKE 'bitbucket%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/circle-ci.json b/grafana/dashboards/postgresql/circle-ci.json index 45cf2881ca1..16b0be85ba7 100644 --- a/grafana/dashboards/postgresql/circle-ci.json +++ b/grafana/dashboards/postgresql/circle-ci.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic CI/CD metrics from CircleCI, such as [Build Count](https://devlake.apache.org/docs/Metrics/BuildCount), [Build Duration](https://devlake.apache.org/docs/Metrics/BuildDuration) and [Build Success Rate](https://devlake.apache.org/docs/Metrics/BuildSuccessRate).\n- Data Source Required: CircleCI", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -65,7 +65,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of builds executed in the selected time range", "fieldConfig": { "defaults": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -167,7 +167,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful workflows / Number of total workflows", "fieldConfig": { "defaults": { @@ -218,10 +218,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -272,7 +272,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -406,10 +406,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -460,7 +460,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful workflows / Number of total workflows", "fieldConfig": { "defaults": { @@ -509,10 +509,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -563,7 +563,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -648,10 +648,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -703,7 +703,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean workflows success rate over time.\n2. The workflows being calculated are filtered by \"build starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -808,10 +808,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -862,7 +862,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -978,10 +978,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1033,7 +1033,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1134,10 +1134,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1209,7 +1209,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1241,7 +1241,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM cicd_scopes WHERE id::text LIKE '%circleci%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/component-and-file-level-metrics.json b/grafana/dashboards/postgresql/component-and-file-level-metrics.json index f8f0bf89aa2..f89723ae82f 100644 --- a/grafana/dashboards/postgresql/component-and-file-level-metrics.json +++ b/grafana/dashboards/postgresql/component-and-file-level-metrics.json @@ -128,10 +128,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -243,10 +243,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -385,10 +385,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -518,10 +518,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -678,10 +678,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -779,10 +779,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -834,7 +834,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -910,10 +910,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1044,10 +1044,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1125,7 +1125,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -1201,10 +1201,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1256,7 +1256,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Please disable the SkipCommitFiles in the .env setting to view this metric. However, this will significantly increase the time to collect data.", "fieldConfig": { "defaults": { @@ -1306,10 +1306,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1378,7 +1378,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/contributor-experience.json b/grafana/dashboards/postgresql/contributor-experience.json index e4e417f39d9..54d28fbb944 100644 --- a/grafana/dashboards/postgresql/contributor-experience.json +++ b/grafana/dashboards/postgresql/contributor-experience.json @@ -44,7 +44,7 @@ "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": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -59,7 +59,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -108,10 +108,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -145,7 +145,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -192,10 +192,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -229,7 +229,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -276,10 +276,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -313,7 +313,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -359,10 +359,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -414,7 +414,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -461,10 +461,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -498,7 +498,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -545,10 +545,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -582,7 +582,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -629,10 +629,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -684,7 +684,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -737,10 +737,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -812,7 +812,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -840,7 +840,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '-' || id FROM repos", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/demo-average-requirement-lead-time-by-assignee.json b/grafana/dashboards/postgresql/demo-average-requirement-lead-time-by-assignee.json index 9218d5a2780..023e8cf18e6 100644 --- a/grafana/dashboards/postgresql/demo-average-requirement-lead-time-by-assignee.json +++ b/grafana/dashboards/postgresql/demo-average-requirement-lead-time-by-assignee.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Compare the average time spent in each state of a requirement in the last 2 months.\n2. The requirements being calculated are the requirements delivered in the last 2 months.", "fieldConfig": { "defaults": { @@ -103,7 +103,7 @@ "mode": "multi" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -139,7 +139,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -174,7 +174,7 @@ "options": { "showHeader": true }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -221,7 +221,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/demo-commit-count-by-author.json b/grafana/dashboards/postgresql/demo-commit-count-by-author.json index 826fc07bddc..039a7ee3c2b 100644 --- a/grafana/dashboards/postgresql/demo-commit-count-by-author.json +++ b/grafana/dashboards/postgresql/demo-commit-count-by-author.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "The number of commits from different commit authors.", "fieldConfig": { "defaults": { @@ -105,7 +105,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -142,7 +142,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -180,7 +180,7 @@ "options": { "showHeader": true }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -228,7 +228,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/demo-detailed-bug-info.json b/grafana/dashboards/postgresql/demo-detailed-bug-info.json index 5607ac3f6c9..3529a0bbe81 100644 --- a/grafana/dashboards/postgresql/demo-detailed-bug-info.json +++ b/grafana/dashboards/postgresql/demo-detailed-bug-info.json @@ -44,7 +44,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -106,7 +106,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -140,7 +140,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -241,7 +241,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -286,7 +286,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/demo-homepage.json b/grafana/dashboards/postgresql/demo-homepage.json index 84ae6687845..2100d25700f 100644 --- a/grafana/dashboards/postgresql/demo-homepage.json +++ b/grafana/dashboards/postgresql/demo-homepage.json @@ -34,7 +34,7 @@ "content": "\n
\n

How fast do we respond to customer requirements?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", @@ -85,7 +85,7 @@ "content": "\n
\n

Was our quality improved or not?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", @@ -136,7 +136,7 @@ "content": "\n
\n

Is this month more productive than last?

\n
\n
", "mode": "html" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "time_series", diff --git a/grafana/dashboards/postgresql/demo-how-fast-do-we-respond-to-customer-requirements.json b/grafana/dashboards/postgresql/demo-how-fast-do-we-respond-to-customer-requirements.json index 82049695c45..cf477e80622 100644 --- a/grafana/dashboards/postgresql/demo-how-fast-do-we-respond-to-customer-requirements.json +++ b/grafana/dashboards/postgresql/demo-how-fast-do-we-respond-to-customer-requirements.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -101,7 +101,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -150,7 +150,7 @@ "content": "
\n\n[Drill down by assignee](/d/q27fk7cnk/demo-average-requirement-lead-time-by-assignee?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -172,7 +172,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Requirement Lead Time

\n
\n\nSection | Description\n:----------------- | :-------------\nMetric Definition | Total duration of requirements from proposal to delivery. It can be divided by flow status in the practice domain or project management system to count the time share of each phase and help locate the links that drag out the requirement delivery cycle.\nMetric Value | The Requirement Lead Time reflects the rapid responsiveness of the R&D team.
In theory, the faster you can deliver value to customers, the better, but other aspects such as whether the delivered value meets customer expectations, requirement throughput, and delivery quality must be considered together. Fast delivery does not necessarily equate to good R&D practices.\n\n***\n#### *M (Measure)*\n1. Count the average or 80th percentile requirement lead time for different times.\n2. Counts the average or 80th percentile requirement lead time for different projects.
\n3. Count the length of time that requirements stay in different practice domains (requirements analysis, design, development, testing, release) or in different states.\n\n##### *A (Analyze)*\n1. Compare the requirement delivery speed of different projects to find the fastest and slowest delivering projects.\n2. Analyze the trend of the average requirement lead time within each cycle, make a vertical comparison, and locate the key points such as maximum value, minimum value, continuous up cycle, and continuous down cycle.\n3. Analyze the trend of the delivery cycle of 80% of the requirements within each cycle, make a longitudinal comparison, and locate the key points such as maximum value, minimum value, continuous up cycle, and continuous down cycle.

\nWhy choose the 80% quantile instead of using the average?
\nThe point of statistics is to make predictions with real and valid data to support better decisions, while the mean and median cannot have the role of supporting predictions.
\nTypically, the mean and 80% quantile statistics will appear twice as far apart, and the 80% and 99% quantile tend to be approximately twice as related.
\nTherefore, the 80% quantile is a good balance point for prediction.\n
\n4. Analysis compares the length of time requirement stays in different practice domains or different states to identify the most time-consuming links and find the key bottlenecks that affect overall delivery speed.\n5. Requirement lead time is correlated with requirement throughput to identify whether the requirement delivery trend is healthy or not.\n - Healthy trend: requirement lead time is shortened and requirement throughput is increased.\n - Unhealthy trend: longer requirement lead time and lower requirement throughput.\n\n\n##### *R (Review)*\nBased on the analysis results, focus on a few key points and use Ishikawa diagram (fishbone diagram) or Root Cause Analysis (RCA) to conduct root cause analysis, research and review. For example, if the requirement delivery cycle becomes longer in several consecutive statistical cycles, it is necessary to further investigate the length of stay of requirements in different phases and find the longest phase for root cause analysis.\n\n1. The requirements phase takes too long: unclear requirements, frequent changes, overly granular requirements, requirements priorities not clearly defined, insufficient resources or experience of requirements analysts or product managers?\n2. The design phase takes too long: unclear requirement documents, insufficient resources or experience of R&D leaders or architects?\n3. The development phase takes too long: unclear design documents, uneven task distribution, high stream load (parallel tasks), too much technical debt, too many bugs, insufficient resources or experience of developers?\n4. The testing phase takes too long: unclear requirements documentation, poor code quality, few automated tests, insufficient resources or experience of testers?\n5. The release phase takes too long: too long build or deployment time, insufficient resources or experience of operation and maintenance staff?\n\n##### *I (Improve)*\nBased on the review results, focus on the key root causes, and give targeted improvement measures in terms of norms, processes, tools and behaviors, etc., with clear improvement targets, improvement measures, verification cycles and responsible persons.\n\nThe following are the improvement ideas for reference:\n\n1. Communicate with customers or business parties to clarify requirements, reasonably disassemble requirements and define priorities, and invite business parties, R&D leaders and testing leaders to review requirements.\n2. Invite product managers, R&D personnel, and test leaders to conduct design reviews.\n3. Reduce requirement or task granularity, distribute tasks evenly, reduce flow load, increase unit testing, and solve technical debt and code problems in time to reduce the number of bugs and rework.\n4. Test left, develop self-test, code review, increase automated testing, and improve continuous integration capabilities.\n5. Automate deployment, shorten build time, and improve continuous delivery.\n6. Reasonable resource allocation and necessary training for each job holder.\n7. The improvement results should also be quantifiable to facilitate continuous metrics and tracking of improvement effects.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -194,7 +194,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/demo-is-this-month-more-productive-than-last.json b/grafana/dashboards/postgresql/demo-is-this-month-more-productive-than-last.json index 55fd923acdf..f6a4dcd75ae 100644 --- a/grafana/dashboards/postgresql/demo-is-this-month-more-productive-than-last.json +++ b/grafana/dashboards/postgresql/demo-is-this-month-more-productive-than-last.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -131,7 +131,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -180,7 +180,7 @@ "content": "
\n\n[Drill down by commit author](/d/F0iYknc7z/demo-commit-count-by-author?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -202,7 +202,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Commit Count

\n
\n\nSection | Description\n:------------------ | :-------------\nMetric Definition | The total number of commits.\nMetric Value | The number of commits reflects the frequency of code commits and encourages multiple small step commits per day. While paying attention to the number of times, you should also observe the number of lines of code per commit.\n\n***\n\n#### *M (Measure)*\nThe number of commits can be counted in time, project, team or individual dimensions, and the above 4 dimensions can be cross-tabulated, e.g., the number of commits per week for a project, the average number of commits per person per day for a team.\n\n##### *A (Analyze)*\n1. By project dimension, analyze and compare the number of code commits of different projects horizontally, and locate the projects with the maximum, minimum and lower than average values for research.\n2. By team dimension, analyze and compare the number of code commits of different teams horizontally, and locate the teams with the maximum, minimum, and lower than average values for research.\n3. By individual dimension, analyze and compare the number of code commits of different personnel horizontally, and locate the individuals with the maximum, minimum, and lower than average values for research.\n4. Analyze the trend of the number of code commits in each cycle, compare vertically, and locate the maximum, minimum, and continuously increasing or decreasing cycles for research.\n\n##### *R (Review)*\nBased on the results of metrics analysis, use Ishikawa diagram (fishbone diagram) or root cause analysis (RCA) to analyze, investigate and review the root causes of projects/teams/individuals with low (e.g. lower than average) code submission times in a cycle:\n1. too many complicated requirements with large granularity (estimated workload)?\n2. uneven and full task distribution?\n3. no specification for small step submission?\n\n##### *I (Improve)*\nBased on the review results, focus on the key root causes, give targeted improvement measures in terms of specification, process, tools, behavior, etc., and clarify the improvement target, improvement measures, verification cycle and responsible person.\nTo address the root causes of low code submission in the cycle, the following improvement measures were taken: 1.\n1. reduce the granularity of requirements.\n2. distribute tasks evenly so that each person has a full workload each day.\n3. set small step commit specifications, such as an average number of commits per person per day greater than 1, an average number of lines per commit less than 100, etc.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -224,7 +224,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/demo-was-our-quality-improved-or-not.json b/grafana/dashboards/postgresql/demo-was-our-quality-improved-or-not.json index 22fb2464dd2..4735a4f17a8 100644 --- a/grafana/dashboards/postgresql/demo-was-our-quality-improved-or-not.json +++ b/grafana/dashboards/postgresql/demo-was-our-quality-improved-or-not.json @@ -32,7 +32,7 @@ ], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -101,7 +101,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -147,7 +147,7 @@ "content": "
\n\n[See Detailed Bug Info](/d/s48Lzn5nz/demo-detailed-bug-info?orgId=1)\n ", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -169,7 +169,7 @@ "content": "
\n \"Merico\"\n

MARI Guide - Bug Count per 1k Lines of Code

\n
\n\nSection | Description\n:----------------- | :-------------\nMetric Definition | The ratio of the number of bugs found to the corresponding amount of code or code changes, to characterize the density of overall bugs, including bugs found in testing and online. For example, bug count per 1k lines of code, bug count per 1k code equivalent.\nMetric Value | The bug rate, as a quality indicator, represents the density of bugs, and is one of the important indicators used to assess the quality of software products and testing quality. Usually, the cost of fixing detected bugs is higher in the later stage of the software development life cycle, and this metric is valuable for analyzing and evaluating both online quality and bug fixing cost.\n\n***\n#### *M (Measure)*\n1. Bug count per 1k lines of code by project.\n2. Trends in 'Bug count per 1k lines of code' over time.\n3. Measure historical data to establish year-over-year and historical baseline reference values for 'Bug count per 1k lines of code'.\n\n##### *A (Analyze)*\n1. Year-over-year analysis: The bug rate of similar projects in the same period is compared and analyzed, and the improvement effect of product quality is observed through the rise and fall of the data.\n2. Circumferential analysis: Analyze the bug rate of projects in the recent year, analyze the change of online bug rate according to the time axis, and compare with the historical baseline at the same time to give a judgment analysis of the rise and fall of indicators.\n3. Trend analysis: analyze the trend of bug rate over time (days, weeks, months), judge the trend rise, and evaluate whether the stable cycle of product quality is reasonable by observing changes such as trend slowing-down and smoothing.\n4. Horizontal analysis: Compare the bug rate of multiple projects as a reference to evaluate the quality of software products online.\n5. Classification analysis: Classify and analyze the types of bugs, severity levels, and modules they belong to, and identify the key issues that show aggregated distribution.\n\n##### *R (Review)*\nFor the high severity level of online bugs should be a complete review, according to the timeline, role dimensions, the sequence of events on the root cause of bugs to dig, locate the key issues.\nAccording to the quantitative conclusions drawn from the analysis, further data drilling and root cause mining can be organized for bugs in several dimensions, including whether they are missed, the module they belong to, the cause, the occurrence cycle, and the resolution.\n1. bug escape rate: derived from [number of online bugs / (number of online bugs + number of bugs found in test)], this indicator can be compared with historical data, if the data exceeds the acceptable range of history and testing department, then it is necessary to conduct leak analysis. If the data exceeds the acceptable interval of history and testing department, it is necessary to analyze the missed test and confirm whether the use case is missed or not covered, so as to strengthen the use case design and management.\n2. defective module: The defective module can be located to the key module where the problem is concentrated, and targeted improvement measures are required for each link from requirements, design, development to testing, and typical problems are located for the bugive module to establish targeted measures.\n3. bug generation causes: through the cause analysis of bugs, similar bugs bugs can be put together, so that bugs belonging to the same category and accounting for a high percentage of bugs will be highlighted, so that it is easy to take out the bugs with more concentrated causes and jointly discuss the next improvement measures to precisely reduce the number of similar bugs.\n4. bug occurrence cycle: analyze the bug occurrence cycle, determine whether the users use the system frequently, whether the system has been updated or optimized, whether the system has been refactored, etc., which will cause a long and short bug occurrence cycle after the launch, through the analysis of the bug cycle length, to draw some valuable conclusions about the stability of the system.\n5. bug resolution: statistics on the resolution of bugs, which bugs are not reproduced, which are temporarily handled, and which are in need of continuous improvement. For the temporary resolution of bugs, analyze whether it will cause another bug elsewhere in the system, whether the user can receive the temporary resolution, what development and testing need to focus on similar bugs, and whether similar bugs need to be tested elsewhere for horizontal expansion. Those that require continuous improvement need to be further tracked by testing until the problem is resolved.\n\n##### *I (Improve)*\nThrough root cause mining, starting from the key bugs, the key problems of each link to locate, in accordance with the principle that the later the bugs are found, the higher the cost and complexity of the solution, in addition to the test design and implementation to start improving (refer to the improvement links of the number of bugs on the line), more should start the construction of quality from the upstream of the software engineering stage, to achieve the forward movement of the bug discovery stage, such as\n1. optimizing static scan rules according to the type, number and severity level of static scan problems to reduce false positives and expose as many serious problems as possible (quality over quantity).\n2. Define the requirement of resolution ratio for different severity level problems to control the backlog of serious problems.\n3. Establish code review system, strategy, and encourage the promotion of code review implementation.\n4. Establish unit test coverage ratio or unit test coverage condition requirements, e.g. functions with circle complexity greater than 10 shall be covered by unit tests.\nImplement improvement measures and clarify the improvement target, improvement measures, verification cycle and responsible person. Do a new round of MARI (Measure, Analysis, Review, and Verification) for the improvement effect to quantify the improvement effect.", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -191,7 +191,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", diff --git a/grafana/dashboards/postgresql/developer-productivity-hours.json b/grafana/dashboards/postgresql/developer-productivity-hours.json index f2cf1217045..ba9848d1c43 100644 --- a/grafana/dashboards/postgresql/developer-productivity-hours.json +++ b/grafana/dashboards/postgresql/developer-productivity-hours.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Chat and completion events by hour of day", "fieldConfig": { "defaults": { @@ -63,7 +63,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(hr AS TEXT), 2, '0') AS \"Hour\", SUM(chat) AS \"Chat Events\", SUM(comp) AS \"Completion Events\" FROM (SELECT EXTRACT(HOUR FROM timestamp) AS hr, COUNT(*) AS chat, 0 AS comp FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY EXTRACT(HOUR FROM timestamp) UNION ALL SELECT EXTRACT(HOUR FROM timestamp) AS hr, 0 AS chat, COUNT(*) AS comp FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) GROUP BY EXTRACT(HOUR FROM timestamp)) AS t GROUP BY hr ORDER BY hr NULLS FIRST", @@ -74,7 +74,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average prompt complexity and response richness by hour", "fieldConfig": { "defaults": { @@ -122,7 +122,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(EXTRACT(HOUR FROM timestamp) AS TEXT), 2, '0') AS \"Hour\", ROUND(AVG(prompt_length)) AS \"Avg Prompt Length\", ROUND(AVG(response_length)) AS \"Avg Response Length\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY EXTRACT(HOUR FROM timestamp) ORDER BY EXTRACT(HOUR FROM timestamp) NULLS FIRST", @@ -133,7 +133,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Steering and spec mode usage concentration by hour", "fieldConfig": { "defaults": { @@ -177,7 +177,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT LPAD(CAST(EXTRACT(HOUR FROM timestamp) AS TEXT), 2, '0') AS \"Hour\", SUM(CASE WHEN has_steering = TRUE THEN 1 ELSE 0 END) AS \"Steering\", SUM(CASE WHEN is_spec_mode = TRUE THEN 1 ELSE 0 END) AS \"Spec Mode\", SUM(CASE WHEN has_steering = FALSE AND is_spec_mode = FALSE THEN 1 ELSE 0 END) AS \"Plain Chat\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY EXTRACT(HOUR FROM timestamp) ORDER BY EXTRACT(HOUR FROM timestamp) NULLS FIRST", @@ -188,7 +188,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Day-of-week activity pattern", "fieldConfig": { "defaults": { @@ -232,7 +232,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CASE EXTRACT(ISODOW FROM CAST(timestamp AS DATE)) WHEN 1 THEN 'Sun' WHEN 2 THEN 'Mon' WHEN 3 THEN 'Tue' WHEN 4 THEN 'Wed' WHEN 5 THEN 'Thu' WHEN 6 THEN 'Fri' WHEN 7 THEN 'Sat' END AS \"Day\", SUM(chat) AS \"Chat Events\", SUM(comp) AS \"Completions\" FROM (SELECT timestamp, COUNT(*) AS chat, 0 AS comp FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY timestamp UNION ALL SELECT timestamp, 0, COUNT(*) FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) GROUP BY timestamp) AS t GROUP BY EXTRACT(ISODOW FROM CAST(timestamp AS DATE)) ORDER BY EXTRACT(ISODOW FROM CAST(timestamp AS DATE)) NULLS FIRST", diff --git a/grafana/dashboards/postgresql/dora-by-team.json b/grafana/dashboards/postgresql/dora-by-team.json index 6072334963b..b8f227c64ac 100644 --- a/grafana/dashboards/postgresql/dora-by-team.json +++ b/grafana/dashboards/postgresql/dora-by-team.json @@ -49,7 +49,7 @@ "content": "- See [how to config](https://devlake.apache.org/docs/DORA) this dashboard\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- You can validate/debug this dashboard with the [DORA validation dashboard](/grafana/d/KGkUnV-Vz/dora-dashboard-validation) \n- You also need to do [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard. \n- DORA benchmarks vary in different years. You can switch the benchmarks to change them.\n- In DORA's official report in 2023, metric 'failed deployment recovery time' has replaced 'MTTR'.\n- How does this work? \n - Gets the author of the specific commit and then navigates to the team the user belongs to. \n - Gets the team from the PR's author. \n - Gets the team from the commit author.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -63,7 +63,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -198,10 +198,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -231,7 +231,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -315,10 +315,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -370,7 +370,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -454,10 +454,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -487,7 +487,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -571,10 +571,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -604,7 +604,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -689,10 +689,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -722,7 +722,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -799,7 +799,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -829,7 +829,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -901,10 +901,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -934,7 +934,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1025,10 +1025,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -1058,7 +1058,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1135,10 +1135,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -1181,7 +1181,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM teams", "hide": 0, "includeAll": true, @@ -1202,7 +1202,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "hide": 0, "includeAll": false, @@ -1223,7 +1223,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/dora-debug.json b/grafana/dashboards/postgresql/dora-debug.json index d7b56e72191..8dba4808f9c 100644 --- a/grafana/dashboards/postgresql/dora-debug.json +++ b/grafana/dashboards/postgresql/dora-debug.json @@ -43,7 +43,7 @@ "content": "This dashboard is designed to validate the [DORA dashboard](/grafana/d/qNo8_0M4z/dora?orgId=1).", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -104,7 +104,7 @@ "content": "- See the definition and calculation logic of [Deployment Frequency](https://devlake.apache.org/docs/Metrics/DeploymentFrequency)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n- Transformation Required: Define `deployments` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -118,7 +118,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -189,10 +189,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -226,7 +226,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -310,10 +310,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -365,7 +365,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -436,10 +436,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -473,7 +473,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -550,7 +550,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -602,7 +602,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -681,10 +681,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -718,7 +718,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -798,10 +798,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -835,7 +835,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -915,10 +915,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -998,7 +998,7 @@ "content": "- See the definition and calculation logic of [Median Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Pull Requests` from GitHub PRs, GitLab MRs, BitBucket PRs, Azure DevOps PRs, etc.\n- Transformation Required: Define `deployments` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.\n- Validatation Steps below:\n - Step 1 - check the data integrity of PRs in table `pull_requests`\n - Step 2 - check the data integrity of deployment_commit in table `cicd_deployment_commits`\n - Step 3 - check if a deployment_commit is associated with the correct PR in table `project_pr_metrics`\n - Step 4 - check if metrics like PR Coding/Pickup/Review/Deploy/cycle time are correct in table `project_pr_metrics`\n - Step 5 - check if the median lead time for changes in each month is correct", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1012,7 +1012,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1059,10 +1059,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1096,7 +1096,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1179,10 +1179,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1234,7 +1234,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1348,10 +1348,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1385,7 +1385,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1456,10 +1456,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1511,7 +1511,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1565,10 +1565,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1598,7 +1598,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1632,7 +1632,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1702,10 +1702,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1739,7 +1739,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1859,10 +1859,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1896,7 +1896,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1958,10 +1958,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1995,7 +1995,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2040,10 +2040,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2073,7 +2073,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2107,7 +2107,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2148,10 +2148,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2181,7 +2181,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2215,7 +2215,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2256,10 +2256,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2289,7 +2289,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2323,7 +2323,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2364,10 +2364,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2397,7 +2397,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2431,7 +2431,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2472,10 +2472,10 @@ "sizing": "auto", "text": {} }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2509,7 +2509,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2608,10 +2608,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2691,7 +2691,7 @@ "content": "- See the definition and calculation logic of [${title_value}](https://devlake.apache.org/docs/Metrics/MTTR)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2725,7 +2725,7 @@ "content": "- See the definition and calculation logic of [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR)\n- Data Sources Required: \n - `Deployments` from Jenkins, GitLab CI, GitHub Action, BitBucket Pipelines, or Webhook, etc. \n - `Incidents` from Jira issues, GitHub issues, TAPD issues, PagerDuty Incidents, etc. \n- Transformation Required: Define `deployments` and `incidents` in [data transformations](https://devlake.apache.org/docs/Configuration/Tutorial#step-3---add-transformations-optional) while configuring the blueprint of a project.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2739,7 +2739,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2800,10 +2800,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2837,7 +2837,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2920,10 +2920,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2975,7 +2975,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -3036,10 +3036,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -3093,7 +3093,7 @@ "content": "\n\nIn this case:\n\n- Deployment-1 maps to Incident-1\n- Deployment-3 maps to Incident-2 and Incident-3\n- Deployment-2,4,5 doesn't map to any Incident", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3108,7 +3108,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3200,10 +3200,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3255,7 +3255,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -3338,10 +3338,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3393,7 +3393,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -3455,10 +3455,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -3492,7 +3492,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -3554,10 +3554,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3609,7 +3609,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3701,10 +3701,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3769,7 +3769,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -3790,7 +3790,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT Url || '--' || id FROM pull_requests", "hide": 0, "includeAll": false, @@ -3811,7 +3811,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "hide": 0, "includeAll": false, @@ -3832,7 +3832,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/dora-details-change-failure-rate.json b/grafana/dashboards/postgresql/dora-details-change-failure-rate.json index 1295aa98cf1..8191eceec3c 100644 --- a/grafana/dashboards/postgresql/dora-details-change-failure-rate.json +++ b/grafana/dashboards/postgresql/dora-details-change-failure-rate.json @@ -57,7 +57,7 @@ "content": "This dashboard shows the details about [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR) in DORA.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -154,10 +154,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -209,7 +209,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -355,10 +355,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -410,7 +410,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -492,10 +492,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -546,7 +546,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -617,10 +617,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -686,7 +686,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -707,7 +707,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "hide": 0, "includeAll": false, @@ -728,7 +728,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/dora-details-deployment-frequency.json b/grafana/dashboards/postgresql/dora-details-deployment-frequency.json index 36d078547e8..581f85d1ed4 100644 --- a/grafana/dashboards/postgresql/dora-details-deployment-frequency.json +++ b/grafana/dashboards/postgresql/dora-details-deployment-frequency.json @@ -56,7 +56,7 @@ "content": "This dashboard shows the details about [deployment frequency](https://devlake.apache.org/docs/Metrics/DeploymentFrequency) in DORA.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -247,10 +247,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -302,7 +302,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -365,10 +365,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -420,7 +420,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -493,10 +493,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -548,7 +548,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -623,10 +623,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -678,7 +678,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -752,10 +752,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -827,12 +827,12 @@ "content": "# 2023 Benchmarks\n- Elite: >= 5 days per week\n- High: >= 1 day per week\n- Medium: >= 1 day per month\n- Low: < 1 day per month\n# 2021 Benchmarks\n- Elite: >= 5 days per week\n- High: >= 1 day per month\n- Medium: >= 1 day per six months\n- Low: < 1 day per six months", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "title": "DORA Report", "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -915,10 +915,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -970,7 +970,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1053,10 +1053,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1108,7 +1108,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1191,10 +1191,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1262,7 +1262,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -1283,7 +1283,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "hide": 0, "includeAll": false, @@ -1304,7 +1304,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/dora-details-failed-deployment-recovery-time.json b/grafana/dashboards/postgresql/dora-details-failed-deployment-recovery-time.json index 9785a9f8590..6962e3be8be 100644 --- a/grafana/dashboards/postgresql/dora-details-failed-deployment-recovery-time.json +++ b/grafana/dashboards/postgresql/dora-details-failed-deployment-recovery-time.json @@ -56,7 +56,7 @@ "content": "This dashboard shows the details about [Failed Deployment Recovery Time\n](https://devlake.apache.org/docs/Metrics/MTTR) in DORA.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -146,7 +146,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -304,10 +304,10 @@ } ] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -359,7 +359,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -401,10 +401,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -447,7 +447,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/dora-details-lead-timefor-changes.json b/grafana/dashboards/postgresql/dora-details-lead-timefor-changes.json index f944cc21747..6269f469d4e 100644 --- a/grafana/dashboards/postgresql/dora-details-lead-timefor-changes.json +++ b/grafana/dashboards/postgresql/dora-details-lead-timefor-changes.json @@ -55,7 +55,7 @@ "content": "- This dashboard shows the details about [Lead Time for Changes](https://devlake.apache.org/docs/Metrics/LeadTimeForChanges) in DORA.\n- It displays the statistics for pull requests **deployed** within the selected time range.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -69,7 +69,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -122,10 +122,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -177,7 +177,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -230,10 +230,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -285,7 +285,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -369,10 +369,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -424,7 +424,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -508,10 +508,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -563,7 +563,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -647,10 +647,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -702,7 +702,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Lead time for changes = median(PR deployed date - PR's first commit's authored date)", "fieldConfig": { "defaults": { @@ -823,10 +823,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -895,7 +895,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -916,7 +916,7 @@ "text": "2023", "value": "2023" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT dora_report FROM dora_benchmarks", "hide": 0, "includeAll": false, @@ -937,7 +937,7 @@ "text": "Failed Deployment Recovery Time", "value": "Failed Deployment Recovery Time" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT CASE WHEN dora_report = '2023' THEN 'Failed Deployment Recovery Time' WHEN dora_report = '2021' THEN 'Median Time to Restore Service' ELSE NULL END AS title_value FROM dora_benchmarks WHERE dora_report = '${dora_report:raw}'", "hide": 2, "includeAll": false, diff --git a/grafana/dashboards/postgresql/dora-details-timeto-restore-service.json b/grafana/dashboards/postgresql/dora-details-timeto-restore-service.json index f9e4cdabda0..be9063c40db 100644 --- a/grafana/dashboards/postgresql/dora-details-timeto-restore-service.json +++ b/grafana/dashboards/postgresql/dora-details-timeto-restore-service.json @@ -57,7 +57,7 @@ "content": "This dashboard shows the details about [Time to restore service\n](https://devlake.apache.org/docs/Metrics/MTTR) in DORA.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -113,10 +113,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -146,7 +146,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -291,10 +291,10 @@ } ] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -347,7 +347,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -388,10 +388,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "hide": false, @@ -435,7 +435,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/engineering-overview.json b/grafana/dashboards/postgresql/engineering-overview.json index 41581f05d6a..6d22a879f9c 100644 --- a/grafana/dashboards/postgresql/engineering-overview.json +++ b/grafana/dashboards/postgresql/engineering-overview.json @@ -43,7 +43,7 @@ "content": "- Use Cases: This dashboard is to overview the Git and project management metrics.\n- Data Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira)", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -58,7 +58,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -109,10 +109,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -164,7 +164,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -243,10 +243,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -298,7 +298,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -351,10 +351,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -405,7 +405,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -494,10 +494,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -530,7 +530,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -581,10 +581,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -636,7 +636,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -715,10 +715,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -770,7 +770,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -830,10 +830,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -885,7 +885,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -971,10 +971,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1026,7 +1026,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1080,10 +1080,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1135,7 +1135,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1221,10 +1221,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1276,7 +1276,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1334,10 +1334,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1389,7 +1389,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1473,10 +1473,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1528,7 +1528,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1575,10 +1575,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1630,7 +1630,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1707,10 +1707,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1762,7 +1762,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1818,10 +1818,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1873,7 +1873,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1959,10 +1959,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2014,7 +2014,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2068,7 +2068,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2120,7 +2120,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2201,7 +2201,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -2255,7 +2255,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2287,7 +2287,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -2308,7 +2308,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT (TO_CHAR(CAST(CAST(created_date AS DATE) + INTERVAL '1 DAY' * (-EXTRACT(DAY FROM CAST(created_date AS DATE)) + 1) AS TIMESTAMP), 'YYYY-MM') || ':' || TO_CHAR(CAST(CAST(created_date AS DATE) + INTERVAL '1 DAY' * (-EXTRACT(DAY FROM CAST(created_date AS DATE)) + 1) AS TIMESTAMP), 'YYYY-MM-DD')) AS month FROM issues AS i ORDER BY month DESC NULLS LAST", "hide": 0, "includeAll": false, @@ -2333,7 +2333,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT priority FROM issues", "description": "Customize what prioriti(es) are considered \"critical\"", "hide": 0, @@ -2355,7 +2355,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time-team-view.json b/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time-team-view.json index ed2cb78da9f..2e45236b144 100644 --- a/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time-team-view.json +++ b/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time-team-view.json @@ -43,7 +43,7 @@ "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 Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira) ([Scope Config](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) required to tell DevLake what the story_points field is)\n- You also need to do [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -84,7 +84,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -200,10 +200,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -255,7 +255,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -371,10 +371,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -408,7 +408,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -524,10 +524,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -561,7 +561,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -677,10 +677,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -740,7 +740,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -856,10 +856,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -911,7 +911,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1027,10 +1027,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1108,7 +1108,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1224,10 +1224,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1279,7 +1279,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1395,10 +1395,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1476,7 +1476,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1592,10 +1592,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1647,7 +1647,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1763,10 +1763,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1844,7 +1844,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1960,10 +1960,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2015,7 +2015,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2131,10 +2131,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2212,7 +2212,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2325,10 +2325,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2380,7 +2380,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2492,10 +2492,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2547,7 +2547,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2659,10 +2659,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2714,7 +2714,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2826,10 +2826,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2881,7 +2881,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2993,10 +2993,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3074,7 +3074,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3186,10 +3186,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3261,7 +3261,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3288,7 +3288,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -3311,7 +3311,7 @@ "text": "None", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM teams", "hide": 0, "includeAll": false, @@ -3334,7 +3334,7 @@ "text": "None", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM teams", "hide": 0, "includeAll": false, @@ -3360,7 +3360,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT priority FROM issues WHERE priority <> ''", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time.json b/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time.json index 6aa997c057b..174ad11e25e 100644 --- a/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time.json +++ b/grafana/dashboards/postgresql/engineering-throughput-and-cycle-time.json @@ -42,7 +42,7 @@ "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 Sources Required:\n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira) ([Scope Config](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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -83,7 +83,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -199,10 +199,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -236,7 +236,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -352,7 +352,7 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -388,7 +388,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -473,10 +473,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -528,7 +528,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -613,10 +613,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "hide": false, @@ -650,7 +650,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -736,10 +736,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -773,7 +773,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -858,10 +858,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -913,7 +913,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -995,10 +995,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1058,7 +1058,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1139,10 +1139,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1194,7 +1194,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1275,10 +1275,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1330,7 +1330,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1442,10 +1442,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1497,7 +1497,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1609,10 +1609,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1664,7 +1664,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1776,10 +1776,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1851,7 +1851,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1879,7 +1879,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, @@ -1905,7 +1905,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT priority FROM issues WHERE priority <> ''", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/git-hub.json b/grafana/dashboards/postgresql/git-hub.json index 27f929895b8..48567fd8daf 100644 --- a/grafana/dashboards/postgresql/git-hub.json +++ b/grafana/dashboards/postgresql/git-hub.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the basic Git and Code Review metrics from GitHub.\n- Data Source Required: GitHub", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -140,10 +140,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -195,7 +195,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -276,10 +276,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -357,7 +357,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -406,10 +406,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -443,7 +443,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -541,10 +541,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -596,7 +596,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -650,10 +650,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -687,7 +687,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -771,10 +771,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -826,7 +826,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -906,10 +906,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -961,7 +961,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1094,10 +1094,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1157,7 +1157,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1206,10 +1206,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1261,7 +1261,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1356,10 +1356,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1411,7 +1411,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1495,10 +1495,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1576,7 +1576,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1628,10 +1628,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1683,7 +1683,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1807,10 +1807,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1862,7 +1862,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1911,10 +1911,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1966,7 +1966,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2046,10 +2046,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -2101,7 +2101,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2155,10 +2155,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2192,7 +2192,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2275,10 +2275,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2330,7 +2330,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2382,10 +2382,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -2419,7 +2419,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2502,10 +2502,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2570,7 +2570,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of workflow runs executed in the selected time range", "fieldConfig": { "defaults": { @@ -2617,10 +2617,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2671,7 +2671,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -2724,10 +2724,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2778,7 +2778,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2891,10 +2891,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2946,7 +2946,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -3079,10 +3079,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3133,7 +3133,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Mean Workflow Runs success rate over time.\n2. The workflow runs being calculated are filtered by \"workflow runs starting time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -3236,10 +3236,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3290,7 +3290,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of successful workflow runs / Number of total workflow runs", "fieldConfig": { "defaults": { @@ -3337,10 +3337,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3391,7 +3391,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -3491,10 +3491,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -3566,7 +3566,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -3600,7 +3600,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos WHERE id::text LIKE 'github%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/github-copilot-adoption.json b/grafana/dashboards/postgresql/github-copilot-adoption.json index 978d263b859..7a4eee270a0 100644 --- a/grafana/dashboards/postgresql/github-copilot-adoption.json +++ b/grafana/dashboards/postgresql/github-copilot-adoption.json @@ -22,7 +22,7 @@ "liveNow": false, "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Latest daily active users count", "fieldConfig": { "defaults": { @@ -70,10 +70,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT daily_active_users AS \"Daily Active Users\" FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY day DESC NULLS LAST LIMIT 1", @@ -84,7 +84,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code acceptance rate across the selected time range", "fieldConfig": { "defaults": { @@ -134,10 +134,10 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -148,7 +148,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total lines of code added by Copilot in the selected time range", "fieldConfig": { "defaults": { @@ -188,10 +188,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(loc_added_sum) AS \"Lines Added\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -202,7 +202,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total pull requests created by Copilot in the selected time range", "fieldConfig": { "defaults": { @@ -242,10 +242,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(pr_total_created_by_copilot) AS \"PRs by Copilot\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -256,7 +256,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Latest weekly active users count", "fieldConfig": { "defaults": { @@ -296,10 +296,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_login) AS \"Weekly Active Users\" FROM _tool_copilot_user_daily_metrics WHERE day >= CURRENT_DATE - INTERVAL '7 DAY' AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -310,7 +310,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Latest monthly active users count", "fieldConfig": { "defaults": { @@ -350,10 +350,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_login) AS \"Monthly Active Users\" FROM _tool_copilot_user_daily_metrics WHERE day >= CURRENT_DATE - INTERVAL '28 DAY' AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -364,7 +364,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total pull requests reviewed by Copilot in the selected time range", "fieldConfig": { "defaults": { @@ -404,10 +404,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(pr_total_reviewed_by_copilot) AS \"PRs Reviewed by Copilot\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -418,7 +418,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total user-initiated interactions in the selected time range", "fieldConfig": { "defaults": { @@ -458,10 +458,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(user_initiated_interaction_count) AS \"User-Initiated Interactions\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -472,7 +472,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily and monthly active users over time", "fieldConfig": { "defaults": { @@ -543,10 +543,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, daily_active_users AS \"Daily Active\", monthly_active_users AS \"Monthly Active\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -557,7 +557,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code suggestions generated vs accepted over time", "fieldConfig": { "defaults": { @@ -628,10 +628,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, code_generation_activity_count AS \"Suggestions\", code_acceptance_activity_count AS \"Acceptances\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -642,7 +642,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Lines of code suggested to add versus lines added over time", "fieldConfig": { "defaults": { @@ -713,10 +713,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, loc_suggested_to_add_sum AS \"LOC Suggested\", loc_added_sum AS \"LOC Added\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -727,7 +727,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pull request activity over time", "fieldConfig": { "defaults": { @@ -798,10 +798,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, pr_total_created AS \"PRs Created\", pr_total_created_by_copilot AS \"PRs Created by Copilot\", pr_total_reviewed AS \"PRs Reviewed\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -812,7 +812,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly user-initiated interactions by top Copilot features", "fieldConfig": { "defaults": { @@ -887,10 +887,10 @@ "group": "A" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CAST(day - (EXTRACT(ISODOW FROM day) - 1) * INTERVAL '1 day' AS DATE) AS time, CASE WHEN feature IN (SELECT feature FROM (SELECT feature FROM _tool_copilot_metrics_by_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"feature\" HAVING SUM(user_initiated_interaction_count) > 0 ORDER BY SUM(user_initiated_interaction_count) DESC NULLS LAST LIMIT 4) AS top_features) THEN REPLACE(REPLACE(feature, 'chat_panel_', ''), '_mode', '') ELSE 'Other' END AS metric, SUM(user_initiated_interaction_count) AS value FROM _tool_copilot_metrics_by_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"time\", \"metric\" ORDER BY time NULLS FIRST", @@ -916,7 +916,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly user-initiated interactions by top IDEs (Top 5 + Other)", "fieldConfig": { "defaults": { @@ -991,10 +991,10 @@ "group": "A" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CAST(day - (EXTRACT(ISODOW FROM day) - 1) * INTERVAL '1 day' AS DATE) AS time, CASE WHEN ide IN (SELECT ide FROM (SELECT ide FROM _tool_copilot_metrics_by_ide WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"ide\" HAVING SUM(user_initiated_interaction_count) > 0 ORDER BY SUM(user_initiated_interaction_count) DESC NULLS LAST LIMIT 4) AS top_ides) THEN ide ELSE 'Other' END AS metric, SUM(user_initiated_interaction_count) AS value FROM _tool_copilot_metrics_by_ide WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"time\", \"metric\" ORDER BY time NULLS FIRST", @@ -1020,7 +1020,7 @@ ] }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Top languages ranked by code acceptance rate", "fieldConfig": { "defaults": { @@ -1056,10 +1056,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT language AS \"Language\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_metrics_by_language_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"language\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) DESC NULLS LAST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 15", @@ -1070,7 +1070,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Top models ranked by code acceptance rate", "fieldConfig": { "defaults": { @@ -1106,10 +1106,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT model AS \"Model\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_metrics_by_model_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"model\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) DESC NULLS LAST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 10", @@ -1120,7 +1120,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Matrix-style breakdown of suggestions and acceptances by language and feature", "fieldConfig": { "defaults": { @@ -1156,10 +1156,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT language AS \"Language\", feature AS \"Feature\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\" FROM _tool_copilot_metrics_by_language_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"language\", \"feature\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY language NULLS FIRST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 100", @@ -1170,7 +1170,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Count of distinct users active in the selected time range", "fieldConfig": { "defaults": { @@ -1210,10 +1210,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_login) AS \"Unique Users\" FROM _tool_copilot_user_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -1224,7 +1224,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Users who have used Copilot agent mode", "fieldConfig": { "defaults": { @@ -1264,10 +1264,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_login) AS \"Agent Users\" FROM _tool_copilot_user_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND used_agent = 1", @@ -1278,7 +1278,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Users who have used Copilot chat", "fieldConfig": { "defaults": { @@ -1318,10 +1318,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(DISTINCT user_login) AS \"Chat Users\" FROM _tool_copilot_user_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND used_chat = 1", @@ -1332,7 +1332,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage of seats with recorded activity", "fieldConfig": { "defaults": { @@ -1382,10 +1382,10 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CAST(COUNT(CASE WHEN NOT last_activity_at IS NULL THEN 1 END) * 100.0 AS NUMERIC) / NULLIF(NULLIF(COUNT(*), 0), 0) AS \"Utilization %\" FROM _tool_copilot_seats WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}')", @@ -1409,7 +1409,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily acceptance rate trend computed as acceptances divided by suggestions", "fieldConfig": { "defaults": { @@ -1451,10 +1451,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, CAST(code_acceptance_activity_count AS NUMERIC) / NULLIF(NULLIF(code_generation_activity_count, 0), 0) AS \"Acceptance Rate\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -1465,7 +1465,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily LOC yield trend computed as added LOC divided by suggested LOC", "fieldConfig": { "defaults": { @@ -1505,10 +1505,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, ROUND(CAST(loc_added_sum AS NUMERIC) / NULLIF(NULLIF(loc_suggested_to_add_sum, 0), 0), 2) AS \"LOC Yield\" FROM _tool_copilot_enterprise_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY 1 NULLS FIRST", @@ -1519,7 +1519,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Acceptance ratio by Copilot feature", "fieldConfig": { "defaults": { @@ -1555,10 +1555,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT feature AS \"Feature\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_metrics_by_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"feature\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) DESC NULLS LAST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 20", @@ -1569,7 +1569,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Acceptance ratio by programming language", "fieldConfig": { "defaults": { @@ -1605,10 +1605,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT language AS \"Language\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_metrics_by_language_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"language\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) DESC NULLS LAST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 20", @@ -1619,7 +1619,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Acceptance ratio by model", "fieldConfig": { "defaults": { @@ -1655,10 +1655,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT model AS \"Model\", SUM(code_generation_activity_count) AS \"Suggestions\", SUM(code_acceptance_activity_count) AS \"Acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"Acceptance Rate %\" FROM _tool_copilot_metrics_by_model_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"model\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) DESC NULLS LAST, SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 20", @@ -1682,7 +1682,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Top users ranked by code generation activity in the selected time range", "fieldConfig": { "defaults": { @@ -1718,10 +1718,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT user_login AS \"user_login\", SUM(code_generation_activity_count) AS \"suggestions\", SUM(code_acceptance_activity_count) AS \"acceptances\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) AS \"acceptance %\" FROM _tool_copilot_user_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"user_login\" HAVING SUM(code_generation_activity_count) > 0 ORDER BY SUM(code_generation_activity_count) DESC NULLS LAST LIMIT 25", @@ -1732,7 +1732,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily trend of distinct users engaging with agent mode versus chat", "fieldConfig": { "defaults": { @@ -1803,10 +1803,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT day AS time, COUNT(DISTINCT CASE WHEN used_agent = 1 THEN user_login END) AS \"Agent Users\", COUNT(DISTINCT CASE WHEN used_chat = 1 THEN user_login END) AS \"Chat Users\" FROM _tool_copilot_user_daily_metrics WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY \"day\" ORDER BY 1 NULLS FIRST", @@ -1817,7 +1817,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "First-seen daily trend of users becoming active for the first time", "fieldConfig": { "defaults": { @@ -1888,10 +1888,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT first_day AS time, COUNT(*) AS \"New Active Users\" FROM (SELECT user_login, MIN(day) AS first_day FROM _tool_copilot_user_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY user_login) AS first_seen WHERE $__timeFilter(first_day) GROUP BY first_day ORDER BY 1 NULLS FIRST", @@ -1915,7 +1915,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of seat activity by last recorded editor", "fieldConfig": { "defaults": { @@ -1962,10 +1962,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(NULLIF(last_activity_editor, ''), 'unknown') AS \"Editor\", COUNT(*) AS \"Seats\" FROM _tool_copilot_seats WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND ('${scope_id}' = '' OR organization = '${scope_id}' OR organization = '') GROUP BY COALESCE(NULLIF(last_activity_editor, ''), 'unknown') ORDER BY COUNT(*) DESC NULLS LAST", @@ -1976,7 +1976,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total, active (last 30 days), and inactive seats for the selected scope", "fieldConfig": { "defaults": { @@ -2012,10 +2012,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COUNT(*) AS \"total_seats\", SUM(CASE WHEN NOT last_activity_at IS NULL AND last_activity_at >= CURRENT_TIMESTAMP - INTERVAL '30 DAY' THEN 1 ELSE 0 END) AS \"active_seats\", SUM(CASE WHEN last_activity_at IS NULL OR last_activity_at < CURRENT_TIMESTAMP - INTERVAL '30 DAY' THEN 1 ELSE 0 END) AS \"inactive_seats\" FROM _tool_copilot_seats WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND ('${scope_id}' = '' OR organization = '${scope_id}' OR organization = '')", @@ -2026,7 +2026,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Seats with no activity or activity older than 30 days", "fieldConfig": { "defaults": { @@ -2062,10 +2062,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT user_login AS \"user_login\", last_activity_at AS \"last_activity_at\", plan_type AS \"plan_type\" FROM _tool_copilot_seats WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND ('${scope_id}' = '' OR organization = '${scope_id}' OR organization = '') AND (last_activity_at IS NULL OR last_activity_at < CURRENT_TIMESTAMP - INTERVAL '30 DAY') ORDER BY last_activity_at IS NULL DESC NULLS LAST, last_activity_at ASC NULLS FIRST LIMIT 100", @@ -2089,7 +2089,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Latest available day in enterprise-level Copilot metrics", "fieldConfig": { "defaults": { @@ -2129,10 +2129,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE((EXTRACT(EPOCH FROM (CURRENT_DATE AT TIME ZONE 'UTC' - MAX(day)))/86400), 9999) AS \"Days Since Latest Data\" FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -2143,7 +2143,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Share of generated suggestions tied to unknown model/feature taxonomy", "fieldConfig": { "defaults": { @@ -2193,10 +2193,10 @@ "showThresholdMarkers": true, "sizing": "auto" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(SUM(CASE WHEN LOWER(COALESCE(model, '')) = 'unknown' OR LOWER(COALESCE(feature, '')) LIKE '%unknown%' THEN code_generation_activity_count ELSE 0 END) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 2) AS \"Unknown Taxonomy %\" FROM _tool_copilot_metrics_by_model_feature WHERE $__timeFilter(day) AND ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}'", @@ -2207,7 +2207,7 @@ "type": "gauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Row counts for core Copilot metrics tables", "fieldConfig": { "defaults": { @@ -2243,10 +2243,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT * FROM (SELECT '_tool_copilot_enterprise_daily_metrics' AS table_name, COUNT(*) AS row_count FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' UNION ALL SELECT '_tool_copilot_user_daily_metrics' AS table_name, COUNT(*) AS row_count FROM _tool_copilot_user_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' UNION ALL SELECT '_tool_copilot_metrics_by_feature' AS table_name, COUNT(*) AS row_count FROM _tool_copilot_metrics_by_feature WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' UNION ALL SELECT '_tool_copilot_metrics_by_model_feature' AS table_name, COUNT(*) AS row_count FROM _tool_copilot_metrics_by_model_feature WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' UNION ALL SELECT '_tool_copilot_seats' AS table_name, COUNT(*) AS row_count FROM _tool_copilot_seats WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND ('${scope_id}' = '' OR organization = '${scope_id}' OR organization = '')) AS data_volume ORDER BY row_count DESC NULLS LAST", @@ -2271,7 +2271,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_copilot_enterprise_daily_metrics ORDER BY 1 NULLS FIRST", "hide": 0, "includeAll": false, @@ -2292,7 +2292,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT id AS scope_id FROM _tool_copilot_scopes WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') ORDER BY 1 NULLS FIRST", "hide": 0, "includeAll": false, diff --git a/grafana/dashboards/postgresql/github-copilot-dora-correlation.json b/grafana/dashboards/postgresql/github-copilot-dora-correlation.json index 68b5240dc57..847f4ec7ead 100644 --- a/grafana/dashboards/postgresql/github-copilot-dora-correlation.json +++ b/grafana/dashboards/postgresql/github-copilot-dora-correlation.json @@ -14,7 +14,7 @@ "type": "dashboard" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "enable": true, "hide": false, "iconColor": "purple", @@ -51,7 +51,7 @@ "content": "## GitHub Copilot + DORA Correlation Dashboard\n\n**Purpose**: Analyze the **correlation** between GitHub Copilot adoption levels and engineering productivity metrics.\n\n**How it works**:\n- \ud83d\udcc8 **Primary Analysis**: Continuous correlation showing how DORA metrics trend alongside GitHub Copilot adoption intensity\n- \ud83d\udcca **Adoption Tiers**: Metrics grouped by adoption level (<25%, 25-50%, 50-75%, >75% of seats active)\n- \ud83d\udccd **Optional Milestone**: Configure a rollout date to add annotation markers on charts\n\n**Prerequisites**:\n- Ensure **GitHub Copilot metrics** are being collected via the GitHub Copilot plugin\n- Ensure **PR data** exists in DevLake from GitHub/GitLab plugins\n- For DORA metrics (CFR, MTTR): Configure deployments and incidents\n- For Code Quality: Configure SonarQube integration (optional)\n\n**\u26a0\ufe0f Disclaimer**: Correlation does not imply causation. Other factors may influence the metrics shown.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -66,7 +66,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly GitHub Copilot adoption percentage (active users / total seats) over time. Higher adoption correlates with expected productivity improvements.", "fieldConfig": { "defaults": { @@ -147,10 +147,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, active_users, total_seats, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, ROUND(CAST(AVG(adoption_pct) AS DECIMAL), 1) AS adoption_pct, ROUND(CAST(AVG(active_users) AS DECIMAL), 0) AS avg_active_users, ROUND(CAST(AVG(total_seats) AS DECIMAL), 0) AS avg_total_seats FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day') SELECT week_start AS time, adoption_pct AS \"Adoption %\" FROM _adoption_weekly ORDER BY week_start NULLS FIRST", @@ -161,7 +161,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient (r) between GitHub Copilot adoption % and PR cycle time. Negative values indicate inverse correlation (higher adoption \u2192 faster PRs). |r| > 0.7 = strong, 0.3-0.7 = moderate, < 0.3 = weak.", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "textMode": "value_and_name", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_metrics_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_cycle_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _correlation_data AS (SELECT aw.week_start, aw.adoption_pct, pm.avg_cycle_time_hours FROM _adoption_weekly AS aw INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start WHERE NOT aw.adoption_pct IS NULL AND NOT pm.avg_cycle_time_hours IS NULL), _stats AS (SELECT COUNT(*) AS n, AVG(adoption_pct) AS mean_x, AVG(avg_cycle_time_hours) AS mean_y, STDDEV_POP(adoption_pct) AS stddev_x, STDDEV_POP(avg_cycle_time_hours) AS stddev_y FROM _correlation_data), _pearson AS (SELECT CASE WHEN s.n < 4 THEN NULL WHEN s.stddev_x = '0' OR s.stddev_y = '0' THEN 0 ELSE (SELECT CAST(SUM((cd.adoption_pct - s.mean_x) * (cd.avg_cycle_time_hours - s.mean_y)) AS NUMERIC) / NULLIF((s.n * s.stddev_x * s.stddev_y), 0) FROM _correlation_data AS cd) END AS r FROM _stats AS s) SELECT ROUND(r, 2) AS value FROM _pearson", @@ -282,7 +282,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Current week's GitHub Copilot adoption percentage (active users / total seats)", "fieldConfig": { "defaults": { @@ -339,10 +339,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS value FROM (SELECT daily_active_users AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY day DESC NULLS LAST LIMIT 1) AS _ent UNION ALL SELECT ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS value FROM (SELECT total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' ORDER BY date DESC NULLS LAST LIMIT 1) AS _org LIMIT 1", @@ -373,7 +373,7 @@ "content": "### Interpreting Correlation (r)\n\n| Value | Meaning |\n|-------|--------|\n| **-1 to -0.7** | \ud83d\udfe2 Strong inverse (higher adoption \u2192 faster PRs) |\n| **-0.7 to -0.3** | \ud83d\udfe1 Moderate inverse |\n| **-0.3 to 0.3** | \u26aa Weak/No correlation |\n| **0.3 to 0.7** | \ud83d\udfe0 Moderate positive |\n| **0.7 to 1** | \ud83d\udd34 Strong positive (unexpected) |\n\n*Note: r < 0 is expected (adoption \u2191 = cycle time \u2193)*", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -401,7 +401,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage difference in PR cycle time between high adoption weeks (>50%) and low adoption weeks (<50%). Negative values indicate improvement (faster PRs during high adoption).", "fieldConfig": { "defaults": { @@ -454,10 +454,10 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_metrics_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_cycle_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_pr_joined AS (SELECT aw.week_start, aw.adoption_pct, pm.avg_cycle_time_hours, CASE WHEN aw.adoption_pct >= 50 THEN 'high' ELSE 'low' END AS adoption_tier FROM _adoption_weekly AS aw INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start), _tier_averages AS (SELECT adoption_tier, AVG(avg_cycle_time_hours) AS avg_cycle_time FROM _adoption_pr_joined GROUP BY adoption_tier) SELECT ROUND(CAST(((SELECT avg_cycle_time FROM _tier_averages WHERE adoption_tier = 'high') - (SELECT avg_cycle_time FROM _tier_averages WHERE adoption_tier = 'low')) AS NUMERIC) / NULLIF(NULLIF((SELECT avg_cycle_time FROM _tier_averages WHERE adoption_tier = 'low'), 0), 0) * 100, 1) AS value", @@ -468,7 +468,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Dual-axis chart showing weekly GitHub Copilot adoption % (left axis) and PR cycle time in hours (right axis). Look for inverse correlation - adoption up, cycle time down.", "fieldConfig": { "defaults": { @@ -596,17 +596,17 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day') SELECT week_start AS time, ROUND(adoption_pct, 1) AS \"Adoption %\" FROM _adoption_weekly ORDER BY week_start NULLS FIRST", "refId": "Adoption" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _pr_metrics_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_cycle_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day') SELECT week_start AS time, ROUND(avg_cycle_time_hours, 1) AS \"PR Cycle Time (hrs)\" FROM _pr_metrics_weekly ORDER BY week_start NULLS FIRST", @@ -617,7 +617,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average PR cycle time by adoption tier. Lower times in higher adoption tiers suggest positive Copilot impact.", "fieldConfig": { "defaults": { @@ -680,10 +680,10 @@ } } ], - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_metrics_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_cycle_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_pr_joined AS (SELECT aw.adoption_pct, pm.avg_cycle_time_hours, CASE WHEN aw.adoption_pct < 25 THEN '1. <25%' WHEN aw.adoption_pct < 50 THEN '2. 25-50%' WHEN aw.adoption_pct < 75 THEN '3. 50-75%' ELSE '4. >75%' END AS adoption_tier FROM _adoption_weekly AS aw INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start) SELECT adoption_tier AS metric, ROUND(CAST(AVG(avg_cycle_time_hours) AS DECIMAL), 1) AS value FROM _adoption_pr_joined GROUP BY adoption_tier ORDER BY adoption_tier NULLS FIRST", @@ -714,7 +714,7 @@ "content": "**Cycle Time Components** break down PR lifecycle into three phases:\n\n- **Coding Time**: PR creation \u2192 first commit (development speed)\n- **Pickup Time**: PR creation \u2192 first review (reviewer responsiveness)\n- **Review Time**: First review \u2192 merge (actual review duration)\n\nComparing <50% vs \u226550% adoption periods shows which phase improved most with Copilot. For example, if Coding Time shrinks significantly, Copilot accelerates development.", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -729,7 +729,7 @@ "type": "text" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Scatter plot showing weekly data points. Each point = one week. X-axis = adoption %, Y-axis = PR cycle time. Downward trend line indicates positive Copilot impact.", "fieldConfig": { "defaults": { @@ -792,10 +792,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_metrics_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_cycle_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day') SELECT ROUND(aw.adoption_pct, 1) AS adoption_pct, ROUND(pm.avg_cycle_time_hours, 1) AS cycle_time_hours FROM _adoption_weekly AS aw INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start ORDER BY aw.adoption_pct NULLS FIRST", @@ -806,7 +806,7 @@ "type": "xychart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "PR cycle time breakdown during low adoption periods (<50%). Compare with high adoption to see which components improved.", "fieldConfig": { "defaults": { @@ -851,10 +851,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _low_adoption_weeks AS (SELECT week_start FROM _adoption_weekly WHERE adoption_pct < 50) SELECT 'Coding Time' AS component, ROUND(CAST(CAST(AVG(pr_coding_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _low_adoption_weeks) UNION ALL SELECT 'Pickup Time' AS component, ROUND(CAST(CAST(AVG(pr_pickup_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _low_adoption_weeks) UNION ALL SELECT 'Review Time' AS component, ROUND(CAST(CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _low_adoption_weeks)", @@ -865,7 +865,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "PR cycle time breakdown during high adoption periods (>=50%). Compare with low adoption to see which components improved.", "fieldConfig": { "defaults": { @@ -910,10 +910,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _high_adoption_weeks AS (SELECT week_start FROM _adoption_weekly WHERE adoption_pct >= 50) SELECT 'Coding Time' AS component, ROUND(CAST(CAST(AVG(pr_coding_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _high_adoption_weeks) UNION ALL SELECT 'Pickup Time' AS component, ROUND(CAST(CAST(AVG(pr_pickup_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _high_adoption_weeks) UNION ALL SELECT 'Review Time' AS component, ROUND(CAST(CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS value FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' IN (SELECT week_start FROM _high_adoption_weeks)", @@ -937,7 +937,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Dual-axis chart showing GitHub Copilot adoption percentage and deployment frequency over time. Look for correlation patterns - does higher adoption correlate with more frequent deployments?", "fieldConfig": { "defaults": { @@ -1065,10 +1065,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS deploy_count FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day') SELECT EXTRACT(EPOCH FROM aw.week_start) AS time_sec, aw.adoption_pct AS \"Adoption %\", COALESCE(dw.deploy_count, 0) AS \"Deployments\" FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start ORDER BY aw.week_start NULLS FIRST", @@ -1079,7 +1079,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Deployment frequency grouped by GitHub Copilot adoption tier. Higher adoption should correlate with more frequent deployments if Copilot accelerates development velocity.", "fieldConfig": { "defaults": { @@ -1138,10 +1138,10 @@ } } ], - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct, CASE WHEN AVG(adoption_pct) < 25 THEN '1: <25%' WHEN AVG(adoption_pct) < 50 THEN '2: 25-50%' WHEN AVG(adoption_pct) < 75 THEN '3: 50-75%' ELSE '4: >75%' END AS adoption_tier FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS deploy_count FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day') SELECT aw.adoption_tier AS \"Adoption Tier\", ROUND(CAST(AVG(COALESCE(dw.deploy_count, 0)) AS DECIMAL), 1) AS \"Deploys/Week\" FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start GROUP BY aw.adoption_tier ORDER BY aw.adoption_tier NULLS FIRST", @@ -1152,7 +1152,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient (r) between GitHub Copilot adoption % and weekly deployment count. Positive values indicate higher adoption correlates with more deployments.", "fieldConfig": { "defaults": { @@ -1214,10 +1214,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS deploy_count FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT aw.adoption_pct, COALESCE(dw.deploy_count, 0) AS deploy_count FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start) SELECT ROUND(CAST(CAST((COUNT(*) * SUM(adoption_pct * deploy_count) - SUM(adoption_pct) * SUM(deploy_count)) AS NUMERIC) / NULLIF(NULLIF(SQRT((COUNT(*) * SUM(adoption_pct * adoption_pct) - POWER(SUM(adoption_pct), 2)) * (COUNT(*) * SUM(deploy_count * deploy_count) - POWER(SUM(deploy_count), 2))), 0), 0) AS DECIMAL), 2) AS correlation_r FROM _joined WHERE NOT adoption_pct IS NULL", @@ -1228,7 +1228,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage change in deployment frequency between low adoption (<50%) and high adoption (\u226550%) periods.", "fieldConfig": { "defaults": { @@ -1290,10 +1290,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS deploy_count FROM cicd_deployment_commits WHERE result = 'SUCCESS' AND $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_deploy AS (SELECT CASE WHEN aw.adoption_pct < 50 THEN 'low' ELSE 'high' END AS tier, COALESCE(dw.deploy_count, 0) AS deploy_count FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start), _tier_avg AS (SELECT tier, AVG(deploy_count) AS avg_deploys FROM _adoption_deploy GROUP BY tier) SELECT ROUND(CAST(((SELECT avg_deploys FROM _tier_avg WHERE tier = 'high') - (SELECT avg_deploys FROM _tier_avg WHERE tier = 'low')) AS NUMERIC) / NULLIF(NULLIF((SELECT avg_deploys FROM _tier_avg WHERE tier = 'low'), 0), 0) * 100, 1) AS change_pct", @@ -1317,7 +1317,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Comprehensive comparison of all DORA metrics across GitHub Copilot adoption tiers. Lower values (green) are better for cycle time, CFR, and MTTR. Higher values (green) are better for deployment frequency.", "fieldConfig": { "defaults": { @@ -1363,10 +1363,10 @@ }, "showHeader": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _adoption_tiers AS (SELECT week_start, \"adoption_pct\", CASE WHEN adoption_pct < 25 THEN '<25%' WHEN adoption_pct < 50 THEN '25-50%' WHEN adoption_pct < 75 THEN '50-75%' ELSE '>75%' END AS tier FROM _adoption_weekly), _pr_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG(CAST(pr_cycle_time AS NUMERIC) / NULLIF(60, 0)) AS cycle_time_hrs FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND NOT pr_merged_date IS NULL AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _deploy_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS deploy_count, SUM(CASE WHEN result = 'FAILURE' THEN 1 ELSE 0 END) AS failed_deploys FROM cicd_deployment_commits WHERE $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day'), _cfr_weekly AS (SELECT week_start, ROUND(CAST(failed_deploys * 100.0 AS NUMERIC) / NULLIF(NULLIF(deploy_count, 0), 0), 1) AS cfr_pct FROM _deploy_weekly), _mttr_weekly AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG((EXTRACT(EPOCH FROM (resolution_date - created_date))/3600)) AS mttr_hours FROM issues WHERE type = 'INCIDENT' AND NOT resolution_date IS NULL AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day'), _tier_metrics AS (SELECT at.tier, ROUND(CAST(AVG(pw.cycle_time_hrs) AS DECIMAL), 1) AS pr_cycle_time, ROUND(CAST(AVG(dw.deploy_count) AS DECIMAL), 1) AS deploy_freq, ROUND(CAST(AVG(cfr.cfr_pct) AS DECIMAL), 1) AS cfr_pct, ROUND(CAST(AVG(mttr.mttr_hours) AS DECIMAL), 1) AS mttr_hours FROM _adoption_tiers AS at LEFT JOIN _pr_weekly AS pw ON at.week_start = pw.week_start LEFT JOIN _deploy_weekly AS dw ON at.week_start = dw.week_start LEFT JOIN _cfr_weekly AS cfr ON at.week_start = cfr.week_start LEFT JOIN _mttr_weekly AS mttr ON at.week_start = mttr.week_start GROUP BY at.tier) SELECT tier AS \"Adoption Tier\", COALESCE(pr_cycle_time, 0) AS \"PR Cycle Time (hrs)\", COALESCE(deploy_freq, 0) AS \"Deploys/Week\", COALESCE(cfr_pct, 0) AS \"CFR %\", COALESCE(mttr_hours, 0) AS \"MTTR (hours)\" FROM _tier_metrics ORDER BY CASE tier WHEN '<25%' THEN 1 WHEN '25-50%' THEN 2 WHEN '50-75%' THEN 3 WHEN '>75%' THEN 4 END NULLS FIRST", @@ -1390,7 +1390,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Dual-axis chart showing GitHub Copilot adoption percentage and Change Failure Rate over time. CFR should decrease (improve) as adoption increases if Copilot improves code quality.", "fieldConfig": { "defaults": { @@ -1518,10 +1518,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS total_deploys, SUM(CASE WHEN result = 'FAILURE' THEN 1 ELSE 0 END) AS failed_deploys FROM cicd_deployment_commits WHERE $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day') SELECT EXTRACT(EPOCH FROM aw.week_start) AS time_sec, aw.adoption_pct AS \"Adoption %\", ROUND(CAST(dw.failed_deploys * 100.0 AS NUMERIC) / NULLIF(NULLIF(dw.total_deploys, 0), 0), 1) AS \"CFR %\" FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start ORDER BY aw.week_start NULLS FIRST", @@ -1532,7 +1532,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Change Failure Rate grouped by GitHub Copilot adoption tier. Lower CFR at higher adoption indicates Copilot improves code quality and reduces failures.", "fieldConfig": { "defaults": { @@ -1595,10 +1595,10 @@ } } ], - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct, CASE WHEN AVG(adoption_pct) < 25 THEN '1: <25%' WHEN AVG(adoption_pct) < 50 THEN '2: 25-50%' WHEN AVG(adoption_pct) < 75 THEN '3: 50-75%' ELSE '4: >75%' END AS adoption_tier FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS total_deploys, SUM(CASE WHEN result = 'FAILURE' THEN 1 ELSE 0 END) AS failed_deploys FROM cicd_deployment_commits WHERE $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day') SELECT aw.adoption_tier AS \"Adoption Tier\", ROUND(CAST(AVG(CAST(dw.failed_deploys * 100.0 AS NUMERIC) / NULLIF(NULLIF(dw.total_deploys, 0), 0)) AS DECIMAL), 1) AS \"CFR %\" FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start GROUP BY aw.adoption_tier ORDER BY aw.adoption_tier NULLS FIRST", @@ -1609,7 +1609,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient (r) between GitHub Copilot adoption % and Change Failure Rate. NEGATIVE values are good - they indicate higher adoption correlates with lower failure rates.", "fieldConfig": { "defaults": { @@ -1671,10 +1671,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS total_deploys, SUM(CASE WHEN result = 'FAILURE' THEN 1 ELSE 0 END) AS failed_deploys FROM cicd_deployment_commits WHERE $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT aw.adoption_pct, (CAST(dw.failed_deploys * 100.0 AS NUMERIC) / NULLIF(NULLIF(dw.total_deploys, 0), 0)) AS cfr_pct FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start WHERE dw.total_deploys > 0) SELECT ROUND(CAST(CAST((COUNT(*) * SUM(adoption_pct * cfr_pct) - SUM(adoption_pct) * SUM(cfr_pct)) AS NUMERIC) / NULLIF(NULLIF(SQRT((COUNT(*) * SUM(adoption_pct * adoption_pct) - POWER(SUM(adoption_pct), 2)) * (COUNT(*) * SUM(cfr_pct * cfr_pct) - POWER(SUM(cfr_pct), 2))), 0), 0) AS DECIMAL), 2) AS correlation_r FROM _joined", @@ -1685,7 +1685,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage change in Change Failure Rate between low adoption (<50%) and high adoption (\u226550%) periods. Negative values indicate improvement.", "fieldConfig": { "defaults": { @@ -1747,10 +1747,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _deployments_weekly AS (SELECT CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(*) AS total_deploys, SUM(CASE WHEN result = 'FAILURE' THEN 1 ELSE 0 END) AS failed_deploys FROM cicd_deployment_commits WHERE $__timeFilter(finished_date) GROUP BY CAST(finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(finished_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_cfr AS (SELECT CASE WHEN aw.adoption_pct < 50 THEN 'low' ELSE 'high' END AS tier, (CAST(dw.failed_deploys * 100.0 AS NUMERIC) / NULLIF(NULLIF(dw.total_deploys, 0), 0)) AS cfr_pct FROM _adoption_weekly AS aw LEFT JOIN _deployments_weekly AS dw ON aw.week_start = dw.week_start WHERE dw.total_deploys > 0), _tier_avg AS (SELECT tier, AVG(cfr_pct) AS avg_cfr FROM _adoption_cfr GROUP BY tier) SELECT ROUND(CAST(((SELECT avg_cfr FROM _tier_avg WHERE tier = 'high') - (SELECT avg_cfr FROM _tier_avg WHERE tier = 'low')) AS NUMERIC) / NULLIF(NULLIF((SELECT avg_cfr FROM _tier_avg WHERE tier = 'low'), 0), 0) * 100, 1) AS change_pct", @@ -1774,7 +1774,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Dual-axis chart showing GitHub Copilot adoption percentage and Mean Time to Recovery (MTTR) over time. MTTR should decrease (improve) as adoption increases if Copilot helps faster incident resolution.", "fieldConfig": { "defaults": { @@ -1902,17 +1902,17 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day') SELECT week_start AS time, ROUND(adoption_pct, 1) AS \"Adoption %\" FROM _adoption_weekly ORDER BY week_start NULLS FIRST", "refId": "Adoption" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _incidents_weekly AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG((EXTRACT(EPOCH FROM (resolution_date - created_date))/3600)) AS mttr_hours FROM issues WHERE type = 'INCIDENT' AND NOT resolution_date IS NULL AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day') SELECT week_start AS time, ROUND(mttr_hours, 1) AS \"MTTR (hours)\" FROM _incidents_weekly ORDER BY week_start NULLS FIRST", @@ -1923,7 +1923,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Mean Time to Recovery grouped by GitHub Copilot adoption tier. Lower MTTR at higher adoption indicates Copilot helps faster incident resolution.", "fieldConfig": { "defaults": { @@ -1986,10 +1986,10 @@ } } ], - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct, CASE WHEN AVG(adoption_pct) < 25 THEN '1: <25%' WHEN AVG(adoption_pct) < 50 THEN '2: 25-50%' WHEN AVG(adoption_pct) < 75 THEN '3: 50-75%' ELSE '4: >75%' END AS adoption_tier FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _incidents_weekly AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG((EXTRACT(EPOCH FROM (resolution_date - created_date))/3600)) AS mttr_hours FROM issues WHERE type = 'INCIDENT' AND NOT resolution_date IS NULL AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day') SELECT aw.adoption_tier AS \"Adoption Tier\", ROUND(CAST(AVG(iw.mttr_hours) AS DECIMAL), 1) AS \"MTTR (hours)\" FROM _adoption_weekly AS aw LEFT JOIN _incidents_weekly AS iw ON aw.week_start = iw.week_start WHERE NOT iw.mttr_hours IS NULL GROUP BY aw.adoption_tier ORDER BY aw.adoption_tier NULLS FIRST", @@ -2000,7 +2000,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient (r) between GitHub Copilot adoption % and MTTR. NEGATIVE values are good - they indicate higher adoption correlates with faster recovery.", "fieldConfig": { "defaults": { @@ -2062,10 +2062,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _incidents_weekly AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG((EXTRACT(EPOCH FROM (resolution_date - created_date))/3600)) AS mttr_hours FROM issues WHERE type = 'INCIDENT' AND NOT resolution_date IS NULL AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT aw.adoption_pct, iw.mttr_hours FROM _adoption_weekly AS aw INNER JOIN _incidents_weekly AS iw ON aw.week_start = iw.week_start) SELECT ROUND(CAST(CAST((COUNT(*) * SUM(adoption_pct * mttr_hours) - SUM(adoption_pct) * SUM(mttr_hours)) AS NUMERIC) / NULLIF(NULLIF(SQRT((COUNT(*) * SUM(adoption_pct * adoption_pct) - POWER(SUM(adoption_pct), 2)) * (COUNT(*) * SUM(mttr_hours * mttr_hours) - POWER(SUM(mttr_hours), 2))), 0), 0) AS DECIMAL), 2) AS correlation_r FROM _joined", @@ -2076,7 +2076,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage change in MTTR between low adoption (<50%) and high adoption (\u226550%) periods. Negative values indicate faster recovery.", "fieldConfig": { "defaults": { @@ -2138,10 +2138,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _incidents_weekly AS (SELECT CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, AVG((EXTRACT(EPOCH FROM (resolution_date - created_date))/3600)) AS mttr_hours FROM issues WHERE type = 'INCIDENT' AND NOT resolution_date IS NULL AND $__timeFilter(resolution_date) GROUP BY CAST(resolution_date AS DATE) - (EXTRACT(ISODOW FROM CAST(resolution_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_mttr AS (SELECT CASE WHEN aw.adoption_pct < 50 THEN 'low' ELSE 'high' END AS tier, iw.mttr_hours FROM _adoption_weekly AS aw INNER JOIN _incidents_weekly AS iw ON aw.week_start = iw.week_start), _tier_avg AS (SELECT tier, AVG(mttr_hours) AS avg_mttr FROM _adoption_mttr GROUP BY tier) SELECT ROUND(CAST(((SELECT avg_mttr FROM _tier_avg WHERE tier = 'high') - (SELECT avg_mttr FROM _tier_avg WHERE tier = 'low')) AS NUMERIC) / NULLIF(NULLIF((SELECT avg_mttr FROM _tier_avg WHERE tier = 'low'), 0), 0) * 100, 1) AS change_pct", @@ -2165,7 +2165,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code review time (time from first review request to merge) grouped by GitHub Copilot adoption tier. Shorter review times at higher adoption may indicate Copilot-assisted code is easier to review.", "fieldConfig": { "defaults": { @@ -2228,10 +2228,10 @@ } } ], - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct, CASE WHEN AVG(adoption_pct) < 25 THEN '1: <25%' WHEN AVG(adoption_pct) < 50 THEN '2: 25-50%' WHEN AVG(adoption_pct) < 75 THEN '3: 50-75%' ELSE '4: >75%' END AS adoption_tier FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_review_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_review_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) AND pr_review_time > 0 GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day') SELECT aw.adoption_tier AS \"Adoption Tier\", ROUND(CAST(AVG(prw.avg_review_time_hours) AS DECIMAL), 1) AS \"Review Time (hours)\" FROM _adoption_weekly AS aw LEFT JOIN _pr_review_weekly AS prw ON aw.week_start = prw.week_start WHERE NOT prw.avg_review_time_hours IS NULL GROUP BY aw.adoption_tier ORDER BY aw.adoption_tier NULLS FIRST", @@ -2242,7 +2242,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Dual-axis chart showing GitHub Copilot adoption % and average code review time over time. Look for patterns indicating whether Copilot-assisted PRs get reviewed faster.", "fieldConfig": { "defaults": { @@ -2370,10 +2370,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_review_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_review_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) AND pr_review_time > 0 GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day') SELECT EXTRACT(EPOCH FROM aw.week_start) AS time_sec, aw.adoption_pct AS \"Adoption %\", ROUND(prw.avg_review_time_hours, 1) AS \"Review Time (h)\" FROM _adoption_weekly AS aw LEFT JOIN _pr_review_weekly AS prw ON aw.week_start = prw.week_start ORDER BY aw.week_start NULLS FIRST", @@ -2384,7 +2384,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage change in code review time between low adoption (<50%) and high adoption (\u226550%) periods. Negative values indicate faster reviews.", "fieldConfig": { "defaults": { @@ -2446,10 +2446,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_review_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_review_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) AND pr_review_time > 0 GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _adoption_review AS (SELECT CASE WHEN aw.adoption_pct < 50 THEN 'low' ELSE 'high' END AS tier, prw.avg_review_time_hours FROM _adoption_weekly AS aw INNER JOIN _pr_review_weekly AS prw ON aw.week_start = prw.week_start), _tier_avg AS (SELECT tier, AVG(avg_review_time_hours) AS avg_review FROM _adoption_review GROUP BY tier) SELECT ROUND(CAST(((SELECT avg_review FROM _tier_avg WHERE tier = 'high') - (SELECT avg_review FROM _tier_avg WHERE tier = 'low')) AS NUMERIC) / NULLIF(NULLIF((SELECT avg_review FROM _tier_avg WHERE tier = 'low'), 0), 0) * 100, 1) AS change_pct", @@ -2460,7 +2460,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient (r) between GitHub Copilot adoption % and code review time. NEGATIVE values indicate higher adoption correlates with faster reviews.", "fieldConfig": { "defaults": { @@ -2522,10 +2522,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(day) GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' AND $__timeFilter(date)) AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _pr_review_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_review_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_review_time_hours FROM project_pr_metrics WHERE ('${project:sqlstring}' = '' OR project_name::text = '${project:sqlstring}') AND $__timeFilter(pr_merged_date) AND pr_review_time > 0 GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT aw.adoption_pct, prw.avg_review_time_hours FROM _adoption_weekly AS aw INNER JOIN _pr_review_weekly AS prw ON aw.week_start = prw.week_start) SELECT ROUND(CAST(CAST((COUNT(*) * SUM(adoption_pct * avg_review_time_hours) - SUM(adoption_pct) * SUM(avg_review_time_hours)) AS NUMERIC) / NULLIF(NULLIF(SQRT((COUNT(*) * SUM(adoption_pct * adoption_pct) - POWER(SUM(adoption_pct), 2)) * (COUNT(*) * SUM(avg_review_time_hours * avg_review_time_hours) - POWER(SUM(avg_review_time_hours), 2))), 0), 0) AS DECIMAL), 2) AS correlation_r FROM _joined", @@ -2549,7 +2549,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Bug count per file by GitHub Copilot adoption tier. Lower is better. Requires SonarQube integration.", "fieldConfig": { "defaults": { @@ -2601,10 +2601,10 @@ "sizing": "auto", "valueMode": "color" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _copilot_adoption AS (SELECT metric_date, ROUND(CAST(active_users * 100.0 AS NUMERIC) / NULLIF(NULLIF(total_seats, 0), 0), 1) AS adoption_pct FROM (SELECT day AS metric_date, SUM(daily_active_users) AS active_users, (SELECT COUNT(*) FROM _tool_copilot_seats AS s WHERE ('${connection_id}' = '' OR s.connection_id::text = '${connection_id}') AND COALESCE(s.organization, '') = COALESCE((SELECT sc.organization FROM _tool_copilot_scopes AS sc WHERE ('${connection_id}' = '' OR sc.connection_id::text = '${connection_id}') AND sc.id = '${scope_id}' LIMIT 1), '')) AS total_seats FROM _tool_copilot_enterprise_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}' GROUP BY day UNION ALL SELECT date AS metric_date, total_active_users AS active_users, seat_total AS total_seats FROM _tool_copilot_org_daily_metrics WHERE ('${connection_id}' = '' OR connection_id::text = '${connection_id}') AND scope_id = '${scope_id}') AS _unified), _adoption_weekly AS (SELECT metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day' AS week_start, AVG(adoption_pct) AS adoption_pct FROM _copilot_adoption GROUP BY metric_date - (EXTRACT(ISODOW FROM metric_date) - 1) * INTERVAL '1 day'), _adoption_tiers AS (SELECT week_start, CASE WHEN adoption_pct < 25 THEN '<25%' WHEN adoption_pct < 50 THEN '25-50%' WHEN adoption_pct < 75 THEN '50-75%' ELSE '>75%' END AS tier FROM _adoption_weekly) SELECT 'N/A - Configure SonarQube' AS \"Tier\", 0 AS \"Bugs/File\" FROM (SELECT 1) AS d WHERE NOT EXISTS(SELECT 1 FROM cq_file_metrics LIMIT 1)", @@ -2615,7 +2615,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code smell count per file by GitHub Copilot adoption tier. Lower is better. Requires SonarQube integration.", "fieldConfig": { "defaults": { @@ -2667,10 +2667,10 @@ "sizing": "auto", "valueMode": "color" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'N/A - Configure SonarQube' AS \"Tier\", 0 AS \"Code Smells/File\" FROM (SELECT 1) AS d WHERE NOT EXISTS(SELECT 1 FROM cq_file_metrics LIMIT 1)", @@ -2681,7 +2681,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code complexity by GitHub Copilot adoption tier. Lower is better. Requires SonarQube integration.", "fieldConfig": { "defaults": { @@ -2733,10 +2733,10 @@ "sizing": "auto", "valueMode": "color" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'N/A - Configure SonarQube' AS \"Tier\", 0 AS \"Complexity\" FROM (SELECT 1) AS d WHERE NOT EXISTS(SELECT 1 FROM cq_file_metrics LIMIT 1)", @@ -2747,7 +2747,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code coverage percentage by GitHub Copilot adoption tier. Higher is better. Requires SonarQube integration.", "fieldConfig": { "defaults": { @@ -2802,10 +2802,10 @@ "sizing": "auto", "valueMode": "color" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'N/A - Configure SonarQube' AS \"Tier\", 0 AS \"Coverage\" FROM (SELECT 1) AS d WHERE NOT EXISTS(SELECT 1 FROM cq_file_metrics LIMIT 1)", @@ -2832,7 +2832,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_copilot_scopes ORDER BY 1 NULLS FIRST", "hide": 0, "includeAll": false, @@ -2853,7 +2853,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT id FROM _tool_copilot_scopes WHERE connection_id = CAST('${connection_id}' AS BIGINT) ORDER BY 1 NULLS FIRST", "hide": 0, "includeAll": false, @@ -2874,7 +2874,7 @@ "text": "", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT project_name FROM project_pr_metrics ORDER BY 1 NULLS FIRST", "hide": 0, "includeAll": false, diff --git a/grafana/dashboards/postgresql/github-release-quality-and-contribution-analysis.json b/grafana/dashboards/postgresql/github-release-quality-and-contribution-analysis.json index 98d5d8cec0d..39765d18d17 100644 --- a/grafana/dashboards/postgresql/github-release-quality-and-contribution-analysis.json +++ b/grafana/dashboards/postgresql/github-release-quality-and-contribution-analysis.json @@ -33,7 +33,7 @@ "content": "- Use Cases: This dashboard can be used to track bugs.\n- Data Source Required: GitHub ([transformation](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional) required. Additional settings are required to get version data).", "mode": "markdown" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -58,7 +58,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -146,7 +146,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -273,7 +273,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -359,7 +359,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -515,7 +515,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -601,7 +601,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -727,7 +727,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -763,7 +763,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -850,7 +850,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -937,7 +937,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -989,7 +989,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1025,7 +1025,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1123,7 +1123,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1177,7 +1177,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1213,7 +1213,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1317,7 +1317,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1371,7 +1371,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1407,7 +1407,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1539,7 +1539,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1575,7 +1575,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1688,7 +1688,7 @@ "mode": "single" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1724,7 +1724,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1850,7 +1850,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -1900,7 +1900,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1995,7 +1995,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2071,7 +2071,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -2106,7 +2106,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2223,7 +2223,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2340,7 +2340,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2457,7 +2457,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2509,7 +2509,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { "format": "table", @@ -2545,7 +2545,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2652,7 +2652,7 @@ "content": "
\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": "13.0.2", "targets": [ { "queryType": "randomWalk", @@ -2681,7 +2681,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM repos", "description": null, "error": null, diff --git a/grafana/dashboards/postgresql/kiro-credits-dora.json b/grafana/dashboards/postgresql/kiro-credits-dora.json index c541b5eda05..551529fd01a 100644 --- a/grafana/dashboards/postgresql/kiro-credits-dora.json +++ b/grafana/dashboards/postgresql/kiro-credits-dora.json @@ -79,7 +79,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation coefficient between weekly Kiro credits and PR cycle time", "fieldConfig": { "defaults": { @@ -141,7 +141,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -153,7 +153,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total Kiro credits consumed in period", "fieldConfig": { "defaults": { @@ -194,7 +194,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT SUM(credits_used) AS \"Credits Used\" FROM _tool_q_dev_user_report WHERE $__timeFilter(date)", @@ -205,7 +205,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Median PR cycle time in hours", "fieldConfig": { "defaults": { @@ -247,7 +247,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _ranked AS (SELECT CAST(pr_cycle_time AS NUMERIC) / NULLIF(60.0, 0) AS ct, PERCENT_RANK() OVER (ORDER BY pr_cycle_time NULLS FIRST) AS prank FROM project_pr_metrics WHERE NOT pr_merged_date IS NULL AND NOT pr_cycle_time IS NULL AND $__timeFilter(pr_merged_date)) SELECT ROUND(MAX(ct), 1) AS \"Median Cycle Time\" FROM _ranked WHERE prank <= 0.5", @@ -258,7 +258,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Cycle time comparison: weeks with above-median vs below-median AI credits usage", "fieldConfig": { "defaults": { @@ -298,7 +298,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _kiro_weekly AS (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, SUM(credits_used) AS weekly_credits FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day'), _pr_weekly AS (SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS avg_ct FROM project_pr_metrics WHERE NOT pr_merged_date IS NULL AND NOT pr_cycle_time IS NULL AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT k.weekly_credits, p.avg_ct FROM _kiro_weekly AS k INNER JOIN _pr_weekly AS p ON k.week_start = p.week_start), _med AS (SELECT weekly_credits AS med FROM _joined ORDER BY weekly_credits NULLS FIRST LIMIT 1 OFFSET (SELECT FLOOR(CAST(COUNT(*) AS NUMERIC) / NULLIF(2, 0)) FROM _joined)) SELECT CASE WHEN j.weekly_credits >= m.med THEN 'High AI Usage' ELSE 'Low AI Usage' END AS \"Tier\", ROUND(CAST(AVG(j.avg_ct) AS DECIMAL), 1) AS \"Avg Cycle Time\" FROM _joined AS j, _med AS m GROUP BY CASE WHEN j.weekly_credits >= m.med THEN 'High AI Usage' ELSE 'Low AI Usage' END", @@ -322,7 +322,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly Kiro credits consumed", "fieldConfig": { "defaults": { @@ -374,7 +374,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(credits_used) AS \"Credits Used\", COUNT(DISTINCT user_id) AS \"Active Users\" FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -385,7 +385,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly average PR cycle time in hours", "fieldConfig": { "defaults": { @@ -437,7 +437,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' AS time, ROUND(CAST(CAST(AVG(pr_cycle_time) AS NUMERIC) / NULLIF(60.0, 0) AS DECIMAL), 1) AS \"Avg Cycle Time (hrs)\", COUNT(*) AS \"PRs Merged\" FROM project_pr_metrics WHERE NOT pr_merged_date IS NULL AND NOT pr_cycle_time IS NULL AND $__timeFilter(pr_merged_date) GROUP BY CAST(pr_merged_date AS DATE) - (EXTRACT(ISODOW FROM CAST(pr_merged_date AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -461,7 +461,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Pearson correlation between weekly credits and deployment count", "fieldConfig": { "defaults": { @@ -512,7 +512,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "WITH _kiro_weekly AS (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, SUM(credits_used) AS weekly_credits FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day'), _deploy_weekly AS (SELECT CAST(cdc.finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(cdc.finished_date AS DATE)) - 1) * INTERVAL '1 day' AS week_start, COUNT(DISTINCT cdc.cicd_deployment_id) AS deploys FROM cicd_deployment_commits AS cdc JOIN project_mapping AS pm ON cdc.cicd_scope_id = pm.row_id AND pm.\"table\" = 'cicd_scopes' WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION' AND $__timeFilter(cdc.finished_date) GROUP BY CAST(cdc.finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(cdc.finished_date AS DATE)) - 1) * INTERVAL '1 day'), _joined AS (SELECT k.weekly_credits AS x, d.deploys AS y FROM _kiro_weekly AS k INNER JOIN _deploy_weekly AS d ON k.week_start = d.week_start), _stats AS (SELECT COUNT(*) AS n, AVG(x) AS mx, AVG(y) AS my, STDDEV_POP(x) AS sx, STDDEV_POP(y) AS sy FROM _joined) SELECT CASE WHEN s.n < 4 THEN NULL WHEN s.sx = '0' OR s.sy = '0' THEN 0 ELSE ROUND(CAST((SELECT SUM((j.x - s.mx) * (j.y - s.my)) FROM _joined AS j) AS NUMERIC) / NULLIF((s.n * s.sx * s.sy), 0), 2) END AS \"r\" FROM _stats AS s", @@ -523,7 +523,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly credits overlaid with deployment count", "fieldConfig": { "defaults": { @@ -575,7 +575,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(credits) AS \"Credits Used\", SUM(deploys) AS \"Deployments\" FROM (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(credits_used) AS credits, 0 AS deploys FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' UNION ALL SELECT CAST(cdc.finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(cdc.finished_date AS DATE)) - 1) * INTERVAL '1 day' AS time, 0 AS credits, COUNT(DISTINCT cdc.cicd_deployment_id) AS deploys FROM cicd_deployment_commits AS cdc JOIN project_mapping AS pm ON cdc.cicd_scope_id = pm.row_id AND pm.\"table\" = 'cicd_scopes' WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION' AND $__timeFilter(cdc.finished_date) GROUP BY CAST(cdc.finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(cdc.finished_date AS DATE)) - 1) * INTERVAL '1 day') AS combined GROUP BY time ORDER BY time NULLS FIRST", @@ -599,7 +599,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Change failure rate: % of deployments that caused incidents", "fieldConfig": { "defaults": { @@ -651,7 +651,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(credits) AS \"Credits Used\", SUM(cfr) AS \"Change Failure Rate\" FROM (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(credits_used) AS credits, 0 AS cfr FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' UNION ALL SELECT CAST(d.deployment_finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(d.deployment_finished_date AS DATE)) - 1) * INTERVAL '1 day' AS time, 0 AS credits, CAST(SUM(CASE WHEN NOT i.id IS NULL THEN 1 ELSE 0 END) AS NUMERIC) / NULLIF(COUNT(DISTINCT d.deployment_id), 0) AS cfr FROM (SELECT cdc.cicd_deployment_id AS deployment_id, MAX(cdc.finished_date) AS deployment_finished_date FROM cicd_deployment_commits AS cdc JOIN project_mapping AS pm ON cdc.cicd_scope_id = pm.row_id AND pm.\"table\" = 'cicd_scopes' WHERE cdc.result = 'SUCCESS' AND cdc.environment = 'PRODUCTION' AND $__timeFilter(cdc.finished_date) GROUP BY cdc.cicd_deployment_id) AS d LEFT JOIN project_incident_deployment_relationships AS pidr ON d.deployment_id = pidr.deployment_id LEFT JOIN incidents AS i ON pidr.id = i.id GROUP BY CAST(d.deployment_finished_date AS DATE) - (EXTRACT(ISODOW FROM CAST(d.deployment_finished_date AS DATE)) - 1) * INTERVAL '1 day') AS combined GROUP BY time ORDER BY time NULLS FIRST", @@ -683,7 +683,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/language-ai-heatmap.json b/grafana/dashboards/postgresql/language-ai-heatmap.json index f2380c3efc9..63aa23d65da 100644 --- a/grafana/dashboards/postgresql/language-ai-heatmap.json +++ b/grafana/dashboards/postgresql/language-ai-heatmap.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Completion requests, avg context size, and completion rate per language", "fieldConfig": { "defaults": { @@ -63,7 +63,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CASE WHEN file_extension = '' THEN '(unknown)' ELSE file_extension END AS \"Language\", COUNT(*) AS \"Requests\", ROUND(CAST(AVG(completions_count) AS DECIMAL), 2) AS \"Avg Completions\", ROUND(AVG(left_context_length)) AS \"Avg Left Context\", ROUND(AVG(right_context_length)) AS \"Avg Right Context\", ROUND(AVG(left_context_length + right_context_length)) AS \"Avg Total Context\", COUNT(DISTINCT user_id) AS \"Users\" FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) GROUP BY \"file_extension\" ORDER BY COUNT(*) DESC NULLS LAST", @@ -74,7 +74,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily completion requests by language", "fieldConfig": { "defaults": { @@ -118,7 +118,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(timestamp AS DATE) AS time, CASE WHEN file_extension = '' THEN '(unknown)' ELSE file_extension END AS metric, COUNT(*) AS value FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) GROUP BY CAST(timestamp AS DATE), \"file_extension\" ORDER BY time NULLS FIRST", @@ -129,7 +129,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Which file types are most active during chat sessions", "fieldConfig": { "defaults": { @@ -183,7 +183,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT CASE WHEN active_file_extension = '' OR active_file_extension IS NULL THEN '(no file)' ELSE active_file_extension END AS \"File Type\", COUNT(*) AS \"Chat Events\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY \"active_file_extension\" ORDER BY COUNT(*) DESC NULLS LAST LIMIT 10", @@ -194,7 +194,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Context size trends for top languages", "fieldConfig": { "defaults": { @@ -241,7 +241,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(timestamp AS DATE) AS time, file_extension AS metric, ROUND(AVG(left_context_length + right_context_length)) AS value FROM _tool_q_dev_completion_log WHERE $__timeFilter(timestamp) AND file_extension IN (SELECT file_extension FROM _tool_q_dev_completion_log GROUP BY \"file_extension\" ORDER BY COUNT(*) DESC NULLS LAST LIMIT 5) GROUP BY CAST(timestamp AS DATE), \"file_extension\" ORDER BY time NULLS FIRST", diff --git a/grafana/dashboards/postgresql/multi-ai-comparison.json b/grafana/dashboards/postgresql/multi-ai-comparison.json index 98ae5d766e0..bca47881221 100644 --- a/grafana/dashboards/postgresql/multi-ai-comparison.json +++ b/grafana/dashboards/postgresql/multi-ai-comparison.json @@ -79,7 +79,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly active users for both tools", "fieldConfig": { "defaults": { @@ -131,14 +131,14 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, COUNT(DISTINCT user_id) AS \"Kiro Active Users\" FROM _tool_q_dev_user_report WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", "refId": "A" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day' AS time, MAX(daily_active_users) AS \"Copilot Active Users\" FROM _tool_copilot_enterprise_daily_metrics WHERE ('${copilot_connection_id}' = '' OR connection_id::text = '${copilot_connection_id}') AND scope_id = '${copilot_scope_id}' AND $__timeFilter(day) GROUP BY CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -162,7 +162,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly code generation and acceptance events", "fieldConfig": { "defaults": { @@ -214,7 +214,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(inline_suggestions_count) AS \"Kiro: Suggestions\", SUM(inline_acceptance_count) AS \"Kiro: Accepted\" FROM _tool_q_dev_user_data WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -225,7 +225,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly Copilot code generation and acceptance events", "fieldConfig": { "defaults": { @@ -277,7 +277,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(code_generation_activity_count) AS \"Copilot: Suggestions\", SUM(code_acceptance_activity_count) AS \"Copilot: Accepted\" FROM _tool_copilot_enterprise_daily_metrics WHERE ('${copilot_connection_id}' = '' OR connection_id::text = '${copilot_connection_id}') AND scope_id = '${copilot_scope_id}' AND $__timeFilter(day) GROUP BY CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -301,7 +301,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly AI-generated lines of code accepted", "fieldConfig": { "defaults": { @@ -353,7 +353,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT time, SUM(kiro_loc) AS \"Kiro LOC Accepted\", SUM(copilot_loc) AS \"Copilot LOC Added\" FROM (SELECT CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' AS time, SUM(inline_ai_code_lines + chat_ai_code_lines) AS kiro_loc, 0 AS copilot_loc FROM _tool_q_dev_user_data WHERE $__timeFilter(date) GROUP BY CAST(date AS DATE) - (EXTRACT(ISODOW FROM CAST(date AS DATE)) - 1) * INTERVAL '1 day' UNION ALL SELECT CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day' AS time, 0 AS kiro_loc, SUM(loc_added_sum) AS copilot_loc FROM _tool_copilot_enterprise_daily_metrics WHERE ('${copilot_connection_id}' = '' OR connection_id::text = '${copilot_connection_id}') AND scope_id = '${copilot_scope_id}' AND $__timeFilter(day) GROUP BY CAST(day AS DATE) - (EXTRACT(ISODOW FROM CAST(day AS DATE)) - 1) * INTERVAL '1 day') AS combined GROUP BY time ORDER BY time NULLS FIRST", @@ -364,7 +364,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Overall acceptance rates for both tools", "fieldConfig": { "defaults": { @@ -404,7 +404,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'Kiro' AS \"Tool\", ROUND(CAST(SUM(inline_acceptance_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(inline_suggestions_count), 0), 0), 1) AS \"Acceptance Rate\" FROM _tool_q_dev_user_data WHERE $__timeFilter(date) UNION ALL SELECT 'Copilot' AS \"Tool\", ROUND(CAST(SUM(code_acceptance_activity_count) * 100.0 AS NUMERIC) / NULLIF(NULLIF(SUM(code_generation_activity_count), 0), 0), 1) FROM _tool_copilot_enterprise_daily_metrics WHERE ('${copilot_connection_id}' = '' OR connection_id::text = '${copilot_connection_id}') AND scope_id = '${copilot_scope_id}' AND $__timeFilter(day)", @@ -428,7 +428,7 @@ "list": [ { "current": {}, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT connection_id FROM _tool_copilot_scopes ORDER BY connection_id DESC NULLS LAST", "hide": 0, "label": "Copilot Connection", @@ -440,7 +440,7 @@ }, { "current": {}, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT id FROM _tool_copilot_scopes WHERE connection_id = CAST('${copilot_connection_id}' AS BIGINT)", "hide": 0, "label": "Copilot Scope", diff --git a/grafana/dashboards/postgresql/pager-duty.json b/grafana/dashboards/postgresql/pager-duty.json index 437ecf1fd29..6469d4b2708 100644 --- a/grafana/dashboards/postgresql/pager-duty.json +++ b/grafana/dashboards/postgresql/pager-duty.json @@ -77,7 +77,7 @@ "content": "- Use Cases: This dashboard shows the incident data from PagerDuty.\n- Data Source Required: PagerDuty", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -116,7 +116,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -165,10 +165,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -218,7 +218,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -268,10 +268,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -321,7 +321,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. Total number of incidents created.\n2. The requirements being calculated are filtered by \"requirement creation time\" (time filter at the upper-right corner) and \"Jira board\" (\"Choose Board\" filter at the upper-left corner)", "fieldConfig": { "defaults": { @@ -388,10 +388,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -441,7 +441,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -495,10 +495,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -548,7 +548,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -629,10 +629,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -708,7 +708,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -764,10 +764,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -818,7 +818,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -873,10 +873,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -927,7 +927,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1012,10 +1012,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1070,7 +1070,7 @@ "bars": false, "dashLength": 10, "dashes": false, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "1. The cumulative distribution of MTTR\n2. Each point refers to the percent rank of a distinct duration to resolve incidents.", "fill": 0, "fillGradient": 4, @@ -1107,7 +1107,7 @@ "alertThreshold": false }, "percentage": false, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "pointradius": 0.5, "points": false, "renderer": "flot", @@ -1117,7 +1117,7 @@ "steppedLine": false, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1232,7 +1232,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -1265,7 +1265,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM boards WHERE id::text LIKE 'pagerduty%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/q-dev-dora.json b/grafana/dashboards/postgresql/q-dev-dora.json index ff077e0c5f9..2a5368236d1 100644 --- a/grafana/dashboards/postgresql/q-dev-dora.json +++ b/grafana/dashboards/postgresql/q-dev-dora.json @@ -64,7 +64,7 @@ "content": "## AI-Powered DORA Dashboard\nThis dashboard correlates **Q Dev (AI coding assistant)** usage metrics with **DORA** performance indicators to help understand the impact of AI-assisted development on engineering efficiency.\n\n- **Left side**: Q Dev AI usage metrics (code generation, acceptance rate)\n- **Right side**: DORA metrics (Lead Time, Deployment Frequency, Change Failure Rate)\n- **Correlation charts**: Show trends over time to identify potential relationships", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "title": "Dashboard Introduction", "type": "text" }, @@ -82,7 +82,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of unique users who used Q Dev AI features", "fieldConfig": { "defaults": { @@ -125,10 +125,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -140,7 +140,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Total AI-generated code lines accepted (Inline + Chat)", "fieldConfig": { "defaults": { @@ -184,10 +184,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -199,7 +199,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Acceptance rate of inline AI suggestions", "fieldConfig": { "defaults": { @@ -251,10 +251,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -266,7 +266,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of production deployments in selected period", "fieldConfig": { "defaults": { @@ -309,10 +309,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -324,7 +324,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Median lead time for changes in hours", "fieldConfig": { "defaults": { @@ -376,10 +376,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -391,7 +391,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage of deployments that caused incidents", "fieldConfig": { "defaults": { @@ -443,10 +443,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -471,7 +471,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Compare AI code generation trends with Lead Time for Changes. A negative correlation (AI lines up, Lead Time down) suggests AI is helping accelerate delivery.", "fieldConfig": { "defaults": { @@ -594,10 +594,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -609,7 +609,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Compare AI suggestion acceptance rate with deployment frequency. Higher acceptance rate may indicate better AI integration and potentially more deployments.", "fieldConfig": { "defaults": { @@ -736,10 +736,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -751,7 +751,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Compare AI-generated tests with Change Failure Rate. More AI-generated tests might correlate with lower failure rates.", "fieldConfig": { "defaults": { @@ -878,10 +878,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -893,7 +893,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Compare active Q Dev users with Code Review findings. More AI-assisted code review might catch issues earlier.", "fieldConfig": { "defaults": { @@ -1016,10 +1016,10 @@ "sort": "none" } }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1044,7 +1044,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Monthly summary comparing Q Dev AI metrics with DORA metrics side by side", "fieldConfig": { "defaults": { @@ -1168,10 +1168,10 @@ } ] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1204,7 +1204,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT name FROM projects", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/qdev_executive.json b/grafana/dashboards/postgresql/qdev_executive.json index d87f67c5aba..8ea7bbb8c8f 100644 --- a/grafana/dashboards/postgresql/qdev_executive.json +++ b/grafana/dashboards/postgresql/qdev_executive.json @@ -69,7 +69,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distinct users with chat activity in the last 7 days (from prompt logging)", "fieldConfig": { "defaults": { @@ -113,10 +113,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -128,7 +128,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average credits spent per accepted line of code (new report + legacy metrics)", "fieldConfig": { "defaults": { @@ -172,10 +172,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -187,7 +187,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage of inline suggestions accepted (from legacy feature metrics)", "fieldConfig": { "defaults": { @@ -231,10 +231,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -246,7 +246,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Percentage of users who used steering rules (from prompt logging)", "fieldConfig": { "defaults": { @@ -291,10 +291,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -319,7 +319,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly active user count over time (from prompt logging)", "fieldConfig": { "defaults": { @@ -396,10 +396,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -411,7 +411,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "New vs returning users by week (from prompt logging)", "fieldConfig": { "defaults": { @@ -488,10 +488,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -516,7 +516,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Cumulative credits this month vs projected total (from new user_report)", "fieldConfig": { "defaults": { @@ -593,10 +593,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -608,7 +608,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Power tier users with no activity in the last 14 days (from new user_report)", "fieldConfig": { "defaults": { @@ -655,10 +655,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -683,7 +683,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Per-user productivity combining credits (new format) with feature metrics (legacy). Only shows users present in both data sources.", "fieldConfig": { "defaults": { @@ -730,10 +730,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/postgresql/qdev_feature_metrics.json b/grafana/dashboards/postgresql/qdev_feature_metrics.json index 808fbf57eb0..3ea698aa550 100644 --- a/grafana/dashboards/postgresql/qdev_feature_metrics.json +++ b/grafana/dashboards/postgresql/qdev_feature_metrics.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "High-level summary of legacy feature-level activity metrics (from by_user_analytic CSV reports)", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -91,7 +91,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily inline suggestion and acceptance counts", "fieldConfig": { "defaults": { @@ -167,10 +167,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -182,7 +182,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Acceptance rates for inline suggestions, code fix, and inline chat over time", "fieldConfig": { "defaults": { @@ -258,10 +258,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -286,7 +286,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily chat messages sent and AI-generated code lines from chat", "fieldConfig": { "defaults": { @@ -362,10 +362,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -377,7 +377,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Agentic (Dev) code generation and acceptance metrics", "fieldConfig": { "defaults": { @@ -453,10 +453,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -481,7 +481,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code review findings and test generation metrics over time", "fieldConfig": { "defaults": { @@ -557,10 +557,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -572,7 +572,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Test generation events and acceptance over time", "fieldConfig": { "defaults": { @@ -648,10 +648,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -663,7 +663,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Doc generation and code transformation events", "fieldConfig": { "defaults": { @@ -739,10 +739,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -754,7 +754,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Number of users who used each feature in the selected period", "fieldConfig": { "defaults": { @@ -835,10 +835,10 @@ }, "xTickLabelRotation": 0 }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -863,7 +863,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Per-user breakdown of legacy feature-level metrics", "fieldConfig": { "defaults": { @@ -910,10 +910,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/postgresql/qdev_logging.json b/grafana/dashboards/postgresql/qdev_logging.json index 7e502ca07a3..032b4fcfa16 100644 --- a/grafana/dashboards/postgresql/qdev_logging.json +++ b/grafana/dashboards/postgresql/qdev_logging.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Overview of logging event metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -78,7 +78,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Hourly distribution of AI usage activity (chat + completions)", "fieldConfig": { "defaults": { @@ -152,10 +152,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -167,7 +167,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of chat trigger types: MANUAL (chat window) vs INLINE_CHAT", "fieldConfig": { "defaults": { @@ -220,10 +220,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -235,7 +235,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of model usage across chat events", "fieldConfig": { "defaults": { @@ -288,10 +288,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -303,7 +303,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Top file extensions used with inline completions", "fieldConfig": { "defaults": { @@ -356,10 +356,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -371,7 +371,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average number of chat events per conversation", "fieldConfig": { "defaults": { @@ -448,10 +448,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -463,7 +463,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily chat and completion events over time", "fieldConfig": { "defaults": { @@ -540,10 +540,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -555,7 +555,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Per-user logging activity summary", "fieldConfig": { "defaults": { @@ -602,10 +602,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -617,7 +617,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of Kiro feature adoption: Steering, Spec Mode, and Plain Chat", "fieldConfig": { "defaults": { @@ -670,10 +670,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -685,7 +685,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Top file extensions active during chat events", "fieldConfig": { "defaults": { @@ -738,10 +738,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -753,7 +753,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "How often Kiro responses include code references and web links", "fieldConfig": { "defaults": { @@ -806,10 +806,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -821,7 +821,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average and maximum prompt/response lengths over time", "fieldConfig": { "defaults": { @@ -898,10 +898,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -913,7 +913,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Average code context size provided to inline completions over time", "fieldConfig": { "defaults": { @@ -989,10 +989,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -1004,7 +1004,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily trend of code references and web links in chat responses", "fieldConfig": { "defaults": { @@ -1080,10 +1080,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, diff --git a/grafana/dashboards/postgresql/qdev_user_data.json b/grafana/dashboards/postgresql/qdev_user_data.json index 2d07290eccb..d446fca81db 100644 --- a/grafana/dashboards/postgresql/qdev_user_data.json +++ b/grafana/dashboards/postgresql/qdev_user_data.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Overview of key user metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -115,7 +115,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily AI code line changes across all users", "fieldConfig": { "defaults": { @@ -192,10 +192,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -244,7 +244,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily AI interaction trends across all users", "fieldConfig": { "defaults": { @@ -321,10 +321,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -373,7 +373,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Code review metrics over time", "fieldConfig": { "defaults": { @@ -450,10 +450,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "group": [], "metricColumn": "none", @@ -501,7 +501,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily acceptance rate of AI suggestions", "fieldConfig": { "defaults": { @@ -578,10 +578,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -630,7 +630,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "User AI interaction metrics", "fieldConfig": { "defaults": { @@ -721,10 +721,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -773,7 +773,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily doc generation events and accepted/rejected lines", "fieldConfig": { "defaults": { @@ -850,10 +850,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -902,7 +902,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily test generation events and lines", "fieldConfig": { "defaults": { @@ -979,10 +979,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], @@ -1031,7 +1031,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily agentic dev events and lines", "fieldConfig": { "defaults": { @@ -1108,10 +1108,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "group": [], diff --git a/grafana/dashboards/postgresql/qdev_user_report.json b/grafana/dashboards/postgresql/qdev_user_report.json index e678e9339e8..592d8a75daf 100644 --- a/grafana/dashboards/postgresql/qdev_user_report.json +++ b/grafana/dashboards/postgresql/qdev_user_report.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Overview of credits and usage metrics", "fieldConfig": { "defaults": { @@ -63,10 +63,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -78,7 +78,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily credits consumed broken down by subscription tier", "fieldConfig": { "defaults": { @@ -155,10 +155,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -170,7 +170,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Daily messages and conversations broken down by client type", "fieldConfig": { "defaults": { @@ -247,10 +247,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "time_series", "rawQuery": true, @@ -262,7 +262,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Distribution of users across subscription tiers", "fieldConfig": { "defaults": { @@ -315,10 +315,10 @@ "sort": "none" } }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -330,7 +330,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Per-user credits, messages, and subscription details", "fieldConfig": { "defaults": { @@ -426,10 +426,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.6.2", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, diff --git a/grafana/dashboards/postgresql/sonar-qube-cloud.json b/grafana/dashboards/postgresql/sonar-qube-cloud.json index 08cd7359e16..496fd63a8fd 100644 --- a/grafana/dashboards/postgresql/sonar-qube-cloud.json +++ b/grafana/dashboards/postgresql/sonar-qube-cloud.json @@ -50,7 +50,7 @@ "content": "- Use Cases: This dashboard shows the code quality metrics from SonarCloud.\n- Data Source Required: SonarCloud\n- Snapshot panels (Software Quality, Security Review, Test, etc.) show the latest scan and do not honor the time filter.\n- **Historical Trends** panels at the bottom respond to the time range selector and show metric history over time.", "mode": "markdown" }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -89,7 +89,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -144,11 +144,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -177,7 +177,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -232,11 +232,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -265,7 +265,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -320,11 +320,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -366,7 +366,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -422,11 +422,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -455,7 +455,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -511,11 +511,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -570,7 +570,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -626,11 +626,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -659,7 +659,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -716,11 +716,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -749,7 +749,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -806,11 +806,11 @@ "textMode": "value", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -865,7 +865,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -921,11 +921,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -954,7 +954,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1010,11 +1010,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1056,7 +1056,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1113,11 +1113,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1146,7 +1146,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1203,11 +1203,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1236,7 +1236,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1293,11 +1293,11 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1339,7 +1339,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1397,11 +1397,11 @@ }, "showHeader": true }, - "pluginVersion": "11.2.0", + "pluginVersion": "13.0.2", "targets": [ { "dataset": "lake", - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1713,7 +1713,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id AS text FROM cq_projects", "hide": 0, "includeAll": true, @@ -1738,7 +1738,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT severity FROM cq_issues WHERE id::text LIKE 'sonar%'", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/steering-adoption-tracker.json b/grafana/dashboards/postgresql/steering-adoption-tracker.json index fdbc522339e..f332a314483 100644 --- a/grafana/dashboards/postgresql/steering-adoption-tracker.json +++ b/grafana/dashboards/postgresql/steering-adoption-tracker.json @@ -19,7 +19,7 @@ "links": [], "panels": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -59,7 +59,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(COUNT(DISTINCT CASE WHEN has_steering = TRUE THEN user_id END) * 100.0 AS NUMERIC) / NULLIF(NULLIF(COUNT(DISTINCT user_id), 0), 0) AS DECIMAL), 0) AS \"value\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -70,7 +70,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -110,7 +110,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(COUNT(DISTINCT CASE WHEN is_spec_mode = TRUE THEN user_id END) * 100.0 AS NUMERIC) / NULLIF(NULLIF(COUNT(DISTINCT user_id), 0), 0) AS DECIMAL), 0) AS \"value\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -121,7 +121,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -161,7 +161,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT ROUND(CAST(CAST(SUM(CASE WHEN has_steering = TRUE THEN 1 ELSE 0 END) * 100.0 AS NUMERIC) / NULLIF(COUNT(*), 0) AS DECIMAL), 1) AS \"value\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp)", @@ -172,7 +172,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Weekly trend of steering and spec mode adoption rate", "fieldConfig": { "defaults": { @@ -220,7 +220,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "time_series", "rawQuery": true, "rawSql": "SELECT CAST(timestamp AS DATE) - (EXTRACT(ISODOW FROM CAST(timestamp AS DATE)) - 1) * INTERVAL '1 day' AS time, CAST(SUM(CASE WHEN has_steering = TRUE THEN 1 ELSE 0 END) AS NUMERIC) / NULLIF(COUNT(*), 0) AS \"Steering Rate\", CAST(SUM(CASE WHEN is_spec_mode = TRUE THEN 1 ELSE 0 END) AS NUMERIC) / NULLIF(COUNT(*), 0) AS \"Spec Mode Rate\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY CAST(timestamp AS DATE) - (EXTRACT(ISODOW FROM CAST(timestamp AS DATE)) - 1) * INTERVAL '1 day' ORDER BY time NULLS FIRST", @@ -231,7 +231,7 @@ "type": "timeseries" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Compare prompt and response quality between steering and non-steering sessions", "fieldConfig": { "defaults": { @@ -269,7 +269,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT 'With Steering' AS \"Mode\", ROUND(AVG(prompt_length)) AS \"Avg Prompt\", ROUND(AVG(response_length)) AS \"Avg Response\" FROM _tool_q_dev_chat_log WHERE has_steering = TRUE AND $__timeFilter(timestamp) UNION ALL SELECT 'Without Steering', ROUND(AVG(prompt_length)), ROUND(AVG(response_length)) FROM _tool_q_dev_chat_log WHERE has_steering = FALSE AND $__timeFilter(timestamp)", @@ -280,7 +280,7 @@ "type": "bargauge" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Per-user steering and spec mode usage", "fieldConfig": { "defaults": { @@ -318,7 +318,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "rawQuery": true, "rawSql": "SELECT COALESCE(MAX(display_name), user_id) AS \"User\", COUNT(*) AS \"Total Chats\", SUM(CASE WHEN has_steering = TRUE THEN 1 ELSE 0 END) AS \"Steering\", SUM(CASE WHEN is_spec_mode = TRUE THEN 1 ELSE 0 END) AS \"Spec Mode\", ROUND(CAST(CAST(SUM(CASE WHEN has_steering = TRUE THEN 1 ELSE 0 END) * 100.0 AS NUMERIC) / NULLIF(COUNT(*), 0) AS DECIMAL), 1) AS \"Steering %\" FROM _tool_q_dev_chat_log WHERE $__timeFilter(timestamp) GROUP BY \"user_id\" ORDER BY COUNT(*) DESC NULLS LAST", diff --git a/grafana/dashboards/postgresql/weekly-bug-retro.json b/grafana/dashboards/postgresql/weekly-bug-retro.json index 4ca4ca2c6aa..459baa7d6ec 100644 --- a/grafana/dashboards/postgresql/weekly-bug-retro.json +++ b/grafana/dashboards/postgresql/weekly-bug-retro.json @@ -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: One of the issue tracking tools, e.g. [GitHub](https://devlake.apache.org/docs/UserManuals/ConfigUI/GitHub#step-3---adding-transformation-rules-optional), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab) or [Jira](https://devlake.apache.org/docs/UserManuals/ConfigUI/Jira#step-3---adding-transformation-rules-optional) (Scope Config required to define which issues are bugs).", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -71,7 +71,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -157,7 +157,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -209,7 +209,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -295,7 +295,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -347,7 +347,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -435,7 +435,7 @@ }, "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -500,7 +500,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -554,10 +554,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -609,7 +609,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -666,10 +666,10 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -721,7 +721,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -825,10 +825,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -880,7 +880,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -934,10 +934,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -989,7 +989,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1048,10 +1048,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1103,7 +1103,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1221,10 +1221,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1276,7 +1276,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1361,10 +1361,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1416,7 +1416,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1470,10 +1470,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1525,7 +1525,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1579,10 +1579,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -1616,7 +1616,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1758,10 +1758,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1813,7 +1813,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1898,10 +1898,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 100 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1953,7 +1953,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -2095,10 +2095,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2170,7 +2170,7 @@ "content": "
\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": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2198,7 +2198,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '-' || id AS text FROM boards", "hide": 0, "includeAll": true, @@ -2219,7 +2219,7 @@ "text": "BUG", "value": "BUG" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, @@ -2244,7 +2244,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT priority FROM issues", "hide": 0, "includeAll": true, diff --git a/grafana/dashboards/postgresql/weekly-community-retro.json b/grafana/dashboards/postgresql/weekly-community-retro.json index 4bb53f118f6..54d392abf79 100644 --- a/grafana/dashboards/postgresql/weekly-community-retro.json +++ b/grafana/dashboards/postgresql/weekly-community-retro.json @@ -44,7 +44,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 dashboard **DOES NOT** honor the time filter on the top-right corner.", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -85,7 +85,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -137,10 +137,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -192,7 +192,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -244,10 +244,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -299,7 +299,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -352,10 +352,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -407,7 +407,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -463,10 +463,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -500,7 +500,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -557,10 +557,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -594,7 +594,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -726,10 +726,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -781,7 +781,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -837,10 +837,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "metricColumn": "none", @@ -874,7 +874,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1010,10 +1010,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1091,7 +1091,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1143,10 +1143,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1198,7 +1198,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1250,10 +1250,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1305,7 +1305,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1357,10 +1357,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1412,7 +1412,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1464,10 +1464,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1519,7 +1519,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1572,10 +1572,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "format": "table", "group": [], "hide": false, @@ -1609,7 +1609,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "Contributors: the PR authors who have merged PR(s)", "fieldConfig": { "defaults": { @@ -1665,10 +1665,10 @@ }, "showHeader": true }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1720,7 +1720,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1777,10 +1777,10 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1832,7 +1832,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1916,10 +1916,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1971,7 +1971,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2054,10 +2054,10 @@ "xTickLabelRotation": 45, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2109,7 +2109,7 @@ "type": "barchart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2156,10 +2156,10 @@ }, "textMode": "auto" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2211,7 +2211,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -2263,10 +2263,10 @@ }, "valueMode": "color" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -2338,7 +2338,7 @@ "content": "
\n\nThis dashboard is created based on this [data schema](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema). Want to add more metrics? Please follow the [guide](https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide).", "mode": "markdown" }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -2370,7 +2370,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '-' || id AS text FROM repos", "hide": 0, "includeAll": true, @@ -2391,7 +2391,7 @@ "text": "All", "value": "$__all" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT type FROM issues", "hide": 0, "includeAll": true, @@ -2416,7 +2416,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT DISTINCT organization FROM accounts WHERE organization <> ''", "description": "", "hide": 0, diff --git a/grafana/dashboards/postgresql/work-logs.json b/grafana/dashboards/postgresql/work-logs.json index 779e43bb14a..3ea68c79847 100644 --- a/grafana/dashboards/postgresql/work-logs.json +++ b/grafana/dashboards/postgresql/work-logs.json @@ -43,7 +43,7 @@ "content": "- Use Cases: This dashboard shows the work logs of a team or a developer\n- Data Sources Required to show all data: \n - One of the Git tools, e.g. [GitHub](https://devlake.apache.org/docs/Configuration/GitHub), [GitLab](https://devlake.apache.org/docs/Configuration/GitLab), [Bitbucket](https://devlake.apache.org/docs/Configuration/BitBucket) or [Azure DevOps](https://devlake.apache.org/docs/Configuration/AzureDevOps)\n - One of the issue tracking tools, e.g. [Jira](https://devlake.apache.org/docs/Configuration/Jira)\n - You also need to complete the [team configuration](https://devlake.apache.org/docs/Configuration/TeamConfiguration) to use this dashboard", "mode": "markdown" }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { "datasource": { @@ -69,7 +69,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -209,10 +209,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -241,7 +241,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -352,10 +352,10 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -384,7 +384,7 @@ "type": "table" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -573,10 +573,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -618,7 +618,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -709,10 +709,10 @@ "sort": "none" } }, - "pluginVersion": "9.5.15", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -741,7 +741,7 @@ "type": "piechart" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -780,10 +780,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -812,7 +812,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -852,10 +852,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -884,7 +884,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -924,10 +924,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -956,7 +956,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -996,10 +996,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1028,7 +1028,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "", "fieldConfig": { "defaults": { @@ -1111,10 +1111,10 @@ "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "8.0.6", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "group": [], @@ -1179,7 +1179,7 @@ "type": "row" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1219,10 +1219,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1251,7 +1251,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "fieldConfig": { "defaults": { "color": { @@ -1291,10 +1291,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1323,7 +1323,7 @@ "type": "stat" }, { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "description": "average pr review time from first comment to the last comment", "fieldConfig": { "defaults": { @@ -1364,10 +1364,10 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.0.0", + "pluginVersion": "13.0.2", "targets": [ { - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "editorMode": "code", "format": "table", "rawQuery": true, @@ -1411,7 +1411,7 @@ "text": "None", "value": "" }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT name || '--' || id FROM teams", "hide": 0, "includeAll": false, @@ -1436,7 +1436,7 @@ "$__all" ] }, - "datasource": "postgresql", + "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, "definition": "SELECT users.name || '--' || users.id FROM users LEFT JOIN team_users ON users.id = team_users.user_id WHERE ('${team:csv}' = '' OR team_users.team_id::text = ANY(ARRAY[${team:singlequote}]::text[]))", "hide": 0, "includeAll": true, diff --git a/grafana/scripts/entrypoint.sh b/grafana/scripts/entrypoint.sh index 7dc483e270b..f5a13fa4c03 100644 --- a/grafana/scripts/entrypoint.sh +++ b/grafana/scripts/entrypoint.sh @@ -62,16 +62,62 @@ echo "Database type: $MODE" # Remove unused dashboard folder to prevent confusion if [ "$MODE" = "mysql" ]; then rm -rf /etc/grafana/dashboards/postgresql - export GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH="/etc/grafana/dashboards/mysql/Homepage.json" else rm -rf /etc/grafana/dashboards/mysql SSL_MODE="${DATABASE_SSL_MODE:-disable}" - export GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH="/etc/grafana/dashboards/postgresql/Homepage.json" echo "SSL Mode: ${SSL_MODE}" fi +# Locate Homepage.json for the home dashboard. The layout differs by deployment: +# - baked-in image keeps variant subfolders: /etc/grafana/dashboards//Homepage.json +# - dev compose bind-mounts the variant folder directly: /etc/grafana/dashboards/Homepage.json +# Probe both so the home dashboard resolves in either case (a wrong path makes +# Grafana 12+ return HTTP 500 "Failed to load home dashboard"). +for _hp in \ + "/etc/grafana/dashboards/${MODE}/Homepage.json" \ + "/etc/grafana/dashboards/Homepage.json"; do + if [ -f "$_hp" ]; then + export GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH="$_hp" + break + fi +done + echo "Homepage: $GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH" +# --- Legacy persistent-volume hygiene ------------------------------------- +# This image runs as an arbitrary uid with gid 0 (OpenShift-compatible). Volumes +# created by older dashboard images (uid 472, file mode 0640) can be read-only for +# the current runtime user, which makes Grafana's DB migrations fail with +# "attempt to write a readonly database". Best-effort self-heal here; if it can't +# be fixed (non-root, non-owner) print a clear, actionable error instead of a +# cryptic SQLite crash. +GRAFANA_DATA_DIR="${GF_PATHS_DATA:-/var/lib/grafana}" +GRAFANA_DB="${GRAFANA_DATA_DIR}/grafana.db" + +if [ -e "$GRAFANA_DB" ] && [ ! -w "$GRAFANA_DB" ]; then + echo "WARNING: ${GRAFANA_DB} not writable by $(id -u):$(id -g); attempting permission fix..." + chgrp -R 0 "$GRAFANA_DATA_DIR" 2>/dev/null || true + chmod -R g+rwX "$GRAFANA_DATA_DIR" 2>/dev/null || true +fi + +if [ -e "$GRAFANA_DB" ] && [ ! -w "$GRAFANA_DB" ]; then + echo "ERROR: ${GRAFANA_DB} is still read-only for gid 0." + echo " The persistent volume was likely created by an older image (uid 472, mode 0640)." + echo " Fix it once from the host, then recreate this container:" + echo " docker run --rm -v _grafana-storage:/data alpine \\" + echo " sh -c 'chgrp -R 0 /data && chmod -R g+rwX /data'" +fi + +# Remove the deprecated Angular grafana-piechart-panel plugin if it lingers in a +# legacy volume. Grafana 12+ dropped Angular support and dashboards now use the +# core "piechart" panel; leaving it causes noisy plugin-validation errors. +LEGACY_PIECHART="${GRAFANA_DATA_DIR}/plugins/grafana-piechart-panel" +if [ -d "$LEGACY_PIECHART" ]; then + echo "Removing deprecated grafana-piechart-panel from data volume..." + rm -rf "$LEGACY_PIECHART" 2>/dev/null || true +fi +# -------------------------------------------------------------------------- + # Create empty datasource.yml (datasources created via API) cat > "$DATASOURCE_FILE" << HEADER # Licensed to the Apache Software Foundation (ASF) under one or more @@ -90,6 +136,11 @@ cat > "$DATASOURCE_FILE" << HEADER # limitations under the License. HEADER +# Admin credentials used by the datasource provisioning API calls below. +# Defaults to Grafana's built-in admin password; override via GF_SECURITY_ADMIN_PASSWORD. +# Exported so Grafana itself and the curl calls use the same value. +export GF_SECURITY_ADMIN_PASSWORD="${GF_SECURITY_ADMIN_PASSWORD:-admin}" + # Start Grafana in background /run.sh "$@" & GRAFANA_PID=$! @@ -105,6 +156,17 @@ for i in $(seq 1 60); do sleep 2 done +# Grafana 13+ auto-creates empty datasource instances for built-in plugins and +# legacy volumes may contain read-only provisioned datasources with different UIDs. +# Delete ALL existing datasources (by ID, which bypasses read-only flags) so we can +# create a single correctly-configured datasource with the UID our dashboards expect. +echo "Deleting all existing datasources (clean slate)..." +for _id in $(curl -s "http://admin:${GF_SECURITY_ADMIN_PASSWORD}@localhost:3000/api/datasources" 2>/dev/null \ + | grep -o '"id":[0-9]*' | sed 's/"id"://g'); do + curl -s -X DELETE "http://admin:${GF_SECURITY_ADMIN_PASSWORD}@localhost:3000/api/datasources/${_id}" 2>&1 || true +done +sleep 2 + # Create datasource via API (both MySQL and PostgreSQL) PAYLOAD_FILE="/tmp/datasource-api.json" @@ -126,10 +188,6 @@ if [ "$MODE" = "mysql" ]; then } APIJSON - echo "Deleting old MySQL datasources..." - curl -s -X DELETE "http://admin:${GF_SECURITY_ADMIN_PASSWORD}@localhost:3000/api/datasources/name/mysql" 2>&1 || true - curl -s -X DELETE "http://admin:${GF_SECURITY_ADMIN_PASSWORD}@localhost:3000/api/datasources/uid/devlake-mysql-api" 2>&1 || true - sleep 2 else SSL_MODE="${DATABASE_SSL_MODE:-disable}" @@ -137,7 +195,7 @@ else { "uid": "devlake-postgres-api", "name": "postgresql", - "type": "postgres", + "type": "grafana-postgresql-datasource", "url": "${POSTGRES_URL}", "database": "${POSTGRES_DATABASE}", "user": "${POSTGRES_USER}", @@ -146,7 +204,8 @@ else }, "jsonData": { "sslmode": "${SSL_MODE}", - "postgresVersion": 1400 + "postgresVersion": 1400, + "database": "${POSTGRES_DATABASE}" }, "access": "proxy", "isDefault": true, @@ -154,6 +213,7 @@ else } APIJSON + fi echo "Creating datasource via API..." @@ -165,6 +225,12 @@ for i in $(seq 1 10); do if echo "$RESPONSE" | grep -q '"id"'; then echo "Datasource created successfully" break + elif echo "$RESPONSE" | grep -q "already exists"; then + # A datasource with this name is already present (e.g. provisioned by an + # older image into a persistent volume). It cannot be recreated via the API + # but is functional, so treat this as success instead of retrying. + echo "Datasource already exists; keeping existing one" + break elif echo "$RESPONSE" | grep -q "database is locked"; then echo "DB locked, retry $i/10..." sleep 3 diff --git a/grafana/scripts/requirements.txt b/grafana/scripts/requirements.txt index b7cfbb4ecec..fa90e1e7705 100644 --- a/grafana/scripts/requirements.txt +++ b/grafana/scripts/requirements.txt @@ -1 +1 @@ -sqlglot==25.29.0 +sqlglot==30.12.0