---
title: RavenDB
description: Monitor RavenDB nodes, databases, and performance with Datadog
breadcrumbs: Docs > Integrations > RavenDB
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# RavenDB
Supported OS Integration version1.0.0
{% callout %}
# Important note for users on the following Datadog sites: us2.ddog-gov.com

{% alert level="info" %}
To find out if this integration is available in your organization, see your [Datadog Integrations](https://app.datadoghq.com/integrations) page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email [support@ddog-gov.com](mailto:support@ddog-gov.com).
{% /alert %}

{% /callout %}
   RavenDB Dashboard - Cluster Health, Logs and NetworkRavenDB Dashboard - Databases and IndexesRavenDB Dashboard - Resources and Performance
## Overview{% #overview %}

RavenDB is a high-performance NoSQL document database designed for modern applications that require scalability, reliability, and low-latency data access. It provides ACID transactions, automatic indexing, full-text search, distributed clustering, and built-in high availability.

The RavenDB integration collects metrics directly from RavenDB's Prometheus/OpenMetrics endpoint, giving operators comprehensive visibility into the health and performance of their deployments.

### Monitor your RavenDB deployment{% #monitor-your-ravendb-deployment %}

Monitor key operational metrics including:

- Cluster health and node status
- CPU, memory, disk, and network utilization
- Database activity and request throughput
- Indexing performance and errors
- Storage utilization and I/O
- Licensing and certificate status

### Built-in dashboards{% #built-in-dashboards %}

The integration includes pre-built dashboards that provide an operational overview of your RavenDB environment. Visualize resource utilization, database performance, indexing activity, storage, networking, and cluster health from a single place, helping identify bottlenecks and troubleshoot issues faster.

### Optional log collection{% #optional-log-collection %}

Collect RavenDB logs alongside metrics to correlate operational events with infrastructure performance. This unified view simplifies troubleshooting and accelerates root cause analysis.

### Secure and production ready{% #secure-and-production-ready %}

The integration supports both unsecured and TLS-secured RavenDB deployments, including client certificate authentication. It is designed for single-node servers as well as distributed RavenDB clusters, making it suitable for development, staging, and production environments.

## Setup{% #setup %}

### Metric collection{% #metric-collection %}

- RavenDB exposes metrics in [Prometheus/OpenMetrics](https://docs.ravendb.net/server/administration/monitoring/prometheus/) format at an administrative endpoint: `/admin/monitoring/v1/prometheus`.

- Edit the `ravendb/conf.yaml` file in the `conf.d/` directory of the Datadog Agent. Minimal configuration example:

```yaml
   init_config:
   instances:
     - openmetrics_endpoint: "http://localhost:8080/admin/monitoring/v1/prometheus"
```

- Edit the `ravendb/conf.yaml` file in the `conf.d/` directory of the Datadog Agent. See the sample [ravendb/conf.yaml](https://github.com/ravendb/ravendb-datadog-integration/blob/main/datadog_checks/ravendb/data/conf.yaml.example) for all available configuration options.

Minimal configuration example:

```yaml
   init_config:
   instances:
     - openmetrics_endpoint: "http://localhost:8080/admin/monitoring/v1/prometheus"
```

### Secured endpoints (TLS){% #secured-endpoints-tls %}

If the RavenDB metrics endpoint is exposed over HTTPS and requires client authentication, configure TLS options:

```yaml
instances:
  - openmetrics_endpoint: "https://<host>/admin/monitoring/v1/prometheus"
    tls_cert: /path/to/client.crt
    tls_private_key: /path/to/client.key
```

Ensure the Datadog Agent user has read access to the certificate and key files.

### Cluster deployments{% #cluster-deployments %}

For RavenDB clusters:

- Install and configure the Datadog Agent on each node
- Configure each Agent instance to scrape the local node's metrics endpoint
- Use tags to correlate metrics across nodes and clusters

Example:

```yaml
instances:
  - openmetrics_endpoint: "<RAVENDB_METRICS_URL>"
    tags:
      - ravendb_cluster:dev-cluster
      - ravendb_node:A
```

### Log collection (optional){% #log-collection-optional %}

To collect RavenDB logs, enable log collection in datadog.yaml:

```yaml
`logs_enabled: true`
```

Then add a log configuration to `ravendb.d/conf.yaml`:

```yaml
logs:
  - type: file
    path: /var/log/ravendb/*.log
    service: ravendb
    source: ravendb

    log_processing_rules:
      - type: multi_line
        name: ravendb_multiline
        pattern: '^\d{4}-\d{2}-\d{2}'
```

Ensure the Datadog Agent user has read permissions on the log files.

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **ravendb.openmetrics.health**(gauge)                                      | Health status of the RavenDB OpenMetrics endpoint (1 = scrape successful and 0 = scrape failed). |
| **ravendb.server.info**(gauge)                                             | Server information exposed by RavenDB.                                                           |
| **ravendb.server.uptime.seconds**(gauge)                                   | Server uptime in seconds.*Shown as second*                                                       |
| **ravendb.server.process.id**(gauge)                                       | Process ID of the RavenDB server.                                                                |
| **ravendb.cluster.current.term**(gauge)                                    | Current cluster term.                                                                            |
| **ravendb.cluster.index**(gauge)                                           | Current cluster index.                                                                           |
| **ravendb.cpu.machine.usage**(gauge)                                       | Overall CPU usage of the machine.*Shown as percent*                                              |
| **ravendb.cpu.process.usage**(gauge)                                       | CPU usage of the RavenDB process.*Shown as percent*                                              |
| **ravendb.cpu.processor.count**(gauge)                                     | Number of logical processors on the machine.                                                     |
| **ravendb.cpu.assigned.processor.count**(gauge)                            | Number of processors assigned to the RavenDB process.                                            |
| **ravendb.cpu.thread.pool.available.worker.threads**(gauge)                | Number of available worker threads in the thread pool.                                           |
| **ravendb.cpu.thread.pool.available.completion.port.threads**(gauge)       | Number of available completion port threads in the thread pool.                                  |
| **ravendb.cpu.machine.io.wait**(gauge)                                     | Percentage of time the CPU waits for I/O operations.*Shown as percent*                           |
| **ravendb.backup.current.number.of.running.backups**(gauge)                | Current number of running backups.                                                               |
| **ravendb.backup.max.number.of.concurrent.backups**(gauge)                 | Maximum number of concurrent backups allowed.                                                    |
| **ravendb.memory.allocated.bytes**(gauge)                                  | Amount of memory allocated by the process.*Shown as byte*                                        |
| **ravendb.memory.installed.bytes**(gauge)                                  | Total installed physical memory.*Shown as byte*                                                  |
| **ravendb.memory.physical.bytes**(gauge)                                   | Total physical memory available.*Shown as byte*                                                  |
| **ravendb.memory.low.memory.severity**(gauge)                              | Current low memory severity level.                                                               |
| **ravendb.memory.total.dirty.bytes**(gauge)                                | Total amount of dirty memory.*Shown as byte*                                                     |
| **ravendb.memory.total.swap.size.bytes**(gauge)                            | Total swap size available on the system.*Shown as byte*                                          |
| **ravendb.memory.total.swap.usage.bytes**(gauge)                           | Total swap space currently in use.*Shown as byte*                                                |
| **ravendb.memory.working.set.swap.usage.bytes**(gauge)                     | Swap usage of the working set.*Shown as byte*                                                    |
| **ravendb.available.memory.for.processing.bytes**(gauge)                   | Available memory for processing.*Shown as byte*                                                  |
| **ravendb.managed.memory.bytes**(gauge)                                    | Managed memory used by the process.*Shown as byte*                                               |
| **ravendb.unmanaged.memory.bytes**(gauge)                                  | Unmanaged memory used by the process.*Shown as byte*                                             |
| **ravendb.gc.index**(gauge)                                                | GC index of the last collection.                                                                 |
| **ravendb.gc.generation**(gauge)                                           | Generation collected by the last GC.                                                             |
| **ravendb.gc.compacted**(gauge)                                            | Whether the last GC was compacting (1=true and 0=false).                                         |
| **ravendb.gc.concurrent**(gauge)                                           | Whether the last GC was concurrent (1=true and 0=false).                                         |
| **ravendb.gc.finalization.pending.count**(gauge)                           | Number of objects pending finalization.                                                          |
| **ravendb.gc.fragmented.mb**(gauge)                                        | Heap fragmentation after GC.*Shown as megabyte*                                                  |
| **ravendb.gc.heap.size.mb**(gauge)                                         | Total GC heap size after collection.*Shown as megabyte*                                          |
| **ravendb.gc.high.memory.load.threshold.mb**(gauge)                        | High memory load threshold at GC time.*Shown as megabyte*                                        |
| **ravendb.gc.memory.load.mb**(gauge)                                       | Memory load at GC time.*Shown as megabyte*                                                       |
| **ravendb.gc.pause.durations.1.seconds**(gauge)                            | First GC pause duration.*Shown as second*                                                        |
| **ravendb.gc.pause.durations.2.seconds**(gauge)                            | Second GC pause duration.*Shown as second*                                                       |
| **ravendb.gc.pause.time.percentage**(gauge)                                | Percentage of time spent paused for GC.*Shown as percent*                                        |
| **ravendb.gc.pinned.objects.count**(gauge)                                 | Number of pinned objects during GC.                                                              |
| **ravendb.gc.promoted.mb**(gauge)                                          | Memory promoted during GC.*Shown as megabyte*                                                    |
| **ravendb.gc.total.available.memory.mb**(gauge)                            | Total available memory for GC.*Shown as megabyte*                                                |
| **ravendb.gc.total.committed.mb**(gauge)                                   | Total committed managed heap size.*Shown as megabyte*                                            |
| **ravendb.network.tcp.active.connections**(gauge)                          | Number of active TCP connections.                                                                |
| **ravendb.network.concurrent.requests.count**(gauge)                       | Number of concurrent network requests.                                                           |
| **ravendb.network.last.request.time.in.seconds**(gauge)                    | Time since the last network request in seconds.*Shown as second*                                 |
| **ravendb.network.total.requests**(count)                                  | Total number of network requests received by the server.                                         |
| **ravendb.certificate.server.certificate.expiration.left.seconds**(gauge)  | Time left until the server certificate expires in seconds.*Shown as second*                      |
| **ravendb.cluster.node.state**(gauge)                                      | Current state of the cluster node.                                                               |
| **ravendb.databases.loaded.count**(gauge)                                  | Number of databases currently loaded.                                                            |
| **ravendb.databases.total.count**(gauge)                                   | Total number of databases.                                                                       |
| **ravendb.server.storage.io.read.operations**(count)                       | Total number of storage read I/O operations.                                                     |
| **ravendb.server.storage.io.write.operations**(count)                      | Total number of storage write I/O operations.                                                    |
| **ravendb.server.storage.read.throughput.bytes**(gauge)                    | Storage read throughput in bytes.*Shown as byte*                                                 |
| **ravendb.server.storage.write.throughput.bytes**(gauge)                   | Storage write throughput in bytes.*Shown as byte*                                                |
| **ravendb.server.storage.queue.length**(gauge)                             | Length of the storage I/O queue.                                                                 |
| **ravendb.server.storage.total.free.space.bytes**(gauge)                   | Total free storage space available.*Shown as byte*                                               |
| **ravendb.server.disk.system.store.used.data.file.size.bytes**(gauge)      | Used size of system store data files.*Shown as byte*                                             |
| **ravendb.server.disk.system.store.total.data.file.size.bytes**(gauge)     | Total size of system store data files.*Shown as byte*                                            |
| **ravendb.server.disk.remaining.storage.space.percentage**(gauge)          | Remaining storage space percentage.*Shown as percent*                                            |
| **ravendb.license.type**(gauge)                                            | Current license type.                                                                            |
| **ravendb.license.expiration.left.seconds**(gauge)                         | Time left until license expiration in seconds.*Shown as second*                                  |
| **ravendb.license.utilized.cpu.cores**(gauge)                              | Number of CPU cores utilized by the license.                                                     |
| **ravendb.license.max.cores**(gauge)                                       | Maximum number of CPU cores allowed by the license.                                              |
| **ravendb.database.uptime.seconds**(gauge)                                 | Database uptime in seconds.*Shown as second*                                                     |
| **ravendb.database.time.since.last.backup.seconds**(gauge)                 | Time since the last database backup in seconds.*Shown as second*                                 |
| **ravendb.database.documents.count**(gauge)                                | Number of documents in the database.                                                             |
| **ravendb.database.revisions.count**(gauge)                                | Number of document revisions in the database.                                                    |
| **ravendb.database.attachments.count**(gauge)                              | Number of attachments in the database.                                                           |
| **ravendb.database.unique.attachments.count**(gauge)                       | Number of unique attachments in the database.                                                    |
| **ravendb.database.alerts.count**(gauge)                                   | Number of active database alerts.                                                                |
| **ravendb.database.rehabs.count**(gauge)                                   | Number of database rehabs.                                                                       |
| **ravendb.database.performance.hints.count**(gauge)                        | Number of database performance hints.                                                            |
| **ravendb.database.replication.factor**(gauge)                             | Database replication factor.                                                                     |
| **ravendb.database.statistics.doc.puts.per.second**(gauge)                 | Number of document puts per second.                                                              |
| **ravendb.database.statistics.map.index.indexes.per.second**(gauge)        | Number of map index operations per second.                                                       |
| **ravendb.database.statistics.map.reduce.index.mapped.per.second**(gauge)  | Number of map-reduce index map operations per second.                                            |
| **ravendb.database.statistics.map.reduce.index.reduced.per.second**(gauge) | Number of map-reduce index reduce operations per second.                                         |
| **ravendb.database.statistics.requests.per.second**(gauge)                 | Number of database requests per second.                                                          |
| **ravendb.database.statistics.requests.count**(count)                      | Total number of database requests.                                                               |
| **ravendb.database.statistics.request.average.duration.seconds**(gauge)    | Average duration of database requests in seconds.*Shown as second*                               |
| **ravendb.database.indexes.count**(gauge)                                  | Total number of database indexes.                                                                |
| **ravendb.database.indexes.stale.count**(gauge)                            | Number of stale database indexes.                                                                |
| **ravendb.database.indexes.errors.count**(gauge)                           | Number of database indexes with errors.                                                          |
| **ravendb.database.indexes.static.count**(gauge)                           | Number of static database indexes.                                                               |
| **ravendb.database.indexes.auto.count**(gauge)                             | Number of auto database indexes.                                                                 |
| **ravendb.database.indexes.idle.count**(gauge)                             | Number of idle database indexes.                                                                 |
| **ravendb.database.indexes.disabled.count**(gauge)                         | Number of disabled database indexes.                                                             |
| **ravendb.database.indexes.errored.count**(gauge)                          | Number of errored database indexes.                                                              |
| **ravendb.database.storage.documents.allocated.data.file.bytes**(gauge)    | Allocated document data file size in bytes.*Shown as byte*                                       |
| **ravendb.database.storage.documents.used.data.file.bytes**(gauge)         | Used document data file size in bytes.*Shown as byte*                                            |
| **ravendb.database.storage.indexes.allocated.data.file.bytes**(gauge)      | Allocated index data file size in bytes.*Shown as byte*                                          |
| **ravendb.database.storage.indexes.used.data.file.bytes**(gauge)           | Used index data file size in bytes.*Shown as byte*                                               |
| **ravendb.database.storage.total.allocated.storage.file.bytes**(gauge)     | Total allocated database storage file size in bytes.*Shown as byte*                              |
| **ravendb.database.storage.total.free.space.bytes**(gauge)                 | Total free database storage space in bytes.*Shown as byte*                                       |
| **ravendb.database.storage.io.read.operations**(count)                     | Total number of database storage read I/O operations.                                            |
| **ravendb.database.storage.io.write.operations**(count)                    | Total number of database storage write I/O operations.                                           |
| **ravendb.database.storage.read.throughput.bytes**(gauge)                  | Database storage read throughput in bytes.*Shown as byte*                                        |
| **ravendb.database.storage.write.throughput.bytes**(gauge)                 | Database storage write throughput in bytes.*Shown as byte*                                       |
| **ravendb.database.storage.queue.length**(gauge)                           | Length of the database storage I/O queue.                                                        |
| **ravendb.index.errors**(gauge)                                            | Number of indexing errors.                                                                       |
| **ravendb.index.is.invalid**(gauge)                                        | Indicates whether the index is invalid.                                                          |
| **ravendb.index.priority**(gauge)                                          | Priority level of the index.                                                                     |
| **ravendb.index.state**(gauge)                                             | Current state of the index.                                                                      |
| **ravendb.index.lock.mode**(gauge)                                         | Current lock mode of the index.                                                                  |
| **ravendb.archived.data.processing.behavior**(gauge)                       | Archived data processing behavior.                                                               |
| **ravendb.index.status**(gauge)                                            | Current status of the index.                                                                     |
| **ravendb.index.type**(gauge)                                              | Type of the index.                                                                               |
| **ravendb.index.entries.count**(gauge)                                     | Number of entries in the index.                                                                  |
| **ravendb.index.time.since.last.indexing.seconds**(gauge)                  | Time since the last indexing operation in seconds.*Shown as second*                              |
| **ravendb.index.time.since.last.query.seconds**(gauge)                     | Time since the last query against the index in seconds.*Shown as second*                         |
| **ravendb.index.mapped.per.second**(gauge)                                 | Number of map operations per second for the index.                                               |
| **ravendb.index.reduced.per.second**(gauge)                                | Number of reduce operations per second for the index.                                            |
| **ravendb.collection.documents.count**(gauge)                              | Number of documents in the collection.                                                           |
| **ravendb.collection.documents.size.bytes**(gauge)                         | Total size of documents in the collection in bytes.*Shown as byte*                               |
| **ravendb.collection.revisions.size.bytes**(gauge)                         | Total size of revisions in the collection in bytes.*Shown as byte*                               |
| **ravendb.collection.tombstones.size.bytes**(gauge)                        | Total size of tombstones in the collection in bytes.*Shown as byte*                              |
| **ravendb.collection.total.size.bytes**(gauge)                             | Total size of the collection in bytes.*Shown as byte*                                            |

## Uninstallation{% #uninstallation %}

To uninstall the RavenDB integration, run:

```bash
datadog-agent integration remove ravendb
```

If you manually installed the integration package, remove the corresponding Python wheel from the Agent environment.

Optionally:

- Remove `ravendb.d/conf.yaml`
- Disable log collection for RavenDB
- Restart the Datadog Agent

## Support{% #support %}

Need help? Contact RavenDB's support team at [support@ravendb.net](mailto:support@ravendb.net).

## Further Reading{% #further-reading %}

Additional helpful documentation, links, and articles:

- [Guides, API Reference & Tutorials | RavenDB Documentation](https://docs.ravendb.net/)
