Skip to main content
pb-ext includes a comprehensive dashboard at /_/_ that provides real-time visibility into system health, visitor analytics, cron job execution, and performance metrics.

Access

URL: http://127.0.0.1:8090/_/_ Authentication: Requires PocketBase superuser login From core/server/health.go:316:

Dashboard Sections

1. System Health

Real-time system metrics collected from core/monitoring/stats.go:
  • CPU Usage — per-core utilization and average percentage
  • Memory — total, used, free, cached, and buffers (in GB)
  • Disk Space — total, used, free, and usage percentage
  • Network — bytes sent/received, active connections, interface stats
  • Uptime — server start time and total uptime duration
  • Temperature — CPU, disk, and system temperatures (if available)
From core/server/health.go:229:

2. Request Statistics

HTTP request metrics tracked by the server:
  • Total Requests — cumulative count since startup
  • Active Connections — current concurrent requests
  • Request Rate — requests per second
  • Average Response Time — mean request duration in milliseconds
  • Last Request — timestamp of most recent request

3. Runtime Metrics

Go runtime statistics from core/monitoring/runtime.go:
  • Goroutines — active goroutine count
  • CPU Cores — available CPU count
  • Go Version — runtime version string
  • Heap Allocation — current heap memory usage
  • Total Allocated — cumulative bytes allocated
  • System Memory — total memory obtained from OS
  • GC Runs — garbage collection execution count
  • Last GC — timestamp of most recent GC cycle
  • Heap In Use — actively used heap memory
  • Heap Released — memory returned to OS

4. Visitor Analytics

From core/analytics/types.go:14:
  • Unique Visitors — distinct sessions (30-minute window)
  • New vs. Returning — first-time vs. repeat visitor ratio
  • Total Page Views — aggregate view count
  • Views Per Visitor — average pages per session
  • Today vs. Yesterday — daily comparison
  • Device Breakdown — desktop/mobile/tablet percentages
  • Browser Distribution — Chrome, Firefox, Safari, Edge, etc.
  • Top Pages — most visited paths by view count
  • Recent Activity — last 50 visits with device/browser/OS
  • Hourly Activity — traffic intensity as percentage

5. Cron Job Monitoring

Job execution tracking from core/jobs/logger.go:166:
  • Total Executions — all job runs (success + failure)
  • Success Rate — percentage of completed jobs
  • Failed Runs — error count
  • Average Run Time — mean execution duration
  • Today vs. Yesterday — daily execution comparison
  • Recent Executions — last 10 job runs with status
  • Job Statistics — per-job success rate, last run, avg duration
  • Manual Trigger — run jobs on-demand

6. System Information

Host and platform details:
  • Hostname — server name
  • Platform — OS platform (linux, darwin, windows)
  • OS — operating system name
  • Kernel Version — OS kernel version
  • CPU Model — processor model name
  • Start Time — server boot timestamp

Template System

From core/server/health.go:288:

Template Functions

From core/server/health.go:33:

Dashboard Layout

The dashboard uses embedded Go templates with PocketBase styling:

Auto-Refresh

The dashboard automatically refreshes data every 5 seconds without full page reload using JavaScript fetch:
From core/server/health.go:279:
The dashboard includes a quick link to the PocketBase admin panel at /_/.

Dashboard Features

Visual Indicators

  • Status badges — Healthy (green), Warning (yellow), Critical (red)
  • Progress bars — CPU, memory, disk usage gauges
  • Charts — Browser breakdown, device distribution (if charting enabled)
  • Color coding — Status codes (2xx green, 4xx yellow, 5xx red)
  • System/User job badges — Distinguish built-in vs. custom jobs

Interactive Elements

  • Manual job trigger — Run jobs on-demand via button
  • Job log expansion — View full execution output
  • Recent visits detail — Click to expand session info
  • Sort and filter — Organize jobs and analytics

Real-Time Updates

Dashboard data refreshes automatically:
  • System metrics — Every 5 seconds
  • Request stats — Live counter updates
  • Job status — Immediate execution feedback
  • Analytics — Session-based updates

Error Handling

From core/server/health.go:339:
Partial data collection failures are logged but don’t prevent dashboard rendering.

Security

  • Superuser-only access — Authentication required
  • Session-based auth — Uses PocketBase auth system
  • CSRF protection — Inherits from PocketBase
  • No API exposure — Dashboard is HTML-only
  • Trace IDs — All requests logged with correlation IDs

Performance

  • Cached stats — 2-second refresh interval reduces overhead
  • Timeout protection — 5-second context timeout for metrics collection
  • Async updates — Non-blocking data fetching
  • Lazy loading — Components load incrementally
  • Minimal overhead — <1% CPU for dashboard serving

Customization

The dashboard templates can be customized by modifying files in core/server/templates/:

Mobile Responsive

The dashboard is mobile-friendly with responsive breakpoints:
  • Desktop — Full multi-column layout
  • Tablet — Stacked sections with side-by-side cards
  • Mobile — Single column, collapsible sections
  • PocketBase Admin/_/
  • API Documentation/api/docs/v1/swagger
  • Cron API/api/cron/jobs
  • Health JSON/_/_ with Accept: application/json header