Nivel 96: demo_level96.py

Este es el nivel 96 del tour de aprendizaje.

Código Fuente

"""
DEMO LEVEL 96: get_fired_alerts
-----------------------------
Adds: Obtener alerts disparados.
Continues: Alert threshold de L70.

DIAGRAM:
tracker.get_fired_alerts() --> lista de alerts
"""

import time

from wpipe import Pipeline, step, Metric, Severity

@step(name="task")
def task(data: dict) -> None:

    """Task step.

    Args:

        data: Input data for the step.

    Returns:

        dict: Result of the step.

    """
    time.sleep(0.05)
    return {"ok": True}

if __name__ == "__main__":
    print(">>> Obteniendo alerts disparados...")

    pipe = Pipeline(
        pipeline_name="viaje_l96_getalerts",
        verbose=True,
        tracking_db="output/alerts96.db",
    )

    pipe.tracker.add_alert_threshold(
        metric=Metric.PIPELINE_DURATION,
        expression=">1",
        severity=Severity.CRITICAL,
    )

    pipe.set_steps([task])
    pipe.run({})

    alerts = pipe.tracker.get_fired_alerts()
    print(f"\n🚨 Alerts disparados: {len(alerts)}")
    for a in alerts:
        print(f"  - {a}")

Resultado de Ejecución


>>> Obteniendo alerts disparados...
[PIPELINE STATUS] Registered: PIPE-B6E6946A
viaje_l96_getalerts ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
[PIPELINE STATUS] PIPE-B6E6946A: COMPLETED

🚨 Alerts disparados: 0