Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cpra — CPRA es un sistema de monitoreo de infraestructura de alto rendimiento diseñado para equipos de plataforma que gestionan arquitecturas de microservicios a gran escala. Construido sobre la arquitectura Entity-Component-System (ECS) y principios de teoría de colas, CPRA maneja más de 1,000,000 de verificaciones de salud concurrentes con escalado automático del grupo de trabajadores para cumplir los objetivos de SLO. | Kitploit
Herramientas/GitHubGitHub/ziad-hsn/cpra
Seguridad de Infraestructura en la NubeUtilidades de Propósito GeneralSeguridad de ContenedoresAuditoría de ConfiguraciónSeguridad de RedesDevSecOpsRespuesta a IncidentesDetección de AnomalíasAnálisis de Registros
GitHubziad-hsn/cpra

cpra

14hace 6 mesesAún no revisado
Ver Repositorio
Sitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

CPRA es un sistema de monitoreo de infraestructura de alto rendimiento diseñado para equipos de plataforma que gestionan arquitecturas de microservicios a gran escala. Construido sobre la arquitectura Entity-Component-System (ECS) y principios de teoría de colas, CPRA maneja más de 1,000,000 de verificaciones de salud concurrentes con escalado automático del grupo de trabajadores para cumplir los objetivos de SLO.

Compartir

CPRA - Sistema Concurrente de Pulso, Corrección y Alertas

Go Version License Documentation

Monitoree millones de servicios de forma concurrente con corrección automatizada y escalado dinámico de trabajadores.

CPRA es un sistema de monitoreo de infraestructura de alto rendimiento diseñado para equipos de plataforma que gestionan arquitecturas de microservicios a gran escala. Construido sobre una arquitectura de Entidad-Componente-Sistema (ECS) y principios de teoría de colas, CPRA maneja más de 1.000.000 de comprobaciones de salud concurrentes con escalado automático del pool de trabajadores para cumplir los objetivos de SLO.


Tabla de Contenidos

  • ¿Por qué CPRA?
  • Características Clave
  • Características de Rendimiento
  • Arquitectura
  • Inicio Rápido
  • Instalación
  • Configuración
  • Opciones de Línea de Comandos
  • Documentación
  • Solución de Problemas
  • Contribuir
  • Licencia

  • ¿Por qué CPRA?

    Use CPRA cuando necesite:

    • Monitorear más de 100.000 servicios, contenedores o endpoints concurrentes
    • Corregir fallos automáticamente sin intervención humana
    • Escalar dinámicamente la infraestructura de monitoreo según la carga
    • Lograr una latencia P95 inferior a 100ms desde la detección hasta la alerta
    • Minimizar la huella de memoria (~100 bytes por monitor)

    Características Clave

    🚀 Escalabilidad Masiva

    • Maneja más de 1.000.000 de monitores concurrentes en hardware estándar
    • Escalado lineal con sobrecarga mínima por monitor
    • Diseño eficiente en memoria: ~100 bytes por monitor

    ⚡ Alto Rendimiento

    • Más de 10.000 comprobaciones de salud por segundo por pipeline
    • Latencia P95 inferior a 100ms desde la programación hasta el procesamiento del resultado
    • Procesamiento por lotes y colas libres de bloqueo minimizan la sobrecarga

    🔄 Corrección Automatizada

    • Tres pipelines independientes:
      1. Pulso: Comprobación de salud (HTTP, TCP, ICMP, scripts personalizados)
      2. Intervención: Recuperación automática (reiniciar servicios, escalar recursos, ejecutar scripts)
      3. Código: Alertas y notificaciones (correo electrónico, SMS, webhooks, PagerDuty)

    🧠 Escalado Inteligente

    • Teoría de colas M/M/c: Calcula automáticamente el número óptimo de trabajadores
    • Aproximación de Allen-Cunneen: Maneja la variabilidad de carga del mundo real
    • Dimensionamiento basado en SLO: Escala dinámicamente para cumplir los objetivos de latencia

    🏗️ Arquitectura Orientada a Datos

    • Entidad-Componente-Sistema (ECS) usando mlange-42/ark
    • Diseño de memoria amigable con la caché para máximo rendimiento
    • Asignaciones mínimas y presión sobre el GC

    🔧 Listo para Producción

    • Perfilado pprof integrado para depuración
    • Apagado controlado con cancelación de contexto
    • Registro completo con modo de depuración
    • Gestión de memoria con activación automática del GC

    Características de Rendimiento

    MétricaValor
    Monitores Concurrentes MáximosMás de 1.000.000
    RendimientoMás de 10.000 comprobaciones/seg/pipeline
    Latencia (P95)< 100ms (configurable mediante SLO)
    Memoria por Monitor~100 bytes
    Memoria Total (1M monitores)~100 MB + sobrecarga del pool de trabajadores
    Escalado de TrabajadoresDinámico (basado en M/M/c)

    Consulte Descripción General de la Arquitectura para benchmarks detallados y análisis.


    Arquitectura

    CPRA utiliza una arquitectura de tres pipelines construida sobre principios de Entidad-Componente-Sistema:

    Arquitectura ECS

    Tres Pipelines de Procesamiento Independientes

    Flujo de Pipelines

    1. Pipeline de Pulso: Ejecuta comprobaciones de salud (solicitudes HTTP, conexiones TCP, scripts personalizados)
    2. Pipeline de Intervención: Realiza corrección automatizada cuando los monitores fallan
    3. Pipeline de Código: Envía notificaciones de alerta a sistemas de gestión de incidentes

    Cada pipeline opera de forma independiente con su propia cola y pool de trabajadores escalado dinámicamente, permitiendo:

    • Ajuste específico por pipeline: Configure cada pipeline por separado
    • Aislamiento de fallos: Un fallo en un pipeline no afecta a los demás
    • Escalado independiente: Escale trabajadores según la carga de cada pipeline

    Arquitectura de Cola y Pool de Trabajadores

    Cola y Pool de Trabajadores

    Implementaciones de Cola:

    • HybridQueue: Buffer circular + segmento de desbordamiento para procesamiento FIFO fiable
    • AdaptiveQueue: Buffer circular de autoescalado para carga variable
    • WorkivaQueue: Buffer circular libre de bloqueo para latencia ultrabaja

    Pools de Trabajadores Dinámicos:

    • Impulsados por el pool de gorutinas panjf2000/ants
    • Escalado automático usando teoría de colas M/M/c
    • Mínimo/máximo de trabajadores y objetivos SLO configurables

    Para una explicación completa de la arquitectura, consulte la Descripción General de la Arquitectura.


    Inicio Rápido

    Opción 1: Compilar y Ejecutar Localmente

    root@kitploit:~
    # Requisitos previos: Go 1.25 o superior
    go version  # Debe mostrar go1.25 o superior
    
    # Compilar desde el código fuente
    git clone https://github.com/ziad/cpra.git
    cd cpra
    go build .
    
    # Ejecutar con configuración de ejemplo
    ./cpra --yaml mock-servers/test_10k.yaml
    

    Salida Esperada:

    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)
    

    Instalación

    Requisitos Previos

    • Go 1.25 o superior (descargar)
    • Docker (opcional, para despliegue en contenedor)

    Compilar desde el Código Fuente

    1. Clone el repositorio:

      root@kitploit:~
      git clone https://github.com/ziad/cpra.git
      cd cpra
      
    2. Descargue las dependencias:

      root@kitploit:~
      go mod download
      
    3. Compile la aplicación:

      root@kitploit:~
      go build .
      
    4. Verifique la instalación:

      root@kitploit:~
      ./cpra --help
      

    Despliegue con Docker

    1. Compile la imagen Docker:

      root@kitploit:~
      docker build -f docker/Dockerfile -t cpra:latest .
      
    2. Ejecute el contenedor:

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

    Configuración

    Configuración de Monitores (YAML)

    Cree un archivo monitors.yaml para definir las comprobaciones de salud:

    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
    

    Generación de Configuraciones de Prueba:

    Use mock-servers/generate_monitors.py para generar configuraciones de prueba con cualquier número de monitores.

    Configuración de la Aplicación

    Configure el comportamiento de CPRA mediante programación:

    root@kitploit:~
    package main
    
    import (
        "cpra/internal/controller"
    )
    
    func main() {
        config := controller.DefaultConfig()
    
        // Modo depuración
        config.Debug = true
    
        // Ajustes del pool de trabajadores (aplica a los tres pipelines)
        config.WorkerConfig.MinWorkers = 10
        config.WorkerConfig.MaxWorkers = 500
    
        // Ajustes de cola
        config.QueueCapacity = 131072  // Debe ser potencia de 2
    
        // Ajuste de rendimiento
        config.BatchSize = 2000
        config.SizingServiceTime = 20 * time.Millisecond  // Duración media del trabajo
        config.SizingSLO = 100 * time.Millisecond         // Latencia objetivo
        config.SizingHeadroomPct = 0.15                   // 15% de margen de seguridad
    
        ctrl := controller.NewController(config)
        // ... resto de la inicialización
    }
    

    Consulte la Referencia de la API para conocer todas las opciones de configuración.


    Opciones de Línea de Comandos

    root@kitploit:~
    ./cpra [OPCIONES]
    
    OpciónTipoValor por defectoDescripción
    --yamlstringinternal/loader/replicated_test.yamlRuta del archivo YAML de monitores
    --configstring-Ruta del archivo de configuración (opcional)
    --debugboolfalseHabilita el registro a nivel de depuración
    --pprofbooltrueHabilita el servidor de perfilado pprof
    --pprof.addrstringlocalhost:6060Dirección de escucha del servidor pprof

    Ejemplos:

    root@kitploit:~
    # Ejecutar con registro de depuración
    ./cpra --yaml monitors.yaml --debug
    
    # Ejecutar con puerto pprof personalizado
    ./cpra --yaml monitors.yaml --pprof.addr localhost:8080
    
    # Deshabilitar perfilado
    ./cpra --yaml monitors.yaml --pprof=false
    

    Documentación

    Guías Completas

    • Descripción General de la Arquitectura - Diseño del sistema, diagramas y análisis de rendimiento
    • Referencia de la API - Documentación completa de la API con firmas de funciones
    • Referencia de Tipos - Estructuras de datos y definiciones de componentes
    • Tutorial de Inicio Rápido - Comience en 5-10 minutos
    • Tareas Comunes - Guías prácticas para operaciones típicas

    Recursos Adicionales

    • Primeros Pasos - Guía detallada de configuración y despliegue

    Solución de Problemas

    Problemas Comunes

    Problema: Archivo YAML no encontrado

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

    Solución: Verifique que la ruta del archivo sea correcta. Use rutas absolutas o relativas al lugar donde ejecuta el binario:

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

    Problema: La compilación falla con error de versión de Go

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

    Solución: Actualice Go a la versión 1.25 o superior:

    root@kitploit:~
    go version  # Verifique la versión actual
    # Descargue Go 1.25+ desde https://go.dev/dl/
    

    Problema: Uso elevado de memoria Solución: Verifique el uso de memoria con pprof:

    root@kitploit:~
    # Mientras CPRA está en ejecución, acceda a pprof
    go tool pprof http://localhost:6060/debug/pprof/heap
    
    # Vea los principales consumidores de memoria
    (pprof) top
    

    Ajuste los límites de memoria en la configuración:

    root@kitploit:~
    config.WorkerConfig.MaxWorkers = 200  // Reduzca el máximo de trabajadores
    config.QueueCapacity = 65536          // Reduzca el tamaño de la cola
    

    Problema: El pool de trabajadores no escala Solución: Habilite el registro de depuración para ver las decisiones de escalado:

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

    Revise los parámetros de teoría de colas:

    root@kitploit:~
    config.SizingServiceTime = 50 * time.Millisecond  // Aumente si los trabajos tardan más
    config.SizingSLO = 200 * time.Millisecond         // Relaje el SLO si es necesario
    

    Problema: Los monitores no se ejecutan Solución: Verifique el formato de configuración de los monitores y revise los registros:

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

    Valide la sintaxis YAML:

    root@kitploit:~
    # Use un validador YAML
    python -m yaml monitors.yaml
    

    Obtener Ayuda

    • Documentación: Consulte la carpeta docs/ para guías detalladas
    • Incidencias: Abra una incidencia para errores o solicitudes de funciones
    • Discusiones: Haga preguntas y comparta ideas en los Debates de GitHub
    • Registros: Siempre proporcione registros al informar problemas (use la bandera --debug)

    Contribuir

    ¡Agradecemos las contribuciones de la comunidad! CPRA es un proyecto de código abierto y valoramos:

    • 🐛 Informes y correcciones de errores
    • ✨ Solicitudes e implementaciones de funciones
    • 📖 Mejoras en la documentación
    • 🧪 Ampliación de la cobertura de pruebas
    • 💡 Optimizaciones de rendimiento

    Primeros Pasos:

    1. Busque incidencias etiquetadas como good first issue
    2. Haga un fork del repositorio y envíe una solicitud de extracción

    Recursos de Desarrollo:

    • Descripción General de la Arquitectura - Comprenda el diseño del sistema
    • Referencia de la API - Firmas de funciones y uso

    Licencia

    Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.


    Agradecimientos

    CPRA está construido sobre excelentes bibliotecas de código abierto:

    • mlange-42/ark - Sistema Entidad-Componente de alto rendimiento
    • panjf2000/ants - Pool de gorutinas con escalado dinámico
    • Workiva/go-datastructures - Estructuras de datos libres de bloqueo
    • uber-go/zap - Registro estructurado

    Documentación • Arquitectura • Incidencias

    Construido con ❤️ para equipos de plataforma que gestionan infraestructura a gran escala

    Descargar herramienta