Monitoring API

Cortex exposes a lightweight monitoring/health endpoint that can be used by load balancers, Kubernetes liveness probes, and Prometheus scrapers.

Default Endpoint

http://localhost:8093

The port is configurable with --monitoring-port or the CORTEX_MONITORING_PORT environment variable (default: 8093).

Health Check

GET /health

Returns HTTP 200 OK with a JSON body when Cortex is running and healthy:

{
  "status": "UP"
}

Returns HTTP 503 Service Unavailable when Cortex is starting up or shutting down.

Metrics

Cortex exposes JVM and application metrics in Prometheus text format:

GET /metrics

Exposed metrics include:

  • JVM memory usage (heap / non-heap)

  • Thread pool sizes and task queue depths

  • Per-node processing counters (processed, skipped, failed)

  • Pipeline execution times

Kubernetes Probe Configuration

livenessProbe:
  httpGet:
    path: /health
    port: 8093
  initialDelaySeconds: 10
  periodSeconds: 15

readinessProbe:
  httpGet:
    path: /health
    port: 8093
  initialDelaySeconds: 5
  periodSeconds: 10

Changing the Port

Via CLI:

cortex server start --monitoring-port 9090

Via environment variable:

CORTEX_MONITORING_PORT=9090 cortex server start

Via YAML configuration (if applicable to the deployment):

monitoringPort: 9090