Monitoring: FAQ
-
This page answers common operational questions related to monitoring.
Each answer names the monitoring tool for the job, and links to the articles that explain the tool in full. -
In this article:
- My requests are slow - where do I start?
- Can I stop a query that runs for too long?
- Is the disk the bottleneck?
- Disk space is running out - what is taking it?
- I deleted documents, but the database keeps growing
- An ETL or AI task stopped working - how do I find out why?
- How do I get alerted before trouble?
- How do I silence a notification I do not need?
- The server hangs or burns CPU - what is it doing?
- How do I raise the logging detail without restarting the server?
- How do I read RavenDB metrics in an external monitoring tool?
- What do I send the support team when I report an issue?
Frequently Asked Questions
My requests are slow - where do I start?
Open the Cluster Dashboard for the whole-cluster
picture: its CPU, Traffic, and Indexing widgets report each metric for every cluster node.
Then open the Running Queries view to
list the queries the server is currently running, and inspect the requests themselves using
Traffic Watch.
When a query's duration exceeds the configured threshold, the server raises a
request-latency performance hint
on its own.
Can I stop a query that runs for too long?
Yes. The Running Queries view lists the
queries running on the node you are connected to, and you can abort a query from its row.
The abort action does not stop the query on the spot. RavenDB signals the query to stop, and
the query ends shortly afterwards.
Is the disk the bottleneck?
The IO Stats views draw a timeline of the disk
operations RavenDB performs. Use these views to spot the operations that are slow to complete.
The IO Stats widget on the cluster
dashboard reads per-drive counters from the operating system, like IOPS and throughput.
When disk writes are extremely slow, the server raises a
slow-writes performance hint.
Disk space is running out - what is taking it?
The Storage Reports show the disk space a
database uses, broken down by component, and the storage of the server-wide data RavenDB keeps
outside any user database.
The Storage widget reports the used disk
space and total capacity of every cluster node at a glance.
When disk space is not reclaimed after documents are deleted, see
I deleted documents, but the database keeps growing
below.
I deleted documents, but the database keeps growing
RavenDB replaces every deleted document with a marker called a
tombstone, so that indexing, replication, and the ETL
and incremental backup tasks can handle the deletion.
Tombstones take up disk space until RavenDB removes them, and the periodic tombstone cleanup
clears only the tombstones that no process still needs.
When a process lags behind, tombstones accumulate, and the space they take grows with every
deletion.
The Tombstones view shows the progress of this
cleanup for each collection, and the number of tombstones each process still has to handle.
An ETL or AI task stopped working - how do I find out why?
When an ETL task or an AI task
(Embeddings Generation or
GenAI) fails to process an item or a
batch, the failure is stored as a task error.
The Task Errors view lists these errors, and
shows each task's health classification: Healthy, Impaired, or Failed.
To follow the task as it runs, open the
Ongoing Task Stats view.
This view draws the task's operations over time.
How do I get alerted before trouble?
The server raises alerts
in Studio's notification center when it detects a condition that requires your attention, like
low disk space.
To be alerted outside Studio, connect an external monitoring tool.
The Zabbix community template includes
triggers for common operational concerns, like an expiring certificate, and a
Prometheus server can raise alerts when a metric
crosses a threshold you have set.
How do I silence a notification I do not need?
Use the Notifications.FilterOut
configuration key
to filter out the notifications you do not need: a whole notification type, or only the
notifications raised for a specific reason.
The Notification center
article lists the values this key accepts, and the way to read an alert's Reason.
The server hangs or burns CPU - what is it doing?
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.
To capture the stack trace of a single thread rather than that of all threads, use the
advanced-debug view's
Threads Runtime Info tab.
This tab also lists the server's threads and the CPU each thread uses, so you can locate the
thread behind the load.
How do I raise the logging detail without restarting the server?
Use Studio's Admin Logs view to change the logging
settings, including the minimum logging level.
The settings take effect immediately, without a server restart.
You can also make the same change from your own code, using the
logging client API.
How do I read RavenDB metrics in an external monitoring tool?
RavenDB exposes its metrics in the formats common monitoring systems read, so an external tool can collect RavenDB metrics the same way it collects metrics from any other service:
- A tool that reads JSON over HTTP, like Telegraf, can poll the JSON monitoring endpoints.
- A Prometheus server can collect RavenDB metrics through the Prometheus endpoint, store their values over time, graph them, and raise alerts.
- Zabbix, PRTG, and other SNMP-based tools can read the metrics as SNMP OIDs.
- An OpenTelemetry Collector, or any other consumer of OTLP (OpenTelemetry Protocol), can receive the metrics RavenDB sends over the protocol.
What do I send the support team when I report an issue?
When you encounter an incident or an issue with RavenDB and turn to the support team, the team
needs relevant information to diagnose and resolve the issue.
Use the Collect Info for Support article to learn about
collecting this information, including the creation of a
debug package and the download of
server logs.
Before sending a debug package to support, you can inspect it yourself using the
Debug Package Analyzer, and
possibly locate the problem on your own.