Saltar al contenido principal

Monitorización

Esta guía explica cómo la Plataforma de Distribución Stellar (SDP) expone métricas en tiempo de ejecución y cómo conectar esas métricas con el conjunto Prometheus + Grafana.

Puntos finales de métricas

Tanto el Dashboard API como el Servicio de Envío de Transacciones (TSS) exponen puntos finales /metrics compatibles con Prometheus. El servidor HTTP está definido en serve_metrics.go y se controla a través de las siguientes variables de entorno:

  • METRICS_PORT – Puerto usado por el servidor de métricas del Dashboard API (por defecto 8002).
  • METRICS_TYPE – Backend de monitorización en uso (actualmente PROMETHEUS).
  • TSS_METRICS_PORT – Puerto usado por el servidor de métricas del TSS (por defecto 9002).
  • TSS_METRICS_TYPE – Backend de monitorización para el TSS (por defecto TSS_PROMETHEUS).

Cuando el servidor se inicia, monta la ruta /metrics y muestra contadores e histogramas específicos de solicitudes, base de datos y TSS que se alinean con los dashboards de Grafana provistos en Grafana README.

Conjunto local Prometheus y Grafana

Proveemos un archivo Docker Compose que inicia Prometheus y Grafana preconfigurados para extraer las métricas de la SDP.

  1. Desde la raíz del repositorio, ejecuta:
cd dev
docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml up -d

Esto lanza Prometheus en el puerto 9090 y Grafana en el puerto 3002 por defecto según la configuración de monitorización.

  1. El contenedor de Prometheus carga su configuración desde config prometheus, que apunta a host.docker.internal:8002/metrics por defecto. Ajusta la lista de targets si ejecutas la API en un host diferente o si quieres extraer las métricas del TSS (host.docker.internal:9002).
  2. Grafana usa la configuración de datasource en datasource, que apunta a la instancia de Prometheus mencionada. Si tienes un despliegue de Prometheus existente, actualiza esta URL en consecuencia.

Para desmontar el conjunto de monitorización, ejecuta:

cd dev
docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml down

Cargar el Dashboard de Grafana de SDP

  1. Navega a http://localhost:3002 e inicia sesión con las credenciales por defecto admin / admin. Inicio de sesión en Grafana

  2. Haz clic en el ícono + en la barra de navegación superior (junto al campo de búsqueda), elige Importar dashboard y pega el contenido de Grafana Dashboard Json. Importar Dashboard

  3. Selecciona el datasource prometheus provisto por datasource. Seleccionar datasource

Este dashboard visualiza volumen/latencia de solicitudes HTTP, tiempos de consultas a base de datos y estadísticas de transacciones TSS, detalles descritos en Grafana README.md. Todos los paneles pueden filtrarse por método, ruta, tenant o instancia para distinguir tráfico entre múltiples despliegues.

Integración con instancias externas de Prometheus

Si ya gestionas un clúster Prometheus, añade trabajos de scrap equivalentes a los que están en config prometheus. Cada subsistema expone métricas en http://<host>:<METRICS_PORT>/metrics (Dashboard API) y http://<host>:<TSS_METRICS_PORT>/metrics (TSS). Los despliegues con Helm exponen las mismas configuraciones mediante sdp.configMap.data.METRICS_* y tss.configMap.data.TSS_METRICS_*. Una vez que los nuevos trabajos estén presentes, puedes importar el mismo JSON de dashboard en tu despliegue Grafana o adaptar las consultas PromQL a tu suite de observabilidad preferida.