Application Monitoring

Built-in health checks, metrics, and alerting for production Oorian applications.

OorianMonitor

Know what your application is doing in production. OorianMonitor gives you visibility into health, performance, and resource usage without external tooling.

Health Checks

Automatic health endpoints for load balancers and orchestrators. Monitor database connectivity, memory, disk, and custom checks.

Performance Metrics

Track request latency, throughput, active sessions, and WebSocket connections. Identify bottlenecks before they become problems.

Prometheus Export

Expose metrics in Prometheus-compatible format for integration with Grafana, Datadog, and other monitoring platforms.

Admin Dashboard

Built-in web dashboard for real-time application status. View active sessions, memory usage, thread pools, and error rates.

Alert Callbacks

Configure callback handlers triggered by threshold violations. Send notifications via email, Slack, or custom integrations.

Historical Data

Retain metrics history for trend analysis. Identify patterns in resource usage and performance over time.

Built-in Metrics

OorianMonitor tracks key application metrics automatically. No instrumentation code required.

Request Metrics

Total requests, response times (p50, p95, p99), error rates, and requests per second broken down by page and communication mode.

Session Metrics

Active sessions, session duration, peak concurrent sessions, and session creation/destruction rates.

WebSocket Metrics

Open connections, messages sent/received, connection duration, and reconnection rates.

JVM Metrics

Heap and non-heap memory usage, garbage collection pauses, thread counts, and class loading statistics.

Custom Metrics

Register application-specific counters, gauges, and histograms using the OorianMonitor API.

Quick Setup

Enable monitoring with a few lines of configuration in your Application class.

Java
// In your Application class
@Override
protected void initialize()
{
    // Enable monitoring
    OorianMonitor monitor = OorianMonitor.enable();

    // Configure health endpoint
    monitor.setHealthEndpoint("/health");

    // Enable Prometheus metrics export
    monitor.setMetricsEndpoint("/metrics");

    // Configure alert thresholds
    monitor.onHighMemory(0.85, this::sendMemoryAlert);
    monitor.onSlowResponse(Duration.ofSeconds(5), this::logSlowRequest);
    monitor.onErrorRate(0.05, this::notifyOps);

    // Enable admin dashboard (protected page)
    monitor.enableDashboard("/admin/monitor");
}