|
460 | 460 | "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, |
461 | 461 | "format": "table", |
462 | 462 | "rawQuery": true, |
463 | | - "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", |
| 463 | + "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' WHEN aw.adoption_pct < 50 THEN 'low' END AS adoption_tier FROM _adoption_weekly AS aw INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start WHERE aw.adoption_pct IS NOT NULL), _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", |
464 | 464 | "refId": "A" |
465 | 465 | } |
466 | 466 | ], |
|
686 | 686 | "datasource": {"type": "grafana-postgresql-datasource", "uid": "devlake-postgres-api"}, |
687 | 687 | "format": "table", |
688 | 688 | "rawQuery": true, |
689 | | - "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", |
| 689 | + "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%' WHEN aw.adoption_pct >= 75 THEN '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 WHERE aw.adoption_pct IS NOT NULL) 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", |
690 | 690 | "refId": "A" |
691 | 691 | } |
692 | 692 | ], |
|
695 | 695 | }, |
696 | 696 | { |
697 | 697 | "datasource": { |
698 | | - "type": "datasource", |
| 698 | + "type": "datasource"INNER JOIN _pr_metrics_weekly AS pm ON aw.week_start = pm.week_start WHERE aw.adoption_pct IS NOT NULL) SELECT adoption_tier AS metric |
699 | 699 | "uid": "grafana" |
700 | 700 | }, |
701 | 701 | "gridPos": { |
|
0 commit comments