src/go/plugin/go.d/collector/rethinkdb/README.md
Plugin: go.d.plugin Module: rethinkdb
It collects cluster-wide metrics such as server status, client connections, active clients, query rate, and document read/write rates. For each server, it offers similar metrics.
The data is gathered by querying the stats table in RethinkDB, which stores real-time statistics related to the cluster and its individual servers.
It also provides a running-queries function using the rethinkdb.jobs system table (admin-only).
This collector is supported on all platforms.
This collector supports collecting metrics from multiple instances of this integration, including remote instances.
If no configuration is given, collector will attempt to connect to RethinkDB instance on 127.0.0.1:28015 address.
The default configuration for this integration does not impose any limits on data collection.
The default configuration for this integration is not expected to impose a significant performance impact on the system.
You can configure the rethinkdb collector in two ways:
| Method | Best for | How to |
|---|---|---|
| UI | Fast setup without editing files | Go to Nodes → Configure this node → Collectors → Jobs, search for rethinkdb, then click + to add a job. |
| File | If you prefer configuring via file, or need to automate deployments (e.g., with Ansible) | Edit go.d/rethinkdb.conf and add a job. |
:::important
UI configuration requires paid Netdata Cloud plan.
:::
No action required.
The following options can be defined globally: update_every, autodetection_retry.
<details open><summary>Config options</summary>| Group | Option | Description | Default | Required |
|---|---|---|---|---|
| Collection | update_every | Data collection frequency (seconds). | 1 | no |
| autodetection_retry | Autodetection retry interval (seconds). Set 0 to disable. | 0 | no | |
| Target | address | RethinkDB server address (IP:PORT). | 127.0.0.1:28015 | yes |
| timeout | Connection, read, and write timeout duration (seconds). Includes name resolution. | 1 | no | |
| Auth | username | Username for authentication. | no | |
| password | Password for authentication. | no | ||
| Functions | functions.running_queries.disabled | Disable the running-queries function. | no | no |
| functions.running_queries.timeout | Timeout for the running-queries function query (seconds). If not set, uses the collector's timeout. | (collector timeout) | no | |
| functions.running_queries.limit | Maximum number of rows returned by the running-queries function. | 500 | no | |
| Virtual Node | vnode | Associates this data collection job with a Virtual Node. | no |
Configure the rethinkdb collector from the Netdata web interface:
The configuration file name for this integration is go.d/rethinkdb.conf.
The file format is YAML. Generally, the structure is:
update_every: 1
autodetection_retry: 0
jobs:
- name: some_name1
- name: some_name2
You can edit the configuration file using the edit-config script from the
Netdata config directory.
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/rethinkdb.conf
A basic example configuration.
<details open><summary>Config</summary>jobs:
- name: local
address: 127.0.0.1:28015
An example configuration with authentication.
<details open><summary>Config</summary>jobs:
- name: local
address: 127.0.0.1:28015
username: name
password: pass
Note: When you define multiple jobs, their names must be unique.
Collecting metrics from local and remote instances.
<details open><summary>Config</summary>jobs:
- name: local
address: 127.0.0.1:28015
- name: remote
address: 203.0.113.0:28015
There are no alerts configured by default for this integration.
Metrics grouped by scope.
The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
These metrics refer to the entire monitored application.
This scope has no labels.
Metrics:
| Metric | Dimensions | Unit |
|---|---|---|
| rethinkdb.cluster_servers_stats_request | success, timeout | servers |
| rethinkdb.cluster_client_connections | connections | connections |
| rethinkdb.cluster_active_clients | active | clients |
| rethinkdb.cluster_queries | queries | queries/s |
| rethinkdb.cluster_documents | read, written | documents/s |
These metrics refer to the server (cluster member).
Labels:
| Label | Description |
|---|---|
| server_uuid | Server UUID. |
| server_name | Server name. |
Metrics:
| Metric | Dimensions | Unit |
|---|---|---|
| rethinkdb.server_stats_request_status | success, timeout | status |
| rethinkdb.server_client_connections | connections | connections |
| rethinkdb.server_active_clients | active | clients |
| rethinkdb.server_queries | queries | queries/s |
| rethinkdb.server_documents | read, written | documents/s |
This collector exposes real-time functions for interactive troubleshooting in the Live tab.
Retrieves currently executing queries from the RethinkDB rethinkdb.jobs system table.
This function queries the rethinkdb.jobs system table which contains information about background tasks and queries currently running on the cluster. It provides query text, execution duration, client information, and involved servers.
Use cases:
Query text is truncated at 4096 characters for display purposes.
| Aspect | Description |
|---|---|
| Name | Rethinkdb:running-queries |
| Require Cloud | yes |
| Performance | Queries the rethinkdb.jobs system table: |
| • Minimal overhead as it reads from an in-memory system table | |
| • Default limit of 500 rows balances completeness with performance | |
| • Returns only currently active queries (no historical data) | |
| Security | Query text may contain unmasked literal values including potentially sensitive data: |
| • Document field values in filter conditions | |
| • User-provided data in insert/update operations | |
| • Access should be restricted to authorized personnel only | |
| Availability | Available when: |
| • The collector has successfully connected to RethinkDB | |
• The user has admin access to rethinkdb.jobs table | |
| • Returns HTTP 503 if collector is still initializing | |
| • Returns HTTP 500 if the query fails | |
| • Returns HTTP 504 if the query times out |
rethinkdb.jobsThe user must have admin privileges to query the rethinkdb.jobs system table.
Connect with an admin user account that has access to system tables
Verify access to rethinkdb.jobs:
r.db('rethinkdb').table('jobs').run(conn)
:::info
rethinkdb.jobs table is only accessible to admin users:::
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| Filter By | select | Select the primary sort column. Defaults to duration to focus on longest-running queries. | yes | durationMs |
Currently running queries from the rethinkdb.jobs system table. Each row represents a single active query with its execution context.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| Job ID | string | hidden | Unique identifier for the job entry. Can be used to track or kill specific queries. | |
| Query | string | The ReQL query text being executed. Truncated to 4096 characters. May contain literal values from application code. | ||
| Duration | duration | milliseconds | Time elapsed since the query started executing. High values indicate long-running queries that may need investigation. | |
| Type | string | Job type (e.g., query, index_construction, disk_compaction). Useful for distinguishing user queries from background tasks. | ||
| User | string | RethinkDB user account that initiated the query. Useful for identifying workload by user or application. | ||
| Client Address | string | hidden | IP address of the client connection that submitted the query. | |
| Client Port | integer | hidden | Port number of the client connection. | |
| Servers | string | hidden | Comma-separated list of servers involved in executing this query. |
Important: Debug mode is not supported for data collection jobs created via the UI using the Dyncfg feature.
To troubleshoot issues with the rethinkdb collector, run the go.d.plugin with the debug option enabled. The output
should give you clues as to why the collector isn't working.
Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on
your system, open netdata.conf and look for the plugins setting under [directories].
cd /usr/libexec/netdata/plugins.d/
Switch to the netdata user.
sudo -u netdata -s
Run the go.d.plugin to debug the collector:
./go.d.plugin -d -m rethinkdb
To debug a specific job:
./go.d.plugin -d -m rethinkdb -j jobName
If you're encountering problems with the rethinkdb collector, follow these steps to retrieve logs and identify potential issues:
Use the following command to view logs generated since the last Netdata service restart:
journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep rethinkdb
Locate the collector log file, typically at /var/log/netdata/collector.log, and use grep to filter for collector's name:
grep rethinkdb /var/log/netdata/collector.log
Note: This method shows logs from all restarts. Focus on the latest entries for troubleshooting current issues.
If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:
docker logs netdata 2>&1 | grep rethinkdb