Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DMPM – Dashboard Metrics Performance Manager

License: MIT Version

DMPM Logo

A self-hosted web dashboard for importing, storing, and comparing Gatling and k6 load test reports over time.

Upload Gatling .zip/.tar.gz archives or k6-reporter .html files and get a timeline of performance metrics, assertion results, SLA tracking, regression detection, ticket traceability, and webhook notifications for Slack, Microsoft Teams, or any HTTP endpoint.


Features

Category Feature
Import Drag & drop Gatling .zip/.tar.gz reports or k6-reporter .html files; tag with environment, version, notes, and ticket URL at upload time
Multi-tool Gatling and k6 side by side, auto-detected on import; tool badge shown per simulation
Multi-simulation Groups runs by simulation name; sidebar navigation with semaphore indicator and latest p95 / error rate
Timeline Interactive line chart — p50 / p95 / p99 / rps; click legend to toggle lines; SLA reference lines; baseline marker
PASS / FAIL Parses Gatling assertions or k6 thresholds; per-simulation semaphore in sidebar
SLA Configurable p95 and p99 thresholds per simulation; rows and chart points highlighted when breached
Baseline pin Pin any run as baseline; delta column compares all runs vs baseline; vertical marker in chart
Regression detection Auto banner when the latest run's p95 exceeds the 5-run rolling average by more than 20%
Request breakdown Expandable per-run sub-table with per-request metrics sorted alphabetically; sub-path requests hidden to reduce noise
Executive Summary Collapsible card — Manager view (pass rate, p95 trend) and TL view (min/max p95, avg error rate, avg throughput). All metrics respect active filters.
Filters Filter by period (7d / 30d / custom date range), status (PASS/FAIL), environment, and ticket URL; URL-shareable state
Ticket traceability Link each run to a JIRA or Azure DevOps work item; badge shown in table and comparison dialog
Side-by-side compare Select two runs → full-screen split panel with both original HTML reports in iframes
Webhooks Per-simulation webhook with Slack Block Kit, Microsoft Teams Adaptive Cards, or Generic JSON payloads; enriched with full performance metrics
Export CSV Download filtered runs as CSV including all metrics, metadata, ticket, and baseline flag
Metadata editing Edit version, environment, notes, and ticket URL for any run after import
Pagination Table paginates at 20 runs per page

Screenshots

DMPM – Timeline & Executive Summary

DMPM – All Runs Table


Tech Stack

Backend — Node.js 20 + TypeScript, Express, cheerio (report parsing), adm-zip / tar, lowdb 1, multer.

Frontend — React 18 + TypeScript + Vite, Tailwind CSS + shadcn/ui, Recharts, TanStack Query v5, react-dropzone.

Infrastructure — Docker + Docker Compose, nginx (serves the frontend build, proxies /api/), named Docker volume for persistence.


Quick Start

Prerequisites

  • Docker ≥ 24 and Docker Compose v2

Run

git clone https://github.com/rcampos09/Dashboard-Metrics-Performance-Manager.git
cd Dashboard-Metrics-Performance-Manager
docker compose up --build

Open http://localhost:3000.

Import a report

Gatling — compress the report directory and upload it via the UI or curl:

# From inside target/gatling/
cd your-gatling-project/target/gatling
zip -r /tmp/run.zip crudsimulation-20260301053047242/

curl -X POST http://localhost:3000/api/reports/upload \
  -F "file=@/tmp/run.zip" \
  -F "environment=staging" \
  -F "version=v1.2.3"

k6 — upload the k6-reporter HTML directly, no compression needed:

curl -X POST http://localhost:3000/api/reports/upload \
  -F "file=@report.html" \
  -F "environment=staging"

See Report Formats for how each report is detected and parsed, including how to generate the k6-reporter HTML.

Local development (without Docker)

cd backend  && npm install && npm run dev   # ts-node-dev on :3001
cd frontend && npm install && npm run dev   # Vite on :5173, proxies /api to :3001

Documentation

Doc Covers
Feature Reference Metrics glossary, filters, SLA configuration, ticket traceability
Webhooks Destination types, payload examples, delivery behavior, testing
API Reference REST endpoints and the Run/RequestMetrics data model
Report Formats How Gatling and k6 reports are detected and parsed, field-by-field
Architecture Project structure and the report-ingestion pipeline
Changelog Version history and development practices

License

MIT


Author

Rodrigo Campos 📧 rcampos.tapia@gmail.com 🌐 rodrigo-campos.dev

About

Self-hosted dashboard to import, store, and compare Gatling/K6 load test reports. Timeline charts, SLA tracking, regression detection, webhook notifications (Slack/MSTeams), and ticket traceability (JIRA / Azure DevOps).

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages