oCoreoCore Docs

Monitoring

View dashboard metrics, health checks, alerts, activity feeds, and operation logs.

oCore provides built-in monitoring for servers, instances, and environments. From the dashboard you can view real-time metrics, configure alerts, track activity across your organization, and review detailed operation logs for every background job.

Monitoring Dashboard

View metrics, health checks, and alerts for your infrastructure.

Open in Dashboard

Dashboard Metrics Overview

The monitoring dashboard provides a high-level view of your infrastructure health:

Server Metrics

MetricDescription
CPU UsageCurrent and historical CPU utilization across all cores
MemoryUsed vs total RAM with percentage
DiskUsed vs total storage for the root filesystem
Network I/OInbound and outbound traffic rates
Last SeenWhen the server last reported health data

Instance Metrics

MetricDescription
StatusCurrent running state (running, stopped, error)
HTTP ResponseInstance web endpoint health check result
Restart CountNumber of restarts since creation
Resource UsageContainer CPU and memory consumption

Organization-Level Metrics

MetricDescription
Total ServersCount of connected servers by status
Total InstancesCount of instances by status
Active DeploymentsDeployments currently in progress
Backup HealthRecent backup success/failure ratio
Usage QuotasResource usage against organization limits

Server Health Checks

oCore performs periodic health checks on every connected server to verify:

  1. SSH Connectivity -- Can oCore reach the server via SSH
  2. Docker Status -- Is the Docker daemon running and responsive
  3. Resource Availability -- CPU, memory, and disk are within safe thresholds
  4. Agent Status -- The oCore monitoring agent is running and reporting

Servers that fail health checks transition to unreachable status and trigger an alert.

Uptime Monitoring

oCore tracks uptime for each server and instance. View uptime history and statistics:

curl https://ocore.example.com/api/instances/{instanceId}/monitoring/uptime \
  -H "Authorization: Bearer $TOKEN"

Instance Resource Monitoring

Real-Time Metrics

Each running instance reports resource consumption in real time:

  • CPU -- Container CPU usage as a percentage of allocated cores
  • Memory -- Container memory usage vs limit
  • Disk -- Container volume usage
  • Network -- Container network I/O

Metric Streams (SSE)

For real-time dashboards, oCore provides Server-Sent Events (SSE) streams:

curl -N https://ocore.example.com/api/instances/{instanceId}/monitoring/metrics/stream \
  -H "Authorization: Bearer $TOKEN"

This returns a continuous stream of metric events that you can consume in any SSE-compatible client.

Alert Configuration

Configure alerts to get notified when infrastructure issues occur.

Alert Types

AlertTriggerSeverity
Server unreachableHealth check fails for a serverCritical
Instance downInstance stops unexpectedlyCritical
High CPUCPU usage exceeds thresholdWarning
High memoryMemory usage exceeds thresholdWarning
Low disk spaceDisk usage exceeds thresholdWarning
Backup failedScheduled backup did not completeError
Deployment failedA deployment pipeline step failedError

Managing Alerts

View and acknowledge alerts:

# List alert events
curl https://ocore.example.com/api/monitoring/alerts/events \
  -H "Authorization: Bearer $TOKEN"

# Resolve an alert event
curl -X PATCH https://ocore.example.com/api/monitoring/alerts/events/{eventId}/resolve \
  -H "Authorization: Bearer $TOKEN"

Notification Preferences

Configure your notification preferences to receive alerts via email or push notifications. See your account settings for notification channel configuration.

Activity Feed

The activity feed shows a chronological log of all significant events in your organization:

  • Instance created, started, stopped, deleted
  • Deployments triggered, completed, failed
  • Backups created, restored
  • Members invited, roles changed
  • Server added, removed

Activity Feed

View all recent activity across your organization.

Open in Dashboard

Filtering the Activity Feed

curl "https://ocore.example.com/api/activity?limit=50&offset=0" \
  -H "Authorization: Bearer $TOKEN"

The activity feed supports filtering by:

  • Event type
  • Date range
  • User
  • Resource (server, instance, project)

Operation Logs

Every background operation in oCore (deployments, backups, restores, provisioning) generates detailed step-by-step logs.

Viewing Operation Logs

# Get operation steps
curl https://ocore.example.com/api/operations/{type}/{id}/steps \
  -H "Authorization: Bearer $TOKEN"

# Stream operation logs in real time (SSE)
curl -N https://ocore.example.com/api/operations/{type}/{id}/logs \
  -H "Authorization: Bearer $TOKEN"

Operation types include: deployment, backup, restore, provisioning, snapshot.

Each operation step records:

  • Step name and status
  • Output text (build logs, error messages)
  • Start time, completion time, and duration
  • Version number for optimistic concurrency

Required Permissions

  • Viewing metrics and alerts requires view:environments permission
  • Acknowledging alerts requires manage:environments permission
  • Activity feed is visible to all authenticated organization members

Troubleshooting

PostHog Analytics Integration

oCore integrates with PostHog to provide product analytics for your Odoo instances. When configured, each instance sends events to PostHog and oCore queries them back to build analytics dashboards covering revenue, users, sessions, performance, errors, audit trails, and productivity.

Configuration Required

PostHog analytics requires a PostHog project with a Personal API key. Set the POSTHOG_API_KEY, POSTHOG_API_HOST, and POSTHOG_PROJECT_ID environment variables on your oCore backend. Each instance can target a different PostHog project via the instance analytics settings.

Revenue Dashboard

The revenue dashboard tracks sales performance from Odoo sales:order_confirmed and accounting:invoice_posted events:

MetricDescription
Current RevenueTotal order revenue in the selected period
Previous RevenueRevenue from the prior equivalent period for comparison
Change %Period-over-period revenue change percentage
Order CountNumber of confirmed sales orders
Invoiced RevenueRevenue from posted invoices
Avg Order ValueCurrent revenue divided by order count
Revenue TrendDaily revenue chart over the selected period

Additional revenue views:

  • Revenue by Currency -- Breakdown of revenue and order counts per currency
  • Top Customers -- Ranked list of customers by total revenue, with order counts and average order values
  • Revenue Time Series -- Daily revenue trend data for charting

Active Users

Track daily, weekly, and monthly active users (DAU/WAU/MAU) based on distinct person activity:

MetricDescription
DAUDistinct users active in the last 24 hours
WAUDistinct users active in the last 7 days
MAUDistinct users active in the last 30 days
DAU TrendDaily active user count over the selected period

Additional user views:

  • Top Users -- Most active users ranked by event count, showing email, name, and last seen
  • Online Users -- Real-time view of users with activity in the last 5 minutes (not cached)

Session Replay

oCore provides links to PostHog session recordings for debugging and analysis. Session replay URLs are available on:

  • Recent Sessions -- Each session entry includes a direct link to the PostHog replay
  • Audit Trail Entries -- Audit events with a session ID link to the corresponding replay
  • Error Details -- Error occurrences can be linked to the session in which they happened

Recent sessions show:

  • Session duration, pageview count, and interaction count
  • User email and name resolved from PostHog person properties
  • Start time and last activity timestamp

Web Vitals

Core Web Vitals are collected from PostHog $web_vitals events and reported at the p75 (75th percentile) level:

VitalGoodNeeds ImprovementPoor
LCP (Largest Contentful Paint)< 2500ms2500-4000ms> 4000ms
INP (Interaction to Next Paint)< 200ms200-500ms> 500ms
CLS (Cumulative Layout Shift)< 0.10.1-0.25> 0.25

Each vital includes a rating (good, needs-improvement, poor) and LCP includes a daily trend chart.

The Slow RPCs view identifies the slowest Odoo RPC endpoints based on odoo:slow_rpc events, showing average duration, max duration, and call count per endpoint.

Error Tracking (PostHog)

In addition to oCore's built-in error tracking (see Error Tracking), PostHog captures $exception events from the Odoo frontend:

  • Error Summary -- Active error tracking issues from PostHog's error tracking API, with occurrence counts, affected users, and sessions
  • Errors by Module -- Error counts grouped by Odoo module with percentage breakdown
  • Error Trend -- Daily error count chart from $exception events
  • Session Replay Link -- Each error type links to a sample session recording for debugging

Audit Trail

The audit trail provides a security-focused event log queried from PostHog, covering authentication, administration, security, and system events:

CategoryExample Events
authLogin, logout, password change, 2FA enable/disable, API key created/deleted
securityAccess denied, brute force attempt, privilege escalation
adminUser created/deleted, module installed, settings changed, group membership changed
commsEmail sent, SMS sent
systemCron executed/failed, backup completed

Each audit entry includes:

  • Severity classification (critical, high, medium, low)
  • User name, email, and IP address
  • Affected model, record ID, and record name
  • Changed fields with old and new values
  • Session replay link when available

Filter the audit trail by severity, category, user ID, and time period. You can also view the audit history for a specific record by model name and record ID.

Productivity Metrics

The productivity dashboard combines event data with session duration to score per-user productivity:

MetricDescription
Records SavedCount of odoo:record_saved and related events
Records CreatedCount of audit:record_created events
Shortcuts UsedCount of odoo:keyboard_shortcut events
Errors HitCount of error dialog and exception events
Session HoursTotal time spent in sessions (from PostHog sessions table)
Productivity IndexRecords saved per session hour
Top ModulesThe 3 most-used Odoo models per user

Events and session queries run in parallel for optimal performance. Data is cached for 15 minutes.

Period Selection

All analytics views support configurable time periods:

PeriodInterval
1dLast 24 hours
7dLast 7 days
14dLast 14 days
30dLast 30 days
90dLast 90 days

Caching and Rate Limits

PostHog queries are rate-limited (default 30 requests/minute) with a concurrency semaphore of 3 simultaneous requests. Results are cached in memory with TTLs ranging from 2 minutes (audit trail, sessions) to 30 minutes (web vitals, slow RPCs). Failed requests are retried up to 2 times with exponential backoff.

Troubleshooting

Metrics not updating

  • Verify the oCore agent is running on the server
  • Check that the server status is active (not unreachable)
  • Verify the SSE connection is not blocked by a firewall or proxy

Alerts not being received

  • Check notification preferences in your account settings
  • Verify your email address is confirmed
  • Check that alert thresholds are properly configured

Activity feed missing events

  • The feed is scoped to your organization -- events from other orgs are not shown
  • Very old events may be outside the default query window -- use date range filters
  • Check that the user performing the action has proper audit logging enabled

Operation logs incomplete

  • Logs stream in real time; if you disconnect mid-operation, reconnect to see the full output
  • Failed operations may have partial logs up to the point of failure
  • Check the operation status to confirm whether it completed or failed
Was this page helpful?