spring-ai-playground

title: Runtime description: Five dashboards covering JVM/OS health, Ollama runtime monitoring, HTTP and Tomcat instrumentation, live log tail with MDC-extracted trace correlation, and the raw trace stream.

Runtime

The Runtime group is the operational view - JVM and OS health, HTTP and session instrumentation, log search, and the raw trace stream. Where AI Usage and AI Stack answer “what did the agent do,” Runtime answers “is the process itself healthy” and “give me the unfiltered evidence.”

flowchart LR
    MR["MeterRegistry"]
    SMC["SystemMetrics<br/>Collector"]
    SMR["SystemMetrics<br/>RingBuffer"]
    SMT["SystemMetrics<br/>TimeSeries"]
    MR --> SMC --> SMR --> SMT
    SMT --> HO["Host"]
    OllamaApi["Ollama<br/>/api/ps · /api/tags"] --> OL["Ollama"]
    MR -. live read .-> WA["Web Application"]
    LogStream["Rolling<br/>app log"] --> LG["Logs"]
    Coll["Observability<br/>Collector"] --> Buf["Observability<br/>RingBuffer"]
    Buf --> TR["Traces"]
    TR -. row click .-> TD["Trace Detail"]
    LG -. traceId match .-> TR

The five tabs are independent - Logs and Traces share an MDC traceId so an operator can drill from a log line to the trace it came from (and vice versa), but otherwise each tab pulls from its own source. The Host and Web Application tabs both read MeterRegistry, but Host historizes it through the dedicated SystemMetricsCollector parallel pipeline while Web Application reads live values directly. Ollama is separate again - it polls the local Ollama server’s own HTTP API.

Pages in this group

- :material-server-network:{ .lg .middle } **[Host](/spring-ai-playground/docs/features/observability/runtime/host.html)** --- `SystemMetricsSnapshot` + `SystemMetricsTimeSeries` (parallel pipeline). JVM heap / GC / threads / classes, OS CPU / load / uptime, disk, file descriptors. - :material-memory:{ .lg .middle } **[Ollama](/spring-ai-playground/docs/features/observability/runtime/ollama.html)** --- Ollama `/api/ps` + `/api/tags`. Platform/accelerator, running models, VRAM in use and over time, GPU/CPU offload, installed-model inventory by size / quantization / family / capability. - :material-web:{ .lg .middle } **[Web Application](/spring-ai-playground/docs/features/observability/runtime/web-application.html)** --- `MeterRegistry` HTTP + Tomcat + Logback + Spring AI active gauges. HTTP traffic, Tomcat session state, logback level counts, in-flight LLM operations. - :material-text-box-search-outline:{ .lg .middle } **[Logs](/spring-ai-playground/docs/features/observability/runtime/logs.html)** --- Live tail of the application log with structured MDC extraction. Regex / level / follow-tail filters; click row → jump to trace. - :material-source-branch:{ .lg .middle } **[Traces](/spring-ai-playground/docs/features/observability/runtime/traces.html)** --- `ObservabilityRingBuffer.liveStream()` + `snapshot()`. Raw trace rows; click row → Trace Detail dialog with span timeline.

Cross-references