RethinkDB

Supported OS Linux Mac OS Windows

Integration version5.0.0

Overview

RethinkDB is a distributed documented-oriented NoSQL database, with first class support for realtime change feeds.

This check monitors a RethinkDB cluster through the Datadog Agent and collects metrics about performance, data availability, cluster configuration, and more.

Note: this integration is compatible with RethinkDB version 2.3.6 and above.

Setup

Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.

Installation

The RethinkDB check is included in the Datadog Agent package. No additional installation is needed on your server.

Configuration

  1. If using RethinkDB 2.4+, add a datadog-agent user with read-only permissions on the rethinkdb database. You can use the following ReQL commands, and see Permissions and user accounts for details:

    r.db('rethinkdb').table('users').insert({'id': 'datadog-agent', 'password': '<PASSWORD>'})
    r.db('rethinkdb').grant('datadog-agent', {'read': True})
    

    Note: on RethinkDB 2.3.x, granting permissions on the rethinkdb database is not supported. Skip this step and use your admin account below instead.

  2. Edit the rethinkdb.d/conf.yaml file in the conf.d/ folder at the root of your Agent’s configuration directory. See the sample rethinkdb.d/conf.yaml for all available configuration options.

    init_config:
    
    instances:
      - host: localhost
        port: 28015
        user: "<USER>"
        password: "<PASSWORD>"
    
  3. Restart the Agent.

Note: this integration collects metrics from all servers in the cluster, so you only need a single Agent.

Log collection

  1. Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml file:

    logs_enabled: true
    
  2. Edit this configuration block in your rethinkdb.d/conf.yaml file to start collecting your RethinkDB logs:

    logs:
      - type: file
        path: "<LOG_FILE_PATH>"
        source: rethinkdb
        service: "<SERVICE_NAME>"
    

    Change the path parameter value based on your environment. See the sample conf.yaml for all available configuration options.

  3. Restart the Agent.

To enable logs for Kubernetes environments, see Kubernetes Log Collection.

Validation

Run the Agent’s status subcommand and look for rethinkdb under the Checks section.

Data Collected

Metrics

rethinkdb.config.databases
(gauge)
Number of databases in the cluster.
rethinkdb.config.secondary_indexes_per_table
(gauge)
Number of secondary indexes in a given table.
Shown as index
rethinkdb.config.servers
(gauge)
Number of connected servers in the cluster.
Shown as node
rethinkdb.config.tables_per_database
(gauge)
Number of tables in a given database.
Shown as table
rethinkdb.current_issues.critical_issues
(gauge)
Total number of critical current issues of a given issue_type.
rethinkdb.current_issues.issues
(gauge)
Total number of current issues of a given issue_type.
rethinkdb.server_status.network.connected_to
(gauge)
Number of other RethinkDB servers a server is currently connected to.
Shown as node
rethinkdb.server_status.network.time_connected
(gauge)
Current total time a server has been connected to the network.
Shown as second
rethinkdb.server_status.process.time_started
(gauge)
Time when the RethinkDB server process started.
Shown as second
rethinkdb.stats.cluster.query_engine.queries_per_sec
(gauge)
Number of queries executed in a cluster per second.
Shown as query
rethinkdb.stats.cluster.query_engine.read_docs_per_sec
(gauge)
Number of documents read in a cluster per second.
Shown as document
rethinkdb.stats.cluster.query_engine.written_docs_per_sec
(gauge)
Number of documents written in a cluster per second.
Shown as document
rethinkdb.stats.server.query_engine.client_connections
(gauge)
Current total number of connections to a server.
Shown as connection
rethinkdb.stats.server.query_engine.clients_active
(gauge)
Current number of individual clients connected to a server (a client may hold multiple connections).
Shown as host
rethinkdb.stats.server.query_engine.queries_per_sec
(gauge)
Number of queries executed on a server per second.
Shown as query
rethinkdb.stats.server.query_engine.queries_total
(count)
Total number of queries executed on a server.
Shown as query
rethinkdb.stats.server.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a server per second.
Shown as document
rethinkdb.stats.server.query_engine.read_docs_total
(count)
Total number of documents read from a server.
Shown as document
rethinkdb.stats.server.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a server per second.
Shown as document
rethinkdb.stats.server.query_engine.written_docs_total
(count)
Total number of documents written to a server.
Shown as document
rethinkdb.stats.table.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a table per second.
Shown as document
rethinkdb.stats.table.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a table per second.
Shown as document
rethinkdb.stats.table_server.query_engine.read_docs_per_sec
(gauge)
Number of documents read from a replica per second.
Shown as document
rethinkdb.stats.table_server.query_engine.read_docs_total
(count)
Total number of documents read from a replica.
Shown as document
rethinkdb.stats.table_server.query_engine.written_docs_per_sec
(gauge)
Number of documents written to a replica per second.
Shown as document
rethinkdb.stats.table_server.query_engine.written_docs_total
(count)
Total number of documents written to a replica.
Shown as document
rethinkdb.stats.table_server.storage_engine.cache.in_use_bytes
(gauge)
Current amount of memory used by the cache on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.read_bytes_per_sec
(gauge)
Number of bytes read from the disk of a replica per second.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.read_bytes_total
(count)
Total number of bytes read from the disk of a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.data_bytes
(gauge)
Current disk space used by data on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.garbage_bytes
(gauge)
Current disk space used by the garbage collector on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.metadata_bytes
(gauge)
Current disk space used by metadata on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.space_usage.preallocated_bytes
(gauge)
Current disk space preallocated on a replica.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.written_bytes_per_sec
(gauge)
Number of bytes written to the disk of a replica per second.
Shown as byte
rethinkdb.stats.table_server.storage_engine.disk.written_bytes_total
(count)
Total number of bytes written to the disk of a replica.
Shown as byte
rethinkdb.system_jobs.jobs
(gauge)
Total number of currently running system jobs, tagged by job_type.
Shown as job
rethinkdb.table_status.shards
(gauge)
Total number of shards for a table.
Shown as shard
rethinkdb.table_status.shards.primary_replicas
(gauge)
Total number of primary replicas for a table shard.
Shown as node
rethinkdb.table_status.shards.replicas
(gauge)
Total number of replicas for a table shard.
Shown as node

Events

RethinkDB does not include any events.

Service Checks

rethinkdb.can_connect
Returns CRITICAL if the Agent is unable to reach the configured RethinkDB server, OK otherwise.
Statuses: ok, critical

rethinkdb.table_status.status.ready_for_outdated_reads
Returns OK if all shards of a table are ready to accept outdated read queries, WARNING otherwise.
Statuses: ok, warning

rethinkdb.table_status.status.ready_for_reads
Returns OK if all shards of a table are ready to accept read queries, WARNING otherwise.
Statuses: ok, warning

rethinkdb.table_status.status.ready_for_writes
Returns OK if all shards of a table are ready to accept write queries, WARNING otherwise.
Statuses: ok, warning

rethinkdb.table_status.status.all_replicas_ready
Returns OK if all replicas are ready for reads and writes, WARNING otherwise (e.g. if backfills are in progress).
Statuses: ok, warning

Troubleshooting

Need help? Contact Datadog support.