Skip to main content

Monitoring: Overview

  • You can monitor every level of a RavenDB deployment: the cluster and its nodes, server resources like CPU and memory, each database with its indexes and ongoing tasks, and the requests clients send.

  • Monitoring data is shown live in Studio views, exposed by HTTP endpoints as JSON or Prometheus metrics, and available for external monitoring tools like Zabbix and Grafana.

  • The server also watches itself: alerts report conditions that require your attention, like a failed backup task, and performance hints point out inefficiencies you can remove, like a query that retrieves an excessive number of results.
    Studio's notification center presents both.

  • For configuration options related to monitoring, see the Monitoring: Configuration article.

  • For the security clearances, license requirements, and exposure considerations related to monitoring, see the Security concerns article.

  • For short answers to common operational questions, like locating the source of a slowdown, see the FAQ.

  • In this article:

What can be monitored

Monitoring data, grouped by the part of the deployment it describes:

Monitored areaData you can follow
The cluster and its nodesThe state and resource use of every cluster node, and the cluster observer's decisions
Server resourcesCPU power, memory, disk space, and disk I/O, for the machine and for the RavenDB process
DatabasesDocument and document-extension counts, the disk space a database uses (broken down by component), and per-node details like the database ID
IndexesThe indexing counters of each index, and stale or faulty indexes
Ongoing tasksTask activity over time, the duration and data volume of each operation, and each task's errors and health
Requests and queriesThe requests the server receives, streamed live or logged to file, and the queries currently running
Server notificationsThe alerts, performance hints, and operation reports the server raises, stored per node

Monitoring in Studio

Cluster Dashboard

The Cluster Dashboard presents live diagnostics for the whole cluster: each widget shows a set of metrics, gathered from every cluster node.
You can customize the dashboard by adding, removing, resizing, and repositioning widgets.

Statistics

Studio's Stats view shows the statistics of a single database: the counts of the database's documents and document extensions, per-node details like the database ID, and the indexing counters of each index.
Statistics can also be retrieved using other Studio views and dedicated endpoints, listed in the Statistics overview article.

Performance views

Use the performance views to follow RavenDB's activity as it happens:

  • IO Stats draws a timeline of RavenDB's disk operations.
  • Running Queries lists the queries a server is currently running.
    You can abort a query that runs for too long.
  • Storage Reports show disk space use, broken down by component.
  • Ongoing Task Stats draws a graph of the work a database's ongoing tasks perform over time.

Logging

Use Studio's Admin Logs view to follow the server's log as entries arrive, and to change the logging settings without restarting the server.
To learn about RavenDB's logging system, see the Logging overview article.

Traffic Watch

Studio's Traffic Watch view shows a live stream of the requests the server receives.
You can also log the requests to file, and monitor them using API calls and endpoints.

Alerts and notifications

The notification center presents alerts, performance hints, reports of running operations, and errors, raised by the server or by Studio itself.
You can read, dismiss, postpone, and filter out these notifications.

Task errors

The Task Errors view lists the errors raised when an ETL task or an AI task (Embeddings Generation or GenAI) fails to process an item or a batch.
Each task also carries a health classification that reflects its recent error rate: Healthy, Impaired, or Failed.
To learn about task errors and the health states they drive, see the Task errors overview article.

Tombstones

When a document is deleted, RavenDB replaces it with a marker called a tombstone, so that indexing, replication, and the ETL and incremental backup tasks can handle the deletion.
RavenDB removes tombstones that are no longer needed through a periodic cleanup.
The Tombstones view shows the progress of this cleanup for each collection, and the number of tombstones each process still has to handle.

Monitoring over HTTP via endpoints and the client API

RavenDB exposes monitoring data over HTTP in several forms:

  • JSON monitoring endpoints report performance and health metrics for the server itself, its databases, indexes, and collections, and for ETL, AI, and CDC (Change Data Capture) Sink tasks.
    Any monitoring tool that reads JSON over HTTP can poll these endpoints.
  • The Prometheus endpoint returns metrics in the Prometheus format, so a Prometheus server can scrape and handle them.
  • Debug endpoints report internal server and database information for diagnostics.
  • Using the client API, you can retrieve statistics and read and change the logging configuration at runtime, without restarting the server.

Connecting external monitoring tools

External monitoring systems can read RavenDB's metrics through several integrations:

  • Over SNMP, monitoring tools like Zabbix and PRTG can read RavenDB's metrics.
    The Zabbix community template provides ready-made queries, alert rules, graphs, and a dashboard.
  • Through OpenTelemetry, RavenDB sends its metrics over OTLP (OpenTelemetry Protocol) to any consumer that accepts the protocol, commonly an OpenTelemetry Collector.
  • A Prometheus server can scrape RavenDB's metrics, store their values over time, graph them, and raise alerts when a value crosses a threshold you have set.
  • Telegraf's RavenDB input plugin reads metrics from the JSON monitoring endpoints and forwards them to the destination set in the Telegraf configuration, commonly InfluxDB, with the data charted by Grafana.

Deep diagnostics and support

Use the following tools to look into the server's internals and package diagnostic information:

  • The advanced-debug view presents diagnostic tabs with which you can inspect the server's threads and memory mapped files, follow the Cluster Observer's decisions, browse the Raft log, and record and replay a database's transaction commands.
  • The Stack Traces view captures the stack traces of all server threads at once, and draws the traces as a graph that groups threads running the same code, so you can figure out the exact code a misbehaving server runs.
  • You can collect diagnostic information about a server or a cluster into a single debug package.
    The Debug Package Analyzer allows you to inspect a debug package you prepared, and reports the state of the cluster, its nodes, and its databases, along with any detected issues.
  • When you contact support about an incident, use the Collect Info for Support article to learn about collecting the information the support team needs to diagnose and resolve the issue.

Using the Admin JS Console, you can run JavaScript code on the server or on a specific database, with low-level access.

Incorrect usage may crash the server or corrupt data; do not use the console unless you are sure of what you are doing.

In this article