Stack Overview
How the observability stack is wired — telemetry emission, collection, the Victoria storage trio, and Grafana.
GENIE.AI is observable by default for production deployments: every application service emits OpenTelemetry telemetry (metrics, logs, traces), which a central collector funnels into a purpose-built storage trio and a Grafana front end. The result is a single pane where operators can see service health, search logs, trace a request end-to-end across the RAG pipeline, and get alerted before things break.
The stack has two layers with different defaults. VictoriaLogs and the OTel
Collector are always-on (the admin logs UI queries VL directly and every
container ships logs via the fluentd driver). The in-app OTel SDK is opt-in
via ENABLE_OBSERVABILITY=1 in .env. Profile-gated services (Grafana,
VictoriaMetrics, VictoriaTraces, tempo-proxy) come up with --profile observability in Compose, or ENABLE_OBSERVABILITY=1 in Swarm.
flowchart LR
subgraph Apps["App services (Node.js, Python/OPEA, Kong)"]
App
end
subgraph Collector["OpenTelemetry Collector<br/>(mode: global — one per node)"]
Coll
end
VM["VictoriaMetrics<br/>(metrics)"]
VL["VictoriaLogs<br/>(logs)"]
VT["VictoriaTraces<br/>(traces)"]
Grafana["Grafana<br/>(Kong /grafana/, Keycloak SSO)"]
Apps -- OTLP traces/metrics --> Collector
Apps -- fluentd logs --> Collector
Collector --> VM
Collector --> VL
Collector --> VT
VM --> Grafana
VL --> Grafana
VT --> GrafanaThree signals, three stores, one query layer. Each store is a single-node Victoria* binary — operationally simple, no separate cluster to run.
Traces, logs, and metrics share identifiers, so you can move between them in either direction:
traceparent propagation, the RAG
pipeline span taxonomy, and how a trace_id links traces and logs.mode: global
so logs from every node (gateway, genieai, gpu) are collected regardless of
where a service lands.How the observability stack is wired — telemetry emission, collection, the Victoria storage trio, and Grafana.
The pre-built Grafana dashboards auto-provisioned for GENIE.AI, across the General and Observability folders.
Built-in Grafana alert rules, notification policies, and contact points that guard the GENIE.AI stack.
Environment variables, retention, sampling, and how to enable or disable the GENIE.AI observability stack.