Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cpra — CPRA ist ein Hochleistungs-Infrastrukturüberwachungssystem, das für Plattformteams entwickelt wurde, die groß angelegte Microservice-Architekturen verwalten. Basierend auf Entity-Component-System (ECS)-Architektur und Warteschlangentheorie-Prinzipien bewältigt CPRA über 1.000.000 gleichzeitige Health Checks mit automatischer Worker-Pool-Skalierung, um SLO-Ziele zu erreichen. | Kitploit
Tools/GitHubGitHub/ziad-hsn/cpra
Cloud-Infrastruktur-SicherheitAllgemeine DienstprogrammeContainer-SicherheitKonfigurationsprüfungNetzwerksicherheitDevSecOpsIncident ResponseAnomalieerkennungLog-Analyse
GitHubziad-hsn/cpra

cpra

Repository anzeigen
14vor 6 MonatenNoch nicht geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

CPRA ist ein Hochleistungs-Infrastrukturüberwachungssystem, das für Plattformteams entwickelt wurde, die groß angelegte Microservice-Architekturen verwalten. Basierend auf Entity-Component-System (ECS)-Architektur und Warteschlangentheorie-Prinzipien bewältigt CPRA über 1.000.000 gleichzeitige Health Checks mit automatischer Worker-Pool-Skalierung, um SLO-Ziele zu erreichen.

Teilen

CPRA - Concurrent Pulse-Remediation-Alerting System

Go Version License Documentation

Überwachen Sie Millionen von Diensten gleichzeitig mit automatisierter Behebung und dynamischer Worker-Skalierung.

CPRA ist ein leistungsstarkes Infrastruktur-Überwachungssystem für Plattform-Teams, die große Microservice-Architekturen verwalten. Basierend auf einer Entity-Component-System (ECS)-Architektur und Prinzipien der Warteschlangentheorie bewältigt CPRA über 1.000.000 gleichzeitige Health Checks bei automatischer Worker-Pool-Skalierung, um SLO-Ziele zu erreichen.


Inhaltsverzeichnis

  • Warum CPRA?
  • Hauptfunktionen
  • Leistungsmerkmale
  • Architektur
  • Schnellstart
  • Installation
  • Konfiguration
  • Kommandozeilenoptionen
  • Dokumentation
  • Fehlerbehebung
Mitwirken
  • Lizenz

  • Warum CPRA?

    Verwenden Sie CPRA, wenn Sie:

    • 100.000+ gleichzeitige Dienste, Container oder Endpunkte überwachen müssen
    • Ausfälle automatisch ohne menschliches Eingreifen beheben möchten
    • Überwachungsinfrastruktur dynamisch basierend auf der Last skalieren wollen
    • Eine P95-Latenz von unter 100 ms von Erkennung bis Alarmierung erreichen möchten
    • Den Speicherverbrauch minimieren wollen (~100 Bytes pro Monitor)

    Hauptfunktionen

    🚀 Massive Skalierbarkeit

    • Verarbeitet 1.000.000+ gleichzeitige Monitore auf Standardhardware
    • Lineare Skalierung mit minimalem Overhead pro Monitor
    • Speichereffizientes Design: ~100 Bytes pro Monitor

    ⚡ Hohe Leistung

    • 10.000+ Health Checks pro Sekunde pro Pipeline
    • P95-Latenz < 100 ms von Planung bis Ergebnisverarbeitung
    • Batch-Verarbeitung und lock-freie Warteschlangen minimieren Overhead

    🔄 Automatisierte Behebung

    • Drei unabhängige Pipelines:
      1. Pulse: Health Checking (HTTP, TCP, ICMP, benutzerdefinierte Skripte)
      2. Intervention: Automatisierte Wiederherstellung (Dienste neu starten, Ressourcen skalieren, Skripte ausführen)
      3. Code: Alarmierung und Benachrichtigungen (E-Mail, SMS, Webhooks, PagerDuty)

    🧠 Intelligente Skalierung

    • M/M/c-Warteschlangentheorie: Berechnet automatisch die optimale Worker-Anzahl
    • Allen-Cunneen-Näherung: Berücksichtigt reale Arbeitslastvariabilität
    • SLO-basierte Größenanpassung: Dynamische Skalierung zur Erreichung von Latenzzielen

    🏗️ Datenorientierte Architektur

    • Entity-Component-System (ECS) mit mlange-42/ark
    • Cache-freundliches Speicherlayout für maximale Leistung
    • Minimale Allokationen und GC-Druck

    🔧 Produktionsreif

    • Integriertes pprof-Profiling zur Fehlersuche
    • Graceful Shutdown mit Context-Cancellation
    • Umfassendes Logging mit Debug-Modus
    • Speicherverwaltung mit automatischem GC-Trigger

    Leistungsmerkmale

    MetrikWert
    Max. gleichzeitige Monitore1.000.000+
    Durchsatz10.000+ Checks/s/Pipeline
    Latenz (P95)< 100 ms (über SLO konfigurierbar)
    Speicher pro Monitor~100 Bytes
    Gesamtspeicher (1 M Monitore)~100 MB + Worker-Pool-Overhead
    Worker-SkalierungDynamisch (M/M/c-basiert)

    Siehe Architekturübersicht für detaillierte Benchmarks und Analysen.


    Architektur

    CPRA verwendet eine Drei-Pipeline-Architektur basierend auf Entity-Component-System-Prinzipien:

    ECS Architektur

    Drei unabhängige Verarbeitungspipelines

    Pipeline Fluss

    1. Pulse-Pipeline: Führt Health Checks aus (HTTP-Anfragen, TCP-Verbindungen, benutzerdefinierte Skripte)
    2. Intervention-Pipeline: Führt automatisierte Behebung bei Monitor-Ausfällen durch
    3. Code-Pipeline: Sendet Alarmbenachrichtigungen an Incident-Management-Systeme

    Jede Pipeline arbeitet unabhängig mit eigener Warteschlange und dynamisch skaliertem Worker-Pool, was Folgendes ermöglicht:

    • Pipeline-spezifische Tuning: Konfiguration jeder Pipeline separat
    • Fehlerisolation: Ein Pipeline-Ausfall beeinträchtigt andere nicht
    • Unabhängige Skalierung: Worker basierend auf der Last pro Pipeline skalieren

    Warteschlangen- und Worker-Pool-Architektur

    Warteschlangen- und Worker-Pool

    Warteschlangen-Implementierungen:

    • HybridQueue: Ringpuffer + Overflow-Slice für zuverlässige FIFO-Verarbeitung
    • AdaptiveQueue: Selbstskalierender Ringpuffer für variable Last
    • WorkivaQueue: Lock-freier Ringpuffer für extrem niedrige Latenz

    Dynamische Worker-Pools:

    • Angetrieben durch panjf2000/ants Goroutine-Pool
    • Automatische Skalierung mittels M/M/c-Warteschlangentheorie
    • Konfigurierbare Min-/Max-Worker und SLO-Ziele

    Eine umfassende Architekturerklärung finden Sie in der Architekturübersicht.


    Schnellstart

    Option 1: Lokal bauen und ausführen

    root@kitploit:~
    # Voraussetzungen: Go 1.25 oder höher
    go version  # Sollte go1.25 oder höher anzeigen
    
    # Aus dem Quellcode bauen
    git clone https://github.com/ziad/cpra.git
    cd cpra
    go build .
    
    # Mit Beispielkonfiguration ausführen
    ./cpra --yaml mock-servers/test_10k.yaml
    

    Erwartete Ausgabe:

    root@kitploit:~
    Starting CPRA Optimized Controller for 1M Monitors
    Profiling server listening at http://localhost:6060/debug/pprof/
    Loading monitors from mock-servers/test_10k.yaml...
    Monitor loading completed in 1.2s
    [INFO] Controller started successfully
    [INFO] Pulse pipeline processing 10,000 monitors
    [INFO] Worker pool scaled to 143 workers (target SLO: 100ms)
    

    Installation

    Voraussetzungen

    • Go 1.25 oder höher (Download)
    • Docker (optional, für containerisierten Einsatz)

    Aus dem Quellcode bauen

    1. Repository klonen:

      root@kitploit:~
      git clone https://github.com/ziad/cpra.git
      cd cpra
      
    2. Abhängigkeiten herunterladen:

      root@kitploit:~
      go mod download
      
    3. Anwendung bauen:

      root@kitploit:~
      go build .
      
    4. Installation überprüfen:

      root@kitploit:~
      ./cpra --help
      

    Docker-Einsatz

    1. Docker-Image bauen:

      root@kitploit:~
      docker build -f docker/Dockerfile -t cpra:latest .
      
    2. Container ausführen:

      root@kitploit:~
      docker run -it --rm \
        -v $(pwd)/my-monitors.yaml:/app/monitors.yaml \
        cpra:latest \
        ./cpra --yaml monitors.yaml
      

    Konfiguration

    Monitor-Konfiguration (YAML)

    Erstellen Sie eine monitors.yaml-Datei zur Definition von Health Checks:

    root@kitploit:~
    monitors:
      - name: "my-service-health-check"
        pulse_check:
          type: http
          interval: 30s
          timeout: 5s
          max_failures: 3
          config:
            method: GET
            url: http://my-service.example.com/health
            retries: 2
        intervention:
          action: docker
          config:
            container: my-service-container
            action: restart
        codes:
          red:
            dispatch: true
            notify: pagerduty
            config:
              url: https://events.pagerduty.com/v2/enqueue
          yellow:
            dispatch: true
            notify: log
            config:
              file: /var/log/cpra-alerts.log
    

    Testkonfigurationen generieren:

    Verwenden Sie mock-servers/generate_monitors.py, um Testkonfigurationen mit beliebig vielen Monitoren zu generieren.

    Anwendungskonfiguration

    Konfigurieren Sie das CPRA-Verhalten programmatisch:

    root@kitploit:~
    package main
    
    import (
        "cpra/internal/controller"
    )
    
    func main() {
        config := controller.DefaultConfig()
    
        // Debug-Modus
        config.Debug = true
    
        // Worker-Pool-Einstellungen (gilt für alle drei Pipelines)
        config.WorkerConfig.MinWorkers = 10
        config.WorkerConfig.MaxWorkers = 500
    
        // Warteschlangen-Einstellungen
        config.QueueCapacity = 131072  // Muss eine Zweierpotenz sein
    
        // Leistungs-Tuning
        config.BatchSize = 2000
        config.SizingServiceTime = 20 * time.Millisecond  // Durchschnittliche Job-Dauer
        config.SizingSLO = 100 * time.Millisecond         // Ziellatenz
        config.SizingHeadroomPct = 0.15                   // 15% Sicherheitspuffer
    
        ctrl := controller.NewController(config)
        // ... Rest der Initialisierung
    }
    

    Die vollständigen Konfigurationsoptionen finden Sie in der API-Referenz.


    Kommandozeilenoptionen

    root@kitploit:~
    ./cpra [OPTIONEN]
    
    OptionTypStandardBeschreibung
    --yamlstringinternal/loader/replicated_test.yamlPfad zur Monitor-YAML-Datei
    --configstring-Pfad zur Konfigurationsdatei (optional)
    --debugboolfalseDebug-Level-Logging aktivieren
    --pprofbooltruePprof-Profiling-Server aktivieren
    --pprof.addrstringlocalhost:6060Pprof-Server-Listenadresse

    Beispiele:

    root@kitploit:~
    # Mit Debug-Logging ausführen
    ./cpra --yaml monitors.yaml --debug
    
    # Mit benutzerdefiniertem pprof-Port ausführen
    ./cpra --yaml monitors.yaml --pprof.addr localhost:8080
    
    # Profiling deaktivieren
    ./cpra --yaml monitors.yaml --pprof=false
    

    Dokumentation

    Umfassende Anleitungen

    • Architekturübersicht - Systemdesign, Diagramme und Leistungsanalyse
    • API-Referenz - Vollständige API-Dokumentation mit Funktionssignaturen
    • Typen-Referenz - Datenstrukturen und Komponentendefinitionen
    • Schnellstart-Tutorial - In 5-10 Minuten loslegen
    • Häufige Aufgaben - Anleitungen für typische Vorgänge

    Zusätzliche Ressourcen

    • Erste Schritte - Detaillierte Setup- und Bereitstellungsanleitung

    Fehlerbehebung

    Häufige Probleme

    Problem: YAML-Datei nicht gefunden

    root@kitploit:~
    Warning: YAML file monitors.yaml not found, starting without loading monitors
    

    Lösung: Überprüfen Sie den Dateipfad. Verwenden Sie absolute Pfade oder Pfade relativ zum Ausführungsort der Binärdatei:

    root@kitploit:~
    ./cpra --yaml $(pwd)/monitors.yaml
    

    Problem: Build fehlgeschlagen mit Go-Versionsfehler

    root@kitploit:~
    go.mod requires go >= 1.25
    

    Lösung: Aktualisieren Sie Go auf Version 1.25 oder höher:

    root@kitploit:~
    go version  # Aktuelle Version prüfen
    # Go 1.25+ von https://go.dev/dl/ herunterladen
    

    Problem: Hohe Speichernutzung Lösung: Überprüfen Sie die Speichernutzung mit pprof:

    root@kitploit:~
    # Während CPRA läuft, auf pprof zugreifen
    go tool pprof http://localhost:6060/debug/pprof/heap
    
    # Top-Speicherverbraucher anzeigen
    (pprof) top
    

    Speichergrenzen in der Konfiguration anpassen:

    root@kitploit:~
    config.WorkerConfig.MaxWorkers = 200  // Maximale Worker reduzieren
    config.QueueCapacity = 65536          // Warteschlangengröße reduzieren
    

    Problem: Worker-Pool skaliert nicht Lösung: Aktivieren Sie Debug-Logging, um Skalierungsentscheidungen zu sehen:

    root@kitploit:~
    ./cpra --yaml monitors.yaml --debug
    

    Warteschlangentheorie-Parameter überprüfen:

    root@kitploit:~
    config.SizingServiceTime = 50 * time.Millisecond  // Erhöhen, wenn Jobs länger dauern
    config.SizingSLO = 200 * time.Millisecond         // SLO lockern, falls nötig
    

    Problem: Monitore werden nicht ausgeführt Lösung: Überprüfen Sie das Format der Monitor-Konfiguration und die Logs:

    root@kitploit:~
    ./cpra --yaml monitors.yaml --debug 2>&1 | grep ERROR
    

    YAML-Syntax validieren:

    root@kitploit:~
    # YAML-Validator verwenden
    python -m yaml monitors.yaml
    

    Hilfe erhalten

    • Dokumentation: Durchsuchen Sie den docs/-Ordner nach detaillierten Anleitungen
    • Issues: Eröffnen Sie ein Issue für Fehler oder Feature-Wünsche
    • Diskussionen: Stellen Sie Fragen und teilen Sie Ideen in GitHub Discussions
    • Logs: Geben Sie bei Fehlermeldungen immer Logs an (mit --debug-Flag)

    Mitwirken

    Wir begrüßen Beiträge aus der Community! CPRA ist ein Open-Source-Projekt und wir schätzen:

    • 🐛 Fehlermeldungen und Fehlerbehebungen
    • ✨ Feature-Wünsche und Implementierungen
    • 📖 Verbesserungen der Dokumentation
    • 🧪 Erweiterung der Testabdeckung
    • 💡 Leistungsoptimierungen

    Erste Schritte:

    1. Suchen Sie nach Issues mit dem Label good first issue
    2. Forken Sie das Repository und reichen Sie einen Pull Request ein

    Entwicklungsressourcen:

    • Architekturübersicht - Systemdesign verstehen
    • API-Referenz - Funktionssignaturen und Nutzung

    Lizenz

    Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe LICENSE-Datei für Details.


    Danksagungen

    CPRA basiert auf hervorragenden Open-Source-Bibliotheken:

    • mlange-42/ark - Hochleistungs-Entity-Component-System
    • panjf2000/ants - Goroutine-Pool mit dynamischer Skalierung
    • Workiva/go-datastructures - Lock-freie Datenstrukturen
    • uber-go/zap - Strukturiertes Logging

    Dokumentation • Architektur • Issues

    Mit ❤️ gebaut für Plattform-Teams, die große Infrastruktur verwalten

    Tool herunterladen