From 6a49bd573c544a48bb81ef7959b0c06ef8d984f8 Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Mon, 24 Nov 2025 23:17:39 +0100 Subject: [PATCH] alloy captura y guarda cada segundo --- config/alloy/alloy.river | 2 +- main.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/config/alloy/alloy.river b/config/alloy/alloy.river index ba6215f..f3a878f 100644 --- a/config/alloy/alloy.river +++ b/config/alloy/alloy.river @@ -74,7 +74,7 @@ prometheus.scrape "cadvisor" { prometheus.scrape "app_metrics" { targets = [{"__address__" = "host.docker.internal:9102"}] forward_to = [prometheus.remote_write.prometheus.receiver] - scrape_interval = "15s" + scrape_interval = "1s" metrics_path = "/metrics" job_name = "app_metrics" } diff --git a/main.py b/main.py index 65602c6..2fae03f 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,7 @@ from Logger.LokiLogger import LokiLogger +from Logger import PrometheusMetric +import time def prueba_log(): @@ -31,5 +33,34 @@ def prueba_log(): logger.exception(e) +def prueba_metricas(duracion_segundos: int = 180): + """ + Emite métricas de prueba durante un tiempo para permitir que Alloy las scrappee. + """ + metrics = PrometheusMetric(prefix="pruebas", port=9102) + + requests_total = metrics.counter( + "requests_total", "Solicitudes de ejemplo", labels=["endpoint"] + ) + latency_seconds = metrics.histogram( + "latency_seconds", + "Latencia simulada", + labels=["endpoint"], + buckets=[0.1, 0.5, 1, 2, 5], + ) + workers_active = metrics.gauge("workers_active", "Workers activos", labels=["queue"]) + + start = time.time() + i = 0 + while time.time() - start < duracion_segundos: + requests_total.inc(endpoint="/demo") + latency_seconds.observe(0.2 + (i % 5) * 0.1, endpoint="/demo") + workers_active.set(3 + (i % 4), queue="default") + i += 1 + time.sleep(1) + + if __name__ == "__main__": prueba_log() + # Mantiene el servidor de métricas vivo al menos 3 min para permitir scrapes + prueba_metricas()