Observability

Every Pranor module emits traces, metrics, and logs through OpenTelemetry.

Stack

Your Services → Pranor Trace (OTLP collector) → Pranor Console (dashboard)
                                              → Jaeger / Grafana (optional)

Distributed Tracing

All modules propagate W3C traceparent headers automatically. A single request generates a connected trace across Gate → Mesh → Service → Pulse → Vault.

Setup

Set one environment variable on every module:

PRANOR_OTLP_ENDPOINT=http://pranor-trace:8090

View Traces

Open Pranor Console at http://localhost:8083:

  • Waterfall trace view
  • Service dependency map
  • Latency percentiles (p50, p95, p99)
  • Error rate tracking
  • Trace search by ID, service, duration

Metrics

Every module exposes Prometheus-compatible metrics at GET /metrics:

MetricTypeDescription
pranor_http_requests_totalCounterTotal HTTP requests by route, method, status
pranor_http_duration_secondsHistogramRequest latency distribution
pranor_queue_messages_totalCounterMessages published/consumed (Pulse)
pranor_queue_consumer_lagGaugeConsumer group lag (Pulse)
pranor_cache_hits_totalCounterCache hit/miss ratio (Cache)
pranor_pool_connections_activeGaugeActive DB connections (Pool)
pranor_vault_objects_totalGaugeStored objects count (Vault)

Structured Logging

All modules emit JSON-structured logs with trace correlation:

{
  "level": "info",
  "msg": "request completed",
  "trace_id": "abc123def456",
  "span_id": "789xyz",
  "service": "pranor-gate",
  "duration_ms": 42,
  "status": 200
}

Alerting

Pranor Console supports SLO-based burn rate alerts:

  • Define SLOs (99.9% availability, p95 < 200ms)
  • Multi-window burn rate detection
  • Alert routing to Slack, email, PagerDuty

Health Checks

Every module exposes:

EndpointPurpose
GET /healthzLiveness (is the process running?)
GET /readyzReadiness (can it serve traffic?)
GET /metricsPrometheus metrics

Grafana Integration

Pranor Trace implements the Prometheus remote-write receiver protocol. Point your existing Grafana at:

Data Source: Prometheus
URL: http://pranor-trace:8090/api/v1/query

Next Steps