Thundercloud12 opened a new issue, #9171:
URL: https://github.com/apache/devlake/issues/9171

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) and 
found no similar issues.
   
   
   ### What happened
   
   DevLake officially supports both MySQL and PostgreSQL as lake
     databases. In PR #8870, dashboards were split into
     grafana/dashboards/mysql/ and grafana/dashboards/postgresql/, and
     Grafana provisioning selectively mounts or keeps the relevant
     database directory based on DATABASE_TYPE.
   
     However, the recent Cursor integration (PR #9017) and Claude Code
     integration (PR #8808) introduced significant dashboard omissions
     and desyncs for PostgreSQL deployments:
     1. cursor-usage.json is completely missing from PostgreSQL:
         • cursor-usage.json was added in PR #9017 (1,354 lines of
         JSON).
         • No PostgreSQL equivalent was created in .
         • When running on PostgreSQL, entrypoint.sh:66 executes rm -
         rf /etc/grafana/dashboards/mysql, and docker-compose-dev-
         postgresql.yml mounts only ./grafana/dashboards/postgresql.
         As a result, Cursor users on PostgreSQL have no Cursor
         dashboard at all.
     2. Panels are out-of-sync in existing comparison dashboards:
         • ai-cost-efficiency.json: The MySQL version has 17 panels,
         while the PostgreSQL version has only 10 panels. All 7 Cursor
         panels (such as Cursor Spend Breakdown, Charged Amount, and
         spend reconciliation) are completely missing from PostgreSQL.
         • multi-ai-comparison.json: The MySQL version has 10 panels,
         while the PostgreSQL version has only 9 panels. The Cursor:
         Tab Completions panel and Cursor LOC/acceptance queries are
         missing from PostgreSQL.
     3. Claude Code dashboards stranded in root directory:
         • ClaudeCodeAdoption.json and ClaudeCodeAdoptionByUser.json
         sit directly in grafana/dashboards/ root hardcoded to
         "datasource": {"type": "mysql", "uid": "devlake-mysql-api"}
         and MySQL-specific functions (TIMESTAMPDIFF, DATE_SUB).
         • Because docker-compose-dev-mysql.yml and docker-compose-
         dev-postgresql.yml mount grafana/dashboards/mysql and
         grafana/dashboards/postgresql directly to
         /etc/grafana/dashboards:ro, files in the root folder are not
         mounted in local dev environments and fail with missing
         datasource errors in PostgreSQL containers.
   
   ### What do you expect to happen
   
   1. Full PostgreSQL Parity for Cursor:
         • Generate cursor-usage.json with converted PostgreSQL SQL
         syntax (DATE_TRUNC, TO_CHAR, COALESCE, interval arithmetic)
         and UID cursor_usage-pg.
         • Ensure datasource references match Grafana 13 format:
           "datasource": {"type": "grafana-postgresql-datasource",
         "uid": "devlake-postgres-api"}
   
     2. Synchronize Comparison Dashboards:
         • Sync ai-cost-efficiency.json to include the 7 missing
         Cursor spend panels with PostgreSQL syntax.
         • Sync multi-ai-comparison.json with Cursor Tab Completions
         and LOC/acceptance queries.
     3. Move & Convert Claude Code Dashboards:
         • Move ClaudeCodeAdoption.json and ClaudeCodeAdoptionByUser.
         json into grafana/dashboards/mysql/.
         • Generate their PostgreSQL equivalents in
         grafana/dashboards/postgresql/.
   
   ### How to reproduce
   
   1. Start DevLake using PostgreSQL:
       docker-compose -f docker-compose-dev-postgresql.yml up postgres
     grafana
   
     2. Log into Grafana (http://localhost:3002 or
     http://localhost:4000/grafana).
     3. Search for dashboards:
         • Notice that Cursor Usage is missing.
         • Open AI Cost-Efficiency: notice that Cursor spend panels
         are missing (only 10 panels instead of 17).
         • Open Multi-AI Tool Comparison: notice Cursor metrics are
         missing.
   
   ### Anything else
   
   • Root Cause: PR #9017 added the Cursor plugin and updated MySQL
     dashboards, but did not run convert-mysql-to-postgresql.py or
     generate PostgreSQL dashboards. CI currently does not test
     dashboard parity between MySQL and PostgreSQL.
     • Relevant files:
         • cursor-usage.json
         • ai-cost-efficiency.json vs ai-cost-efficiency.json
         • multi-ai-comparison.json vs multi-ai-comparison.json
         • convert-mysql-to-postgresql.py
   
   ### Version
   
   main (commit a18194b96b5b332a60a74b23d51bacbb4262234d)
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to