Skip to main content

Monitoring — overview

Two surfaces give you visibility into what a running Liberty install is doing:

SurfaceWhat it showsAudience
The Monitoring pageLive runtime view — KPI strip, per-pool stats, connected users, held locks, log tail. Reached from the sidebar (icon 📊 Monitoring).Operators on duty.
The health endpointsMachine-readable status — /health, /health. Used by load balancers, Kubernetes probes, external monitoring (Prometheus, Datadog…).Automation.

This page is the map of both. The dashboard cards get their own deep page; the health endpoints get theirs.


The Monitoring page

Click Monitoring in the left sidebar. The page is a single scrollable view with five sections, each in its own card:

CardWhat it carries
KPI stripQuick numbers: uptime, connected users count, active locks count, total pool connections.
PoolsOne row per pool — pool size, in-use connections, overflow, queue depth. Helps spot a saturated pool.
Connected usersOne row per signed-in user — username, since when, last activity.
Held locksRow-level locks the framework is currently holding (when a dialog opens a row for edit, a soft lock prevents two operators from clobbering each other).
LogsThe framework's last few hundred log lines — colour-coded by level, filterable by level + text.

The full walkthrough of each card lives on Dashboard.


Permissions to see the page

Visibility:

RoleEffect
SuperuserFull access — sees every section.
monitoring:view (granular permission)Same — full access.
Anyone elseThe Monitoring entry doesn't appear in the sidebar. The page returns 403 if reached directly by URL.

Grant the monitoring:view permission to operations roles that need to keep an eye on the running install without granting them every other admin power.


When to look at Monitoring

SituationWhat to check first
Users complaining about slowness.Pools card — is any pool saturated (queue depth > 0)?
Mystery error in a screen.Logs card — filter by ERROR and scroll back.
"Did Bob delete that row by mistake?"Connected users card — confirm Bob was signed in at that time. Locks card — see if Bob was the one holding the row's lock.
Framework feels stuck.KPI strip — uptime should be reasonable. Pools — connections shouldn't all be in-use.

For deeper investigation (per-screen response times, per-query slow logs), wire an external monitoring system — see Health endpoints.


When to wire external monitoring

The built-in Monitoring page is in-memory — a process restart wipes the locks card, the connected users list and the log tail. It's a live operations view, not a historical record.

For historical metrics + alerting, you want an external system. Liberty exposes the building blocks:

  • /health — liveness probe (the process is up).
  • /health — readiness probe (the framework finished booting + the database is reachable).
  • Process logs to stdout — pick them up with Loki / Fluentd / Datadog Agent.
  • The framework's LIBERTY_LOG_LEVEL env var — set to DEBUG for verbose tracing during incidents.

Setup and external-monitoring patterns are covered on Health endpoints.


What the page does NOT show

Knowing the limits prevents frustrated searches:

You won't findWhere to look instead
Per-screen / per-query response time histograms.An APM (Datadog APM, New Relic, OpenTelemetry collector) — wire it via the standard FastAPI middleware pattern.
Database server metrics (Postgres CPU, query plans).Postgres' own monitoring (pg_stat_statements, pgbadger) or your DB platform's tooling.
Container resource usage (RAM, CPU).Docker (docker stats), Portainer's container view, or Kubernetes' kubelet metrics.
Historical login records.The framework's audit log (when configured per screen via audit_table) — see Build → Screens → General.
The Nomaflow run history.The Nomaflow → Runs page — separate from Monitoring.

The Monitoring page is a process-introspection view. Application-level history (who ran what when, which run succeeded) lives in dedicated audit and Nomaflow surfaces.


What you actually do — quick map

GoalRead
Read the Monitoring page card by card.Dashboard.
Wire /health to your load balancer.Health endpoints.
Set up external metric collection.Health endpoints → External monitoring.

What's next