Skip to content

Issue #12: Complete Performance Benchmark Integration - #26

Merged
peter7775 merged 9 commits into
mainfrom
feature/issue-12-performance-benchmark
Aug 11, 2026
Merged

Issue #12: Complete Performance Benchmark Integration#26
peter7775 merged 9 commits into
mainfrom
feature/issue-12-performance-benchmark

Conversation

@peter7775

@peter7775 peter7775 commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

Completes issue #12 (Performance Benchmark Integration) by building on existing work in main.

What has been added

  • Config fixes: fixed silent ParseDuration fallbacks (realtime/graph mapper config), example performance: section in config/config.yml.
  • Persistence of benchmark results: new BenchmarkResultStorePort + JSONL file implementation, connected to BenchmarkService; /api/performance/data/history returns actual history.
  • Custom query benchmarks: configurable query sets (performance.benchmarks.custom_queries), new CustomQueryAdapter (safely restricted to SELECT/INSERT/UPDATE), registered as a custom tool.
  • Graph performance overlay: a toggle in the main graph (/) to display performance metrics (node size/colour, edge thickness/colour, hotspot highlighting) over /api/performance/data/graph.
  • Bug fix: /api/performance/data/graph and include_graph=true always returned an empty/503 status because baseGraph was never populated with real data from Neo4j – fixed.
  • Reporting and export: new endpoints GET /api/performance/reports/summary and GET /api/performance/export?format=json|csv.
  • Tests and documentation: unit tests for the performance package and API handlers, integration test for PerformanceSchemaAdapter (gated INTEGRATION_TESTS=true), docs/performance/README.md.

Verification

  • make build
  • make test
  • go vet ./...

peter7775 and others added 9 commits June 16, 2026 01:00
Adds a Performance overlay toggle and metric selector (latency,
queries/sec, hotspot score, load score) to the main vis-network graph
view. When enabled, it fetches /api/performance/data/graph and maps
node/edge performance metrics onto the existing vis-network dataset:
node size/color and hotspot border highlighting driven by the selected
metric, edge thickness by query_frequency and edge color by latency/
performance_rank. Original node/edge visuals are captured up front and
restored exactly when the overlay is disabled.

Matching between the domain graph (/api/graph, Neo4j ids) and the
performance graph (table/label-derived ids) is best-effort (explicit
id property, then table_name, then unique label) and gracefully no-ops
for any node/edge that can't be confidently matched, with no thrown
JS errors.

The fetch also falls back across ports since in local development the
visualization server and the API server (which hosts
/api/performance/*) listen on different ports; in single-port
deployments the relative path is used directly.

Only internal/interfaces/web/templates/visualization.html and
internal/interfaces/web/static/js/visualization.js were touched; no Go
files were modified.

Co-Authored-By: Oz <oz-agent@warp.dev>
@peter7775
peter7775 merged commit dd97fe6 into main Aug 11, 2026
5 of 7 checks passed
@peter7775
peter7775 deleted the feature/issue-12-performance-benchmark branch August 11, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant