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.
// 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");
}