diff --git a/README.md b/README.md new file mode 100644 index 0000000..4ee5061 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# Run Set Analysis N=40 + +## Überblick +Dieses Repository enthält das Experiment **run_set_analysis_n40**. Ziel ist die Durchführung und Analyse von Run-Sets mit einer Stichprobengröße von N=40 zur Klassifikation von Retry-Verhalten und Stabilität in Schritt-Sequenzen. + +**Artikel:** [https://donau2space.de/tag-123-1341-klarer-himmel-ueber-passau-und-ich-ziehe-das-n40-run-set-endlich-durch/](https://donau2space.de/tag-123-1341-klarer-himmel-ueber-passau-und-ich-ziehe-das-n40-run-set-endlich-durch/) +**Git Repository:** [https://git.donau2space.de/Mika/run_set_analysis_n40](https://git.donau2space.de/Mika/run_set_analysis_n40) + +### Hinweis +Alle Inhalte wurden per KI generiert. +Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert. + +## Inhalt des Repositories +Das Repository umfasst zwei Hauptartefakte: + +### 1. trace_agg +- **Art:** Python-Skript (`python_script`) +- **Zielumgebung:** Linux Userspace +- **Sprachen:** Python +- **Zweck:** Durchführung von Analysen zur Klassifikation von Retries und Fensterzeiten pro Run. + +**API-Funktionen:** +- **classify_runs(run_data)** → Klassifiziert einzelne Runs basierend auf Retry- und Fensterstatistiken. +- **compute_spearman_correlation(retry_count, window_duration)** → Berechnet den Spearman-Korrelationskoeffizienten zwischen Retry-Häufigkeit und Fensterdauer. +- **calculate_edit_distance(step_sequence, pinned_median_sequence)** → Berechnet die Abstandsmetrik zwischen Schrittsequenzen und einer Median-Referenzsequenz. + +**Datenstrukturen:** +- **RunData (json)**: Felder `run_id`, `retry_free_reads`, `window_duration` +- **ClassificationResults (json)**: Felder `run_id`, `step_stability_score`, `correlation_coefficient` + +### 2. results_visualization +- **Art:** Web-Oberfläche (`web_ui`) +- **Zielumgebung:** Webbrowser +- **Sprachen:** HTML, CSS, JavaScript +- **Zweck:** Interaktive Visualisierung der Analyseergebnisse in Diagrammform. + +**API-Funktionen:** +- **fetch_results()** → Ruft aktuelle Analyseergebnisse ab und stellt sie für die Visualisierung bereit. + +**Routen:** +- `GET /api/results` → Liefert aktuelle Analyseergebnisse im JSON-Format. + +**JavaScript-Module:** +- `chart.js` für die Darstellung der Diagramme. + +## Voraussetzungen +Für die Weboberfläche wird ein moderner Webbrowser benötigt. Optional kann ein lokaler Webserver (z. B. nginx, Apache oder Python HTTP-Server) eingesetzt werden, um die Visualisierungsseite bereitzustellen. + +Zur Ausführung des Analyse-Skripts wird Python 3.9 oder höher empfohlen. + +## Installation & Nutzung + +### Python-Skript ausführen +1. Repository klonen: + ```bash + git clone https://git.donau2space.de/Mika/run_set_analysis_n40.git + cd run_set_analysis_n40 + ``` +2. Abhängigkeiten installieren: + ```bash + pip install -r requirements.txt + ``` +3. Analyse starten: + ```bash + python trace_agg.py input/run_data.json + ``` + +### Web-UI starten +1. In das Webverzeichnis wechseln: + ```bash + cd results_visualization + ``` +2. Lokalen Server starten: + ```bash + python3 -m http.server 8080 + ``` +3. Web-UI im Browser öffnen: [http://localhost:8080](http://localhost:8080) + +## Typische Use-Cases +- Analyse von Run-Sets mit Fokus auf Retry-Mustern und Stabilität. +- Vergleich von Schrittsequenzen auf Abweichungen. +- Überwachung von Test- oder Produktionsläufen hinsichtlich Zuverlässigkeit. +- Visualisierung von Korrelationen und Abweichungen im Zeitverlauf. + +## Struktur & Erweiterbarkeit +- **trace_agg.py:** Zentrale Analyselogik mit erweiterbarer API. +- **results_visualization/:** Weboberfläche zur Ergebnisauswertung. +- Erweiterungspotenzial: + - Neue Klassifikationsmetriken im Python-Skript. + - Zusätzliche Diagrammtypen in der Web-UI. + - Integration weiterer Datenquellen. + +## Lizenz +Dieses Projekt steht unter der **MIT-Lizenz**. + +*Hinweis:* Alle Inhalte wurden automatisch generiert. Verwendung und Modifikation auf eigenes Risiko. \ No newline at end of file