capacidad para guardar metricas en prometheus
Deploy to Coolify / deploy (push) Has been cancelled

This commit is contained in:
2025-11-24 22:53:07 +01:00
parent 399613e009
commit 5b6a0ddbc2
5 changed files with 294 additions and 1 deletions
+45 -1
View File
@@ -8,6 +8,50 @@ Esta configuracin incluye un stack completo de monitoreo con:
## Estructura de Archivos
## Uso rápido en Python (logs y métricas)
- Logs a Loki / Alloy:
```python
from Logger import LokiLogger
logger = LokiLogger(service_name="mi_servicio", min_level="INFO")
logger.info("Aplicación iniciada")
logger.error("Algo falló", add_fields={"detalle": "stacktrace"})
```
- Métricas con prefijo listo para scrapeo de Prometheus:
```python
from Logger import PrometheusMetric
metrics = PrometheusMetric(
prefix="suite_logs",
default_labels={"service_name": "mi_servicio", "env": "dev"},
port=9102, # inicia un servidor HTTP en este puerto
)
requests_total = metrics.counter(
"requests_total", "Solicitudes procesadas", labels=["endpoint"]
)
latency_seconds = metrics.histogram(
"latency_seconds",
"Latencia de peticiones",
labels=["endpoint"],
buckets=[0.1, 0.5, 1, 2, 5],
)
requests_total.inc(endpoint="/health")
latency_seconds.observe(0.35, endpoint="/health")
```
Agrega el puerto (`9102` en el ejemplo) como target de scrape en Prometheus/Alloy para ver las series con el prefijo definido.
Atajo: si quieres emitir sin guardar handles, usa `counter_value`, `gauge_value`, `histogram_observe` y `summary_observe`, pudiendo sobreescribir el prefijo por métrica:
```python
metrics.gauge_value("workers_active", 3, prefix="backend", labels={"queue": "ingest"})
metrics.counter_value("processed_total", 1, prefix="backend", labels={"queue": "ingest"})
```
En este repo, Alloy ya está configurado para scrapear `host.docker.internal:9102` con el `job_name="app_metrics"`. Si tu script expone métricas en ese puerto (con `PrometheusMetric(port=9102)`), se almacenarán sin cambios adicionales.
## Configuración Inicial
### 1. Configurar variables de entorno
@@ -157,4 +201,4 @@ docker exec prometheus promtool check config /etc/prometheus/prometheus.yml
```bash
# Ver configuracin activa
curl http://localhost:9009/config
```
```