Performance monitoring

This guide covers cluster-wide performance monitoring for administrators, including internal tables, external monitoring integration, and alerting strategies.

Note

For monitoring individual query performance, see Monitor queries.

Overview

Effective cluster monitoring requires tracking:

LayerMetricsTools
InfrastructureCPU, memory, disk, networkPrometheus Node Exporter, iostat, vmstat
ApplicationProcess health, PQ status, connectionsStatus Dashboard, internal tables
QueryExecution time, resource usage, errorsInternal performance tables

Internal tables for monitoring

Deephaven logs operational data to internal tables in the DbInternal namespace.

Key monitoring tables

TablePurposeKey columns
ProcessMetricsLogCoreV2JVM and system metricsName, Last, Min, Max, Avg
ProcessEventLogProcess log messagesProcess, Level, LogEntry
PersistentQueryStateLogPQ state changesName, Status, Owner
ResourceUtilizationDispatcher resource usageHeapUsageMB, HeapAvailableMB, WorkerCount
ServerStateLogCoreV2Worker JVM metricsTotalMemoryMiB, FreeMemoryMiB, IntervalCollections

Process metrics queries

Persistent Query monitoring

Resource utilization

Status Dashboard (Prometheus)

The Status Dashboard provides a Prometheus-compatible metrics endpoint for external monitoring.

Default configuration

PropertyDefaultDescription
StatusDashboard.prometheus.port8112Prometheus scrape port
StatusDashboard.prometheus.namespaceDeephavenMetrics namespace
StatusDashboard.useSsltrueEnable HTTPS
StatusDashboard.useAuthenticationtrueRequire authentication

Available metrics

The Status Dashboard exports:

  • Process health: Controller, dispatchers, PQ status
  • Certificate expiration: Days until SSL certificates expire
  • Data lag: Latency of internal table updates
  • Custom PQ metrics: User-defined monitoring

Prometheus integration

Configure Prometheus to scrape the Status Dashboard:

See Status Dashboard for complete configuration.

Key metrics to monitor

Process health

These processes must be running for the cluster to function:

  • Controller: Manages PQ lifecycle and cluster state
  • Dispatcher: Starts and manages workers
  • TDCP: Caches intraday data for workers
  • DIS: Ingests and serves intraday data

Use dh_monit summary to check process status.

Resource utilization

Appropriate resource thresholds are system-dependent. Establish baselines during normal operations and monitor for deviation.

How to monitor:

What to look for:

  • Heap usage after GC: Query Memory-Heap.Used / Memory-Heap.Max. Rising trends may indicate memory pressure.
  • GC pause time: Query Memory-GC-* metrics. Increasing pauses affect responsiveness.
  • CPU utilization: Use htop or query CPU metrics from ProcessMetricsLogCoreV2.
  • Disk utilization: Use df -h and iostat -xz 5 to check capacity and I/O.

Data pipeline

Metrics to track:

  • DIS write throughput: Significant drops indicate ingestion issues.
  • Merge completion: Delays affect historical data availability.
  • Internal table lag: Affects monitoring and audit data freshness.

Persistent Queries

Metrics to track:

  • PQ status: Error/Failed states require investigation.
  • PQ restart frequency: High restart rates indicate instability.
  • Worker acquisition time: Slow acquisition indicates dispatcher capacity issues.

Alerting strategies

Critical (immediate action):

  • Controller or dispatcher down
  • DIS not running
  • Disk space critically low
  • Certificate expiring soon

Warning (investigate soon):

  • PQ in Failed/Error state
  • Resource utilization consistently above baseline
  • GC pauses increasing
  • Merge jobs behind schedule

Informational:

  • PQ restarts
  • Worker acquisitions
  • Configuration changes

Alert configuration

Using Grafana with Prometheus:

  1. Import the example dashboard from /usr/illumon/latest/etc/grafanaDashboard.json.
  2. Configure alert rules based on your established baselines.
  3. Set up notification channels (email, Slack, PagerDuty).

Monitoring commands

Process status

System metrics

Log analysis

Quick reference

Internal table quick access

Monitoring checklist

  1. ✅ Status Dashboard configured and accessible
  2. ✅ Prometheus scraping Deephaven metrics
  3. ✅ Node Exporter running on all hosts
  4. ✅ Grafana dashboards configured
  5. ✅ Alert rules defined for critical metrics
  6. ✅ Notification channels configured
  7. ✅ Internal table queries available for investigation