CASO 02 / Infraestructura

Laboratorio de observabilidad en Linux y contenedores

Desde métricas de kernel y cgroups hasta un servicio en Rust y Grafana: seguimiento del uso de recursos en toda la pila.

Contexto
Laboratorio académico · Proyecto individual
Mi rol
Implementación integral
Periodo
2025
Estado
Laboratorio académico implementado
Arquitectura general · relaciones simplificadas
  1. Kernel + cgroups
  2. JSON en /proc
  3. Servicio en Rust
  4. FastAPI
  5. Grafana

El problema

Un panel de contenedores es útil, pero quise trabajar más cerca de la fuente de las mediciones. Este proyecto individual de Sistemas Operativos 1 sigue información de CPU, memoria e I/O desde Linux hasta un sistema pequeño de monitoreo y gestión de carga.

Mi contribución

Implementé el proyecto de extremo a extremo: módulo de kernel en C, servicio en Rust, scripts de carga, API en Python e integración de visualización. Es un laboratorio académico de Linux, no un producto de monitoreo en producción.

Arquitectura técnica

El módulo de kernel expone JSON mediante una entrada personalizada en /proc. Usa trabajo diferido para muestreo de CPU del host e inspecciona cgroups para asociar estadísticas de recursos con cargas Docker.

La implementación lee interfaces como cpu.stat, memory.current e io.stat. Un proceso en Rust consume la información estructurada, coordina tareas concurrentes y registra acciones de gestión de carga. FastAPI expone esos datos para visualización en Grafana.

Gestión de carga

Bash crea cargas controladas de estrés en contenedores. El servicio en Rust reconoce categorías de estrés y puede detener cargas duplicadas del mismo tipo. Un log compartido se protege con primitivas de sincronización para evitar escrituras inseguras en concurrencia.

Este comportamiento corresponde a lógica de control de carga del laboratorio. No es un sistema de detección de amenazas ni un agente de respuesta en endpoints.

Resultados y limitaciones

El repositorio incluye módulo, servicio, API, scripts y una vista de Grafana documentada. En conjunto, demuestran un camino desde información de bajo nivel hasta una interfaz legible.

Las estructuras de kernel y los layouts de cgroups afectan la portabilidad. Los intervalos de medición y decisiones de contabilidad también influyen en la interpretación de métricas. El proyecto no afirma compatibilidad con todos los kernels Linux ni un nivel de precisión medido por benchmark formal.

Lecciones de ingeniería

La parte más interesante está en la frontera entre capas: volver consumible la información del kernel, gestionar concurrencia en espacio de usuario y mantener acciones automáticas alineadas con reglas de laboratorio. Es un ejemplo práctico de programación de sistemas para comprender infraestructura.

Explorar la implementación

SEGUIR EXPLORANDO

Proyectos relacionados.

Todos los proyectos
Infraestructura2025

Mantener los datos conectados

Un laboratorio de base de datos para analizar replicación, disponibilidad entre nodos y la diferencia entre continuidad y recuperación.

  • MySQL
  • Docker
  • FastAPI
  • Bash
Seguridad e investigación2026

Comprender la exposición inalámbrica

Una plataforma portátil Linux que convierte observaciones pasivas de Wi-Fi en investigación estructurada de seguridad.

  • Linux
  • Kismet
  • Python
  • PostgreSQL