eBPF_Write_Hooks_Analysis/README.md
2026-01-18 17:11:13 +00:00

75 lines
No EOL
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# eBPF Write Hooks Analysis
## Überblick
Dieses Experiment mit dem Schlüssel **eBPF_Write_Hooks_Analysis** untersucht die Funktionsweise und Auswirkungen der write_pre- und write_post-Hooks unter Einsatz von eBPF-Instrumentierung. Ziel ist es, das Schreibverhalten und dessen Einfluss auf Lesevorgänge detailliert zu analysieren.
**Link zum Artikel:** [https://donau2space.de/tag-122-1747-klarer-himmel-ueber-passau-und-ich-hake-die-write_pre-write_post-hooks-direkt-an-die-stores/](https://donau2space.de/tag-122-1747-klarer-himmel-ueber-passau-und-ich-hake-die-write_pre-write_post-hooks-direkt-an-die-stores/)
**Git-Repository:** [https://git.donau2space.de/Mika/eBPF_Write_Hooks_Analysis](https://git.donau2space.de/Mika/eBPF_Write_Hooks_Analysis)
### Hinweis
Alle Inhalte wurden per KI generiert. Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich und auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
## Inhalt des Repositories
Dieses Repository enthält Python-Analysetools und ein Web-Frontend zur Visualisierung der Ergebnisse.
### Artefakte
#### 1. trace_agg.py
- **Art:** Python-Skript
- **Ziel:** Linux Userspace
- **Sprachen:** Python
- **Zweck:** Analyse der eBPF-Trace-Daten mit Fokus auf write_pre- und write_post-Hooks.
- **API-Funktionen:**
- `analyze_trace(trace_data)` → führt eine Analyse der Trace-Daten durch und liefert Analyseergebnisse.
- **Datenstruktur:**
- `TraceData (JSON)` mit den Feldern `corr_id`, `event_type`, `timestamp`.
#### 2. marker_analysis
- **Art:** Python-Skript
- **Ziel:** Linux Userspace
- **Sprachen:** Python
- **Zweck:** Validierung der Marker und Untersuchung retry-freier Reads.
- **API-Funktionen:**
- `validate_markers(marker_data)` → prüft Marker-Daten und gibt Validierungsergebnisse zurück.
- **Datenstruktur:**
- `MarkerData (JSON)` mit den Feldern `marker_id`, `timestamp`, `status`.
#### 3. results_visualization
- **Art:** Web-UI
- **Ziel:** Webbrowser
- **Sprachen:** HTML, CSS, JavaScript
- **Zweck:** Darstellung der Analyseergebnisse der Write- und Read-Operationen.
- **Routen:**
- `/analyze_results (GET)` → lädt Analyseergebnisse für die Anzeige im Web-Frontend.
## Voraussetzungen (Webserver/DB)
Für die Visualisierung ist ein Webserver (z.B. Nginx oder Apache) erforderlich. Eine Datenbank ist optional und nur bei Bedarf zur Speicherung historischer Analysedaten nötig.
## Starten der Anwendung
1. Python ≥ 3.8 installieren.
2. Erforderliche Pakete installieren (`pip install -r requirements.txt`).
3. Analyse durchführen:
- `python trace_agg.py`
- `python marker_analysis`
4. Webserver starten und die HTML-Dateien aus `results_visualization/` bereitstellen.
## Typische Use-Cases
- Untersuchung von eBPF-Hook-Aktivitäten bei Schreibvorgängen.
- Validierung der Marker-Daten auf Integrität und Korrelation.
- Visualisierung von Trace-Zeiten, Latenzen und Korrelationen zwischen Write- und Read-Prozessen.
- Integration eigener eBPF-Datenquellen für performanceorientierte Analysen.
## Struktur & mögliche Erweiterungen
- **analysis/** enthält Python-Skripte zur Trace-Auswertung.
- **results_visualization/** statische Webanwendung zur Darstellung der Ergebnisse.
- **data/** Eingabe- und Beispiel-Traces.
Künftige Erweiterungen können die Unterstützung zusätzlicher Hook-Typen (z.B. read_pre/read_post) oder automatisierte Reportgenerierung umfassen.
## Lizenz
Dieses Projekt steht unter der **MIT-Lizenz**.
---
*Hinweis:* Alle Inhalte dieser README sowie die Projektdateien wurden automatisch durch KI generiert. Die Nutzung erfolgt ausschließlich auf eigene Verantwortung.