Observabilidad operativa

Monitorea salud, rendimiento y riesgo en tiempo real

Abhackus expone métricas Prometheus y permite montar alertas accionables para disponibilidad, latencia, errores y patrones de autenticación.

Métricas HTTP

`abhackus_http_requests_total` por método/ruta/estado.

Latencia

Histograma `abhackus_http_request_duration_seconds` para p95 y p99.

Alertas base

API caída, tasa 5xx alta, p95 alta y burst de fallos de login.

SLO formales

Disponibilidad
Objetivo mensual >= 99.5%
Latencia p95
Objetivo <= 700ms
Error 5xx
Objetivo <= 1%

Endpoints clave

  • GET /api/health
  • GET /api/metrics (requiere token técnico)
  • Header x-correlation-id en respuestas

Archivos de referencia

  • deploy/observability/prometheus-alerts.yml
  • deploy/observability/prometheus-slo-rules.yml
  • deploy/observability/grafana-dashboard-abhackus.json
  • deploy/observability/README-observability.org
  • .gitlab-ci.yml (coverage gate y artefactos)

Conectar a Prometheus + Grafana + Alertmanager

# 1) Scrape config en Prometheus
scrape_configs:
  - job_name: abhackus-rest-api
    metrics_path: /api/metrics
    authorization:
      type: Bearer
      credentials: '<ABHACKUS_METRICS_TOKEN>'
    static_configs:
      - targets: ['127.0.0.1:8080']

# 2) Cargar reglas
rule_files:
  - /etc/prometheus/prometheus-alerts.yml

# 3) En Grafana
# - datasource: Prometheus
# - panel de request rate, 5xx rate y p95/p99
# - dashboard por ruta crítica (/api/auth/login, /api/accounting/*)

# 4) En Alertmanager
# - enrutar severidad critical/high a Telegram/Email on-call
# - enrutar medium a canal operativo

En CI, la suite de stress/perf usa k6 (job perf-k6) contra PERF_TARGET_URL y genera reporte JSON.