Saltar al contenido

Proyecto streaming

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar progreso

Lección 4 de 5

Observabilidad y alertas

La observabilidad combina progreso Spark, lag de fuente, calidad de datos y SLO de negocio para ofrecer alertas accionables.

30 min aprox.

Detalles

Proyecto de streaming con SLA

Entrega un flujo operable que soporte datos tardíos, recuperación e incidentes reproducibles.

Reto observable

Opera un pipeline streaming contra un SLO y ejecuta un game day que demuestre recuperación dentro de RTO/RPO sin pérdida ni duplicados.

Al terminar podrás
  • Cumplir SLA de frescura y completitud
  • Recuperar sin duplicados
  • Crear métricas y runbook
Prerrequisitos
m16
Última revisión
25 ago 2026
Nivel
Professional
Ruta relacionada
streaming
Dominios blueprint
Streaming production readiness
Estado
Revisión editorial interna
Fuentes principales
Production considerations for Structured Streaming · Databricks · Monitor Structured Streaming queries · Databricks
Reportar un error
04
Diagnóstico

Observabilidad y alertas

La observabilidad combina progreso Spark, lag de fuente, calidad de datos y SLO de negocio para ofrecer alertas accionables.

El progreso de la consulta muestra duración, tasas y estado; Kafka o Auto Loader aportan backlog; las tablas silver aportan máximo event time y descartes. Una alerta de frescura debe enlazar esas señales para diferenciar fuente parada, cuello de proceso, dato inválido o sink lento.

Las métricas se escriben en una tabla con `query_id`, `batch_id`, versión y timestamp. Un dashboard sin alertas ni propietario no reduce tiempo de recuperación. Cada alarma debe incluir umbral, periodo, severidad, enlace a evidencia y primera acción segura.

PythonRegistro estructurado del progreso
import json
from pyspark.sql import Row

progress = query.lastProgress or {}
record = Row(
    query_id=str(query.id),
    batch_id=progress.get("batchId"),
    observed_at=progress.get("timestamp"),
    input_rps=progress.get("inputRowsPerSecond", 0.0),
    processed_rps=progress.get("processedRowsPerSecond", 0.0),
    progress_json=json.dumps(progress),
)
spark.createDataFrame([record]).write.mode("append").saveAsTable(
    "main.ops.streaming_progress"
)

Para una solución productiva usa un listener o monitor administrado y controla volumen/PII del JSON de progreso.

¿Qué señales distinguen una fuente parada de un consumidor lento?

Profundiza

La observabilidad útil enlaza cuatro planos: salud de la consulta, progreso de la fuente, comportamiento del estado y calidad del producto. Un dashboard que solo muestra cluster y estado `RUNNING` puede permanecer verde mientras se publican datos viejos o incompletos. Las métricas técnicas —offsets, batch duration, input rate, state rows, retries— responden cómo funciona el motor. Las métricas de negocio —máximo event time, pedidos por mercado, suma de importes, porcentaje válido— responden si entrega el producto prometido. Cada alerta debe combinar duración y severidad para evitar ruido durante microbatches vacíos o ráfagas normales, y debe señalar una primera comprobación. Logs estructurados incluyen run, query, batch, checkpoint version y correlación de la fuente; tablas de operaciones permiten tendencias y postmortems más allá de la retención de la interfaz.

Observabilidad técnica

Telemetría sobre ejecución, offsets, recursos, estado y fallos del motor streaming.

Localiza mecanismos operativos, pero necesita contexto de negocio para determinar impacto real.
Observabilidad de negocio

Indicadores sobre frescura, volumen, calidad y coherencia del producto de datos entregado.

Detecta pipelines técnicamente activos que producen resultados inútiles o incompletos.
Alerta accionable

Regla con umbral sostenido, severidad, owner y primera hipótesis o acción segura asociada.

Reduce fatiga y transforma una señal en tiempo de diagnóstico y recuperación menor.
Resumen

Puntos clave

  • Una única métrica técnica rara vez explica un incumplimiento de negocio.
  • Las alertas usan ventanas sostenidas para evitar ruido de un microbatch aislado.
  • Versión de código y query ID permiten correlacionar regresiones con despliegues.

Evita

  • Alertar por una tasa baja cuando la fuente no tiene eventos y el SLO sigue satisfecho.
  • Guardar logs sin `batch_id`, versión ni owner, impidiendo correlación y respuesta.

Fuente revisada · vista externa

Databricks Free Declarative Pipelines

Databricks Free Declarative Pipelines · commit a515370

docs/3-2-building-bronze-sql.md

Lectura en GitHub

Este notebook se abre desde su fuente revisada

El repositorio no permite republicar su contenido dentro de Lakehouse Lab. Conservamos la misma experiencia lateral, la ruta exacta y el commit auditado, y dejamos la lectura en GitHub para respetar la autoría.

Autor
andkret
Licencia
No verificada
Formato
project
Ver notebook en GitHub ↗

Módulo 17

Contenido del módulo