---
title: ZooKeeper
description: Track client connections and latencies, and know when requests are backing up.
breadcrumbs: Docs > Integrations > ZooKeeper
---

# ZooKeeper
Supported OS Integration version6.5.1


## Overview{% #overview %}

The ZooKeeper check tracks client connections and latencies, monitors the number of unprocessed requests, and more.

**Minimum Agent version:** 6.0.0

## Setup{% #setup %}

### Installation{% #installation %}

The ZooKeeper check is included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package, so you don't need to install anything else on your ZooKeeper servers.

### Configuration{% #configuration %}

#### Inclusion list{% #inclusion-list %}

As of version 3.5, ZooKeeper has a `4lw.commands.whitelist` parameter. See [ZooKeeper Cluster Options](https://zookeeper.apache.org/doc/r3.5.4-beta/zookeeperAdmin.html#sc_clusterOptions)) for an example that allows [four letter word commands](https://zookeeper.apache.org/doc/r3.5.4-beta/zookeeperAdmin.html#sc_4lw). By default, only `srvr` is whitelisted. Add `stat` and `mntr` to the whitelist, as the integration is based on these commands.

#### Enabling SSL{% #enabling-ssl %}

ZooKeeper 3.5 introduced the ability to use SSL authentication. For information about setting up SSL with ZooKeeper, see the [ZooKeeper SSL User Guide](https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZooKeeper+SSL+User+Guide).

After you have ZooKeeper set up with SSL, you can also configure the Datadog Agent to connect to ZooKeeper using SSL. If you already have authentication set up using JKS files, follow the steps below to convert them to PEM files for TLS/SSL configuration.

The following example commands assume that your JKS `truststore` and `keystore` files are called:

- `server_truststore.jks`
- `server_keystore.jks`
- `client_truststore.jks`
- `client_keystore.jks`

It is also assumed that both sides' `keystore` and `truststore` files have each other's certificates with aliases `server_cert` and `client_cert`, meaning that a Java ZooKeeper client can already connect to a ZooKeeper server. If your private key has a password, make sure this password is included in the `config.yaml` file for config option `tls_private_key_password`.

To convert the JKS files to PEM files:

1. Get the `ca_cert.pem` file from `client_truststore.jks`, since the client's truststore contains the certificate of the server that is trustable:

   ```gdscript3
   keytool -exportcert -file ca_cert.pem -keystore client_truststore.jks -alias server_cert -rfc
   ```

1. Get the `cert.pem` file from `client_keystore.jks`, since the client's `keystore` contains the cert of the client for alias `client_cert`:

   ```gdscript3
   keytool -importkeystore -srckeystore client_keystore.jks -destkeystore cert.p12 -srcstoretype jks -deststoretype pkcs12 -srcalias client_cert
   ```

1. Run the `openssl pkcs12` command, which exports both the client cert and the private key for the certificate. The `tls_cert` config option is able to read and parse the PEM file which contains both the cert and private key. Add `-nodes` to this command if you want to get a non-password-protected file:

   ```
   openssl pkcs12 -in cert.p12 -out cert.pem
   ```

{% tab title="Host" %}
#### Host{% #host %}

To configure this check for an Agent running on a host:

1. Edit the `zk.d/conf.yaml` file, in the `conf.d/` folder at the root of your [Agent's configuration directory](https://docs.datadoghq.com/agent/guide/agent-configuration-files.md#agent-configuration-directory) to start collecting your ZooKeeper metrics and logs. See the [sample zk.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/zk/datadog_checks/zk/data/conf.yaml.example) for all available configuration options.

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands.md#start-stop-and-restart-the-agent).

#### Log collection{% #log-collection %}

*Available for Agent versions >6.0*

1. ZooKeeper uses the `log4j` logger per default. To activate the logging into a file and customize the format edit the `log4j.properties` file:

   ```text
     # Set root logger level to INFO and its only appender to R
     log4j.rootLogger=INFO, R
     log4j.appender.R.File=/var/log/zookeeper.log
     log4j.appender.R.layout=org.apache.log4j.PatternLayout
     log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c{1}:%L - %m%n
   ```

1. By default, Datadog's integration pipeline supports the following conversion patterns:

   ```text
     %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     %d [%t] %-5p %c - %m%n
     %r [%t] %p %c %x - %m%n
   ```

Make sure you clone and edit the integration pipeline if you have a different format.

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

   ```yaml
   logs_enabled: true
   ```

1. Uncomment and edit this configuration block at the bottom of your `zk.d/conf.yaml`:

   ```yaml
   logs:
     - type: file
       path: /var/log/zookeeper.log
       source: zookeeper
       service: myapp
       #To handle multi line that starts with yyyy-mm-dd use the following pattern
       #log_processing_rules:
       #  - type: multi_line
       #    name: log_start_with_date
       #    pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
   ```

Change the `path` and `service` parameter values and configure them for your environment. See the [sample zk.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/zk/datadog_checks/zk/data/conf.yaml.example) for all available configuration options.

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands.md#start-stop-and-restart-the-agent).

{% /tab %}

{% tab title="Containerized" %}
#### Containerized{% #containerized %}

For containerized environments, see the [Autodiscovery Integration Templates](https://docs.datadoghq.com/agent/kubernetes/integrations.md) for guidance on applying the parameters below.

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

| Parameter            | Value                                  |
| -------------------- | -------------------------------------- |
| `<INTEGRATION_NAME>` | `zk`                                   |
| `<INIT_CONFIG>`      | blank or `{}`                          |
| `<INSTANCE_CONFIG>`  | `{"host": "%%host%%", "port": "2181"}` |

##### Log collection{% #log-collection %}

*Available for Agent versions >6.0*

Collecting logs is disabled by default in the Datadog Agent. To enable it, see [Kubernetes Log Collection](https://docs.datadoghq.com/agent/kubernetes/log.md).

| Parameter      | Value                                                  |
| -------------- | ------------------------------------------------------ |
| `<LOG_CONFIG>` | `{"source": "zookeeper", "service": "<SERVICE_NAME>"}` |

{% /tab %}

### Validation{% #validation %}

[Run the Agent's status subcommand](https://docs.datadoghq.com/agent/guide/agent-commands.md#agent-status-and-information) and look for `zk` under the Checks section.

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

### Metrics{% #metrics %}

As of zookeeper 3.4.0, the `mntr` admin command is provided for easy parsing of zookeeper stats. This check first parses the `stat` admin command for a version number. If the zookeeper version supports `mntr`, it is also parsed.

Duplicate information is being reported by both `mntr` and `stat`: the duplicated `stat` metrics are only kept for backward compatibility.

**Important:** if available, make use of the data reported by `mntr`, not `stat`.

| Metric reported by `mntr`         | Duplicate reported by `stat` |
| --------------------------------- | ---------------------------- |
| `zookeeper.avg_latency`           | `zookeeper.latency.avg`      |
| `zookeeper.max_latency`           | `zookeeper.latency.max`      |
| `zookeeper.min_latency`           | `zookeeper.latency.min`      |
| `zookeeper.packets_received`      | `zookeeper.packets.received` |
| `zookeeper.packets_sent`          | `zookeeper.packets.sent`     |
| `zookeeper.num_alive_connections` | `zookeeper.connections`      |
| `zookeeper.znode_count`           | `zookeeper.nodes`            |

|  |
|  |
| **zookeeper.add\_dead\_watcher\_stall\_time**(gauge)                                    | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.approximate\_data\_size**(gauge)                                            |
| **zookeeper.avg\_latency**(gauge)                                                       | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.bytes\_received**(gauge)                                                    | Number of bytes received                                                                                                                    |
| **zookeeper.bytes\_received\_count**(gauge)                                             | [zookeeper version 3.6+ only] The number of bytes received*Shown as byte*                                                                   |
| **zookeeper.bytes\_sent**(gauge)                                                        | Number of bytes sent                                                                                                                        |
| **zookeeper.close\_session\_prep\_time**(gauge)                                         | [zookeeper version 3.6+ only] Histogram of close_session_prep_time                                                                          |
| **zookeeper.close\_session\_prep\_time\_count**(gauge)                                  | [zookeeper version 3.6+ only] Total count of close_session_prep_time                                                                        |
| **zookeeper.close\_session\_prep\_time\_sum**(gauge)                                    | [zookeeper version 3.6+ only] Sum of close_session_prep_time                                                                                |
| **zookeeper.commit\_commit\_proc\_req\_queued**(gauge)                                  | [zookeeper version 3.6+ only] Histogram of commit_commit_proc_req_queued                                                                    |
| **zookeeper.commit\_commit\_proc\_req\_queued\_count**(gauge)                           | [zookeeper version 3.6+ only] Total count of commit_commit_proc_req_queued                                                                  |
| **zookeeper.commit\_commit\_proc\_req\_queued\_sum**(gauge)                             | [zookeeper version 3.6+ only] Sum of commit_commit_proc_req_queued                                                                          |
| **zookeeper.commit\_count**(gauge)                                                      | [zookeeper version 3.6+ only] The number of commits performed on leader                                                                     |
| **zookeeper.commit\_process\_time**(gauge)                                              | [zookeeper version 3.6+ only] Histogram of commit_process_time                                                                              |
| **zookeeper.commit\_process\_time\_count**(gauge)                                       | [zookeeper version 3.6+ only] Total count of commit_process_time                                                                            |
| **zookeeper.commit\_process\_time\_sum**(gauge)                                         | [zookeeper version 3.6+ only] Sum of commit_process_time                                                                                    |
| **zookeeper.commit\_propagation\_latency**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of commit_propagation_latency                                                                       |
| **zookeeper.commit\_propagation\_latency\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of commit_propagation_latency                                                                     |
| **zookeeper.commit\_propagation\_latency\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of commit_propagation_latency                                                                             |
| **zookeeper.concurrent\_request\_processing\_in\_commit\_processor**(gauge)             | [zookeeper version 3.6+ only] Histogram of concurrent_request_processing_in_commit_processor                                                |
| **zookeeper.concurrent\_request\_processing\_in\_commit\_processor\_count**(gauge)      | [zookeeper version 3.6+ only] Total count of concurrent_request_processing_in_commit_processor                                              |
| **zookeeper.concurrent\_request\_processing\_in\_commit\_processor\_sum**(gauge)        | [zookeeper version 3.6+ only] Sum of concurrent_request_processing_in_commit_processor                                                      |
| **zookeeper.connection\_drop\_count**(gauge)                                            | [zookeeper version 3.6+ only] Count of connection drops                                                                                     |
| **zookeeper.connection\_drop\_probability**(gauge)                                      | [zookeeper version 3.6+ only] Connection drop probability                                                                                   |
| **zookeeper.connection\_rejected**(gauge)                                               | [zookeeper version 3.6+ only] Connection rejected counts                                                                                    |
| **zookeeper.connection\_request\_count**(gauge)                                         | [zookeeper version 3.6+ only] Number of incoming client connection requests                                                                 |
| **zookeeper.connection\_revalidate\_count**(gauge)                                      | [zookeeper version 3.6+ only] Count of connection revalidations                                                                             |
| **zookeeper.connection\_token\_deficit**(gauge)                                         | [zookeeper version 3.6+ only] Histogram of connection_token_deficit                                                                         |
| **zookeeper.connection\_token\_deficit\_count**(gauge)                                  | [zookeeper version 3.6+ only] Total count of connection_token_deficit                                                                       |
| **zookeeper.connection\_token\_deficit\_sum**(gauge)                                    | [zookeeper version 3.6+ only] Sum of connection_token_deficit                                                                               |
| **zookeeper.connections**(gauge)                                                        | The total count of client connections.*Shown as connection*                                                                                 |
| **zookeeper.datadog\_client\_exception**(rate)                                          | The exception rate seen by the Datadog Agent when trying to collect stats.*Shown as error*                                                  |
| **zookeeper.dbinittime**(gauge)                                                         | [zookeeper version 3.6+ only] Histogram of dbinittime Time to reload database                                                               |
| **zookeeper.dbinittime\_count**(gauge)                                                  | [zookeeper version 3.6+ only] Total count of dbinittime Time to reload database                                                             |
| **zookeeper.dbinittime\_sum**(gauge)                                                    | [zookeeper version 3.6+ only] Sum of dbinittime Time to reload database                                                                     |
| **zookeeper.dead\_watchers\_cleaner\_latency**(gauge)                                   | [zookeeper version 3.6+ only] Histogram of dead_watchers_cleaner_latency                                                                    |
| **zookeeper.dead\_watchers\_cleaner\_latency\_count**(gauge)                            | [zookeeper version 3.6+ only] Total count of dead_watchers_cleaner_latency                                                                  |
| **zookeeper.dead\_watchers\_cleaner\_latency\_sum**(gauge)                              | [zookeeper version 3.6+ only] Sum of dead_watchers_cleaner_latency                                                                          |
| **zookeeper.dead\_watchers\_cleared**(gauge)                                            | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.dead\_watchers\_queued**(gauge)                                             | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.diff\_count**(gauge)                                                        | [zookeeper version 3.6+ only] Number of diff syncs performed                                                                                |
| **zookeeper.digest\_mismatches\_count**(gauge)                                          | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.election\_time**(gauge)                                                     | [zookeeper version 3.6+ only] Time between entering and leaving election                                                                    |
| **zookeeper.election\_time\_count**(gauge)                                              | [zookeeper version 3.6+ only] Time between entering and leaving election                                                                    |
| **zookeeper.election\_time\_sum**(gauge)                                                | [zookeeper version 3.6+ only] Time between entering and leaving election                                                                    |
| **zookeeper.ensemble\_auth\_fail**(gauge)                                               | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.ensemble\_auth\_skip**(gauge)                                               | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.ensemble\_auth\_success**(gauge)                                            | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.ephemerals\_count**(gauge)                                                  |
| **zookeeper.follower\_sync\_time**(gauge)                                               | [zookeeper version 3.6+ only] Time for follower to sync with leader                                                                         |
| **zookeeper.follower\_sync\_time\_count**(gauge)                                        | [zookeeper version 3.6+ only] Time for follower to sync with leader                                                                         |
| **zookeeper.follower\_sync\_time\_sum**(gauge)                                          | [zookeeper version 3.6+ only] Time for follower to sync with leader                                                                         |
| **zookeeper.fsynctime**(gauge)                                                          | [zookeeper version 3.6+ only] Time to fsync transaction log                                                                                 |
| **zookeeper.fsynctime\_count**(gauge)                                                   | [zookeeper version 3.6+ only] Time to fsync transaction log                                                                                 |
| **zookeeper.fsynctime\_sum**(gauge)                                                     | [zookeeper version 3.6+ only] Time to fsync transaction log                                                                                 |
| **zookeeper.global\_sessions**(gauge)                                                   | [zookeeper version 3.6+ only] Count of global sessions                                                                                      |
| **zookeeper.instances**(gauge)                                                          |
| **zookeeper.jvm\_buffer\_pool\_capacity\_bytes**(gauge)                                 | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_buffer\_pool\_used\_buffers**(gauge)                                   | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_buffer\_pool\_used\_bytes**(gauge)                                     | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_classes\_loaded**(gauge)                                               | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_classes\_loaded\_total**(gauge)                                        | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_classes\_unloaded\_total**(gauge)                                      | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_gc\_collection\_seconds\_count**(gauge)                                | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_gc\_collection\_seconds\_sum**(gauge)                                  | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_info**(gauge)                                                          | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_bytes\_committed**(gauge)                                      | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_bytes\_init**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_bytes\_max**(gauge)                                            | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_bytes\_used**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_pool\_allocated\_bytes\_total**(gauge)                         | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_pool\_bytes\_committed**(gauge)                                | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_memory\_pool\_bytes\_init**(gauge)                                     | [zookeeper version 3.6+ only]*Shown as byte*                                                                                                |
| **zookeeper.jvm\_memory\_pool\_bytes\_max**(gauge)                                      | [zookeeper version 3.6+ only]*Shown as byte*                                                                                                |
| **zookeeper.jvm\_memory\_pool\_bytes\_used**(gauge)                                     | [zookeeper version 3.6+ only]*Shown as byte*                                                                                                |
| **zookeeper.jvm\_threads\_current**(gauge)                                              | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_daemon**(gauge)                                               | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_deadlocked**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_deadlocked\_monitor**(gauge)                                  | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_peak**(gauge)                                                 | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_started\_total**(gauge)                                       | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.jvm\_threads\_state**(gauge)                                                | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.large\_requests\_rejected**(gauge)                                          | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.last\_client\_response\_size**(gauge)                                       | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.latency.avg**(gauge)                                                        | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.latency.max**(gauge)                                                        | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.latency.min**(gauge)                                                        | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.learner\_commit\_received\_count**(gauge)                                   | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.learner\_proposal\_received\_count**(gauge)                                 | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.local\_sessions**(gauge)                                                    | [zookeeper version 3.6+ only] Count of local sessions                                                                                       |
| **zookeeper.local\_write\_committed\_time\_ms**(gauge)                                  | [zookeeper version 3.6+ only] Histogram of local_write_committed_time_ms                                                                    |
| **zookeeper.local\_write\_committed\_time\_ms\_count**(gauge)                           | [zookeeper version 3.6+ only] Total count of local_write_committed_time_ms                                                                  |
| **zookeeper.local\_write\_committed\_time\_ms\_sum**(gauge)                             | [zookeeper version 3.6+ only] Sum of local_write_committed_time_ms                                                                          |
| **zookeeper.looking\_count**(gauge)                                                     | [zookeeper version 3.6+ only] Number of transitions into looking state                                                                      |
| **zookeeper.max\_client\_response\_size**(gauge)                                        | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.max\_file\_descriptor\_count**(gauge)                                       |
| **zookeeper.max\_latency**(gauge)                                                       | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.min\_client\_response\_size**(gauge)                                        | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.min\_latency**(gauge)                                                       | The amount of time it takes for the server to respond to a client request.*Shown as millisecond*                                            |
| **zookeeper.netty\_queued\_buffer\_capacity**(gauge)                                    | [zookeeper version 3.6+ only] Histogram of netty_queued_buffer_capacity                                                                     |
| **zookeeper.netty\_queued\_buffer\_capacity\_count**(gauge)                             | [zookeeper version 3.6+ only] Total count of netty_queued_buffer_capacity                                                                   |
| **zookeeper.netty\_queued\_buffer\_capacity\_sum**(gauge)                               | [zookeeper version 3.6+ only] Sum of netty_queued_buffer_capacity                                                                           |
| **zookeeper.node\_changed\_watch\_count**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of node_changed_watch_count                                                                         |
| **zookeeper.node\_changed\_watch\_count\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of node_changed_watch_count                                                                       |
| **zookeeper.node\_changed\_watch\_count\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of node_changed_watch_count                                                                               |
| **zookeeper.node\_children\_watch\_count**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of node_children_watch_count                                                                        |
| **zookeeper.node\_children\_watch\_count\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of node_children_watch_count                                                                      |
| **zookeeper.node\_children\_watch\_count\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of node_children_watch_count                                                                              |
| **zookeeper.node\_created\_watch\_count**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of node_created_watch_count                                                                         |
| **zookeeper.node\_created\_watch\_count\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of node_created_watch_count                                                                       |
| **zookeeper.node\_created\_watch\_count\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of node_created_watch_count                                                                               |
| **zookeeper.node\_deleted\_watch\_count**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of node_deleted_watch_count                                                                         |
| **zookeeper.node\_deleted\_watch\_count\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of node_deleted_watch_count                                                                       |
| **zookeeper.node\_deleted\_watch\_count\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of node_deleted_watch_count                                                                               |
| **zookeeper.nodes**(gauge)                                                              | The number of znodes in the ZooKeeper namespace (the data).*Shown as node*                                                                  |
| **zookeeper.num\_alive\_connections**(gauge)                                            | The total count of client connections.*Shown as connection*                                                                                 |
| **zookeeper.om\_commit\_process\_time\_ms**(gauge)                                      | [zookeeper version 3.6+ only] Histogram of om_commit_process_time_ms                                                                        |
| **zookeeper.om\_commit\_process\_time\_ms\_count**(gauge)                               | [zookeeper version 3.6+ only] Total count of om_commit_process_time_ms                                                                      |
| **zookeeper.om\_commit\_process\_time\_ms\_sum**(gauge)                                 | [zookeeper version 3.6+ only] Sum of om_commit_process_time_ms                                                                              |
| **zookeeper.om\_proposal\_process\_time\_ms**(gauge)                                    | [zookeeper version 3.6+ only] Histogram of om_proposal_process_time_ms                                                                      |
| **zookeeper.om\_proposal\_process\_time\_ms\_count**(gauge)                             | [zookeeper version 3.6+ only] Total count of om_proposal_process_time_ms                                                                    |
| **zookeeper.om\_proposal\_process\_time\_ms\_sum**(gauge)                               | [zookeeper version 3.6+ only] Sum of om_proposal_process_time_ms                                                                            |
| **zookeeper.open\_file\_descriptor\_count**(gauge)                                      |
| **zookeeper.outstanding\_changes\_queued**(gauge)                                       | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.outstanding\_changes\_removed**(gauge)                                      | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.outstanding\_requests**(gauge)                                              | The number of queued requests when the server is under load and is receiving more sustained requests than it can process.*Shown as request* |
| **zookeeper.outstanding\_tls\_handshake**(gauge)                                        | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.packets.received**(gauge)                                                   | The number of packets received.*Shown as packet*                                                                                            |
| **zookeeper.packets.sent**(gauge)                                                       | The number of packets sent.*Shown as packet*                                                                                                |
| **zookeeper.packets\_received**(gauge)                                                  | The number of packets received.*Shown as packet*                                                                                            |
| **zookeeper.packets\_sent**(gauge)                                                      | The number of packets sent.*Shown as packet*                                                                                                |
| **zookeeper.pending\_session\_queue\_size**(gauge)                                      | [zookeeper version 3.6+ only] Histogram of pending_session_queue_size                                                                       |
| **zookeeper.pending\_session\_queue\_size\_count**(gauge)                               | [zookeeper version 3.6+ only] Total count of pending_session_queue_size                                                                     |
| **zookeeper.pending\_session\_queue\_size\_sum**(gauge)                                 | [zookeeper version 3.6+ only] Sum of pending_session_queue_size                                                                             |
| **zookeeper.prep\_process\_time**(gauge)                                                | [zookeeper version 3.6+ only] Histogram of prep_process_time                                                                                |
| **zookeeper.prep\_process\_time\_count**(gauge)                                         | [zookeeper version 3.6+ only] Total count of prep_process_time                                                                              |
| **zookeeper.prep\_process\_time\_sum**(gauge)                                           | [zookeeper version 3.6+ only] Sum of prep_process_time                                                                                      |
| **zookeeper.prep\_processor\_queue\_size**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of prep_processor_queue_size                                                                        |
| **zookeeper.prep\_processor\_queue\_size\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of prep_processor_queue_size                                                                      |
| **zookeeper.prep\_processor\_queue\_size\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of prep_processor_queue_size                                                                              |
| **zookeeper.prep\_processor\_queue\_time\_ms**(gauge)                                   | [zookeeper version 3.6+ only] Histogram of prep_processor_queue_time_ms                                                                     |
| **zookeeper.prep\_processor\_queue\_time\_ms\_count**(gauge)                            | [zookeeper version 3.6+ only] Total count of prep_processor_queue_time_ms                                                                   |
| **zookeeper.prep\_processor\_queue\_time\_ms\_sum**(gauge)                              | [zookeeper version 3.6+ only] Sum of prep_processor_queue_time_ms                                                                           |
| **zookeeper.prep\_processor\_request\_queued**(gauge)                                   | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.process\_cpu\_seconds\_total**(gauge)                                       | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.process\_max\_fds**(gauge)                                                  | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.process\_open\_fds**(gauge)                                                 | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.process\_resident\_memory\_bytes**(gauge)                                   | [zookeeper version 3.6+ only]*Shown as byte*                                                                                                |
| **zookeeper.process\_start\_time\_seconds**(gauge)                                      | [zookeeper version 3.6+ only]*Shown as second*                                                                                              |
| **zookeeper.process\_virtual\_memory\_bytes**(gauge)                                    | [zookeeper version 3.6+ only]*Shown as byte*                                                                                                |
| **zookeeper.propagation\_latency**(gauge)                                               | [zookeeper version 3.6+ only] End-to-end latency for updates, from proposal on leader to committed-to-datatree on a given host              |
| **zookeeper.propagation\_latency\_count**(gauge)                                        | [zookeeper version 3.6+ only] End-to-end latency for updates, from proposal on leader to committed-to-datatree on a given host              |
| **zookeeper.propagation\_latency\_sum**(gauge)                                          | [zookeeper version 3.6+ only] End-to-end latency for updates, from proposal on leader to committed-to-datatree on a given host              |
| **zookeeper.proposal\_ack\_creation\_latency**(gauge)                                   | [zookeeper version 3.6+ only] Histogram of proposal_ack_creation_latency                                                                    |
| **zookeeper.proposal\_ack\_creation\_latency\_count**(gauge)                            | [zookeeper version 3.6+ only] Total count of proposal_ack_creation_latency                                                                  |
| **zookeeper.proposal\_ack\_creation\_latency\_sum**(gauge)                              | [zookeeper version 3.6+ only] Sum of proposal_ack_creation_latency                                                                          |
| **zookeeper.proposal\_count**(gauge)                                                    | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.proposal\_latency**(gauge)                                                  | [zookeeper version 3.6+ only] Histogram of proposal_latency                                                                                 |
| **zookeeper.proposal\_latency\_count**(gauge)                                           | [zookeeper version 3.6+ only] Total count of proposal_latency                                                                               |
| **zookeeper.proposal\_latency\_sum**(gauge)                                             | [zookeeper version 3.6+ only] Sum of proposal_latency                                                                                       |
| **zookeeper.quit\_leading\_due\_to\_disloyal\_voter**(gauge)                            | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.quorum\_ack\_latency**(gauge)                                               | [zookeeper version 3.6+ only] Histogram of quorum_ack_latency                                                                               |
| **zookeeper.quorum\_ack\_latency\_count**(gauge)                                        | [zookeeper version 3.6+ only] Total count of quorum_ack_latency                                                                             |
| **zookeeper.quorum\_ack\_latency\_sum**(gauge)                                          | [zookeeper version 3.6+ only] Sum of quorum_ack_latency                                                                                     |
| **zookeeper.read\_commit\_proc\_issued**(gauge)                                         | [zookeeper version 3.6+ only] Histogram of read_commit_proc_issued                                                                          |
| **zookeeper.read\_commit\_proc\_issued\_count**(gauge)                                  | [zookeeper version 3.6+ only] Total count of read_commit_proc_issued                                                                        |
| **zookeeper.read\_commit\_proc\_issued\_sum**(gauge)                                    | [zookeeper version 3.6+ only] Sum of read_commit_proc_issued                                                                                |
| **zookeeper.read\_commit\_proc\_req\_queued**(gauge)                                    | [zookeeper version 3.6+ only] Histogram of read_commit_proc_req_queued                                                                      |
| **zookeeper.read\_commit\_proc\_req\_queued\_count**(gauge)                             | [zookeeper version 3.6+ only] Total count of read_commit_proc_req_queued                                                                    |
| **zookeeper.read\_commit\_proc\_req\_queued\_sum**(gauge)                               | [zookeeper version 3.6+ only] Sum of read_commit_proc_req_queued                                                                            |
| **zookeeper.read\_commitproc\_time\_ms**(gauge)                                         | [zookeeper version 3.6+ only] Histogram of read_commitproc_time_ms                                                                          |
| **zookeeper.read\_commitproc\_time\_ms\_count**(gauge)                                  | [zookeeper version 3.6+ only] Total count of read_commitproc_time_ms                                                                        |
| **zookeeper.read\_commitproc\_time\_ms\_sum**(gauge)                                    | [zookeeper version 3.6+ only] Sum of read_commitproc_time_ms                                                                                |
| **zookeeper.read\_final\_proc\_time\_ms**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of read_final_proc_time_ms                                                                          |
| **zookeeper.read\_final\_proc\_time\_ms\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of read_final_proc_time_ms                                                                        |
| **zookeeper.read\_final\_proc\_time\_ms\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of read_final_proc_time_ms                                                                                |
| **zookeeper.readlatency**(gauge)                                                        | [zookeeper version 3.6+ only] Histogram of readlatency Read request latency                                                                 |
| **zookeeper.readlatency\_count**(gauge)                                                 | [zookeeper version 3.6+ only] Total count of readlatency Read request latency                                                               |
| **zookeeper.readlatency\_sum**(gauge)                                                   | [zookeeper version 3.6+ only] Sum of readlatency Read request latency                                                                       |
| **zookeeper.reads\_after\_write\_in\_session\_queue**(gauge)                            | [zookeeper version 3.6+ only] Histogram of reads_after_write_in_session_queue                                                               |
| **zookeeper.reads\_after\_write\_in\_session\_queue\_count**(gauge)                     | [zookeeper version 3.6+ only] Total count of reads_after_write_in_session_queue                                                             |
| **zookeeper.reads\_after\_write\_in\_session\_queue\_sum**(gauge)                       | [zookeeper version 3.6+ only] Sum of reads_after_write_in_session_queue                                                                     |
| **zookeeper.reads\_issued\_from\_session\_queue**(gauge)                                | [zookeeper version 3.6+ only] Histogram of reads_issued_from_session_queue                                                                  |
| **zookeeper.reads\_issued\_from\_session\_queue\_count**(gauge)                         | [zookeeper version 3.6+ only] Total count of reads_issued_from_session_queue                                                                |
| **zookeeper.reads\_issued\_from\_session\_queue\_sum**(gauge)                           | [zookeeper version 3.6+ only] Sum of reads_issued_from_session_queue                                                                        |
| **zookeeper.request\_commit\_queued**(gauge)                                            | [zookeeper version 3.6+ only] Count of request commits queued                                                                               |
| **zookeeper.request\_throttle\_wait\_count**(gauge)                                     | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.requests\_in\_session\_queue**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of requests_in_session_queue                                                                        |
| **zookeeper.requests\_in\_session\_queue\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of requests_in_session_queue                                                                      |
| **zookeeper.requests\_in\_session\_queue\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of requests_in_session_queue                                                                              |
| **zookeeper.response\_packet\_cache\_hits**(gauge)                                      | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.response\_packet\_cache\_misses**(gauge)                                    | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.response\_packet\_get\_children\_cache\_hits**(gauge)                       | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.response\_packet\_get\_children\_cache\_misses**(gauge)                     | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.revalidate\_count**(gauge)                                                  | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.server\_state**(gauge)                                                      |
| **zookeeper.server\_write\_committed\_time\_ms**(gauge)                                 | [zookeeper version 3.6+ only] Histogram of server_write_committed_time_ms                                                                   |
| **zookeeper.server\_write\_committed\_time\_ms\_count**(gauge)                          | [zookeeper version 3.6+ only] Total count of server_write_committed_time_ms                                                                 |
| **zookeeper.server\_write\_committed\_time\_ms\_sum**(gauge)                            | [zookeeper version 3.6+ only] Sum of server_write_committed_time_ms                                                                         |
| **zookeeper.session\_queues\_drained**(gauge)                                           | [zookeeper version 3.6+ only] Histogram of session_queues_drained                                                                           |
| **zookeeper.session\_queues\_drained\_count**(gauge)                                    | [zookeeper version 3.6+ only] Total count of session_queues_drained                                                                         |
| **zookeeper.session\_queues\_drained\_sum**(gauge)                                      | [zookeeper version 3.6+ only] Sum of session_queues_drained                                                                                 |
| **zookeeper.sessionless\_connections\_expired**(gauge)                                  | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.snap\_count**(gauge)                                                        | [zookeeper version 3.6+ only] Number of snap syncs performed                                                                                |
| **zookeeper.snapshottime**(gauge)                                                       | [zookeeper version 3.6+ only] Histogram of snapshottime Time to write a snapshot                                                            |
| **zookeeper.snapshottime\_count**(gauge)                                                | [zookeeper version 3.6+ only] Total count of snapshottime Time to write a snapshot                                                          |
| **zookeeper.snapshottime\_sum**(gauge)                                                  | [zookeeper version 3.6+ only] Sum of snapshottime Time to write a snapshot                                                                  |
| **zookeeper.stale\_replies**(gauge)                                                     | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.stale\_requests**(gauge)                                                    | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.stale\_requests\_dropped**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.stale\_sessions\_expired**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.startup\_snap\_load\_time**(gauge)                                          | [zookeeper version 3.6+ only] Histogram of startup_snap_load_time                                                                           |
| **zookeeper.startup\_snap\_load\_time\_count**(gauge)                                   | [zookeeper version 3.6+ only] Total count of startup_snap_load_time                                                                         |
| **zookeeper.startup\_snap\_load\_time\_sum**(gauge)                                     | [zookeeper version 3.6+ only] Sum of startup_snap_load_time                                                                                 |
| **zookeeper.startup\_txns\_load\_time**(gauge)                                          | [zookeeper version 3.6+ only] Histogram of startup_txns_load_time                                                                           |
| **zookeeper.startup\_txns\_load\_time\_count**(gauge)                                   | [zookeeper version 3.6+ only] Total count of startup_txns_load_time                                                                         |
| **zookeeper.startup\_txns\_load\_time\_sum**(gauge)                                     | [zookeeper version 3.6+ only] Sum of startup_txns_load_time                                                                                 |
| **zookeeper.startup\_txns\_loaded**(gauge)                                              | [zookeeper version 3.6+ only] Histogram of startup_txns_loaded                                                                              |
| **zookeeper.startup\_txns\_loaded\_count**(gauge)                                       | [zookeeper version 3.6+ only] Total count of startup_txns_loaded                                                                            |
| **zookeeper.startup\_txns\_loaded\_sum**(gauge)                                         | [zookeeper version 3.6+ only] Sum of startup_txns_loaded                                                                                    |
| **zookeeper.sync\_process\_time**(gauge)                                                | [zookeeper version 3.6+ only] Histogram of sync_process_time                                                                                |
| **zookeeper.sync\_process\_time\_count**(gauge)                                         | [zookeeper version 3.6+ only] Total count of sync_process_time                                                                              |
| **zookeeper.sync\_process\_time\_sum**(gauge)                                           | [zookeeper version 3.6+ only] Sum of sync_process_time                                                                                      |
| **zookeeper.sync\_processor\_batch\_size**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of sync_processor_batch_size                                                                        |
| **zookeeper.sync\_processor\_batch\_size\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of sync_processor_batch_size                                                                      |
| **zookeeper.sync\_processor\_batch\_size\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of sync_processor_batch_size                                                                              |
| **zookeeper.sync\_processor\_queue\_and\_flush\_time\_ms**(gauge)                       | [zookeeper version 3.6+ only] Histogram of sync_processor_queue_and_flush_time_ms                                                           |
| **zookeeper.sync\_processor\_queue\_and\_flush\_time\_ms\_count**(gauge)                | [zookeeper version 3.6+ only] Total count of sync_processor_queue_and_flush_time_ms                                                         |
| **zookeeper.sync\_processor\_queue\_and\_flush\_time\_ms\_sum**(gauge)                  | [zookeeper version 3.6+ only] Sum of sync_processor_queue_and_flush_time_ms                                                                 |
| **zookeeper.sync\_processor\_queue\_flush\_time\_ms**(gauge)                            | [zookeeper version 3.6+ only] Histogram of sync_processor_queue_flush_time_ms                                                               |
| **zookeeper.sync\_processor\_queue\_flush\_time\_ms\_count**(gauge)                     | [zookeeper version 3.6+ only] Total count of sync_processor_queue_flush_time_ms                                                             |
| **zookeeper.sync\_processor\_queue\_flush\_time\_ms\_sum**(gauge)                       | [zookeeper version 3.6+ only] Sum of sync_processor_queue_flush_time_ms                                                                     |
| **zookeeper.sync\_processor\_queue\_size**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of sync_processor_queue_size                                                                        |
| **zookeeper.sync\_processor\_queue\_size\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of sync_processor_queue_size                                                                      |
| **zookeeper.sync\_processor\_queue\_size\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of sync_processor_queue_size                                                                              |
| **zookeeper.sync\_processor\_queue\_time\_ms**(gauge)                                   | [zookeeper version 3.6+ only] Histogram of sync_processor_queue_time_ms                                                                     |
| **zookeeper.sync\_processor\_queue\_time\_ms\_count**(gauge)                            | [zookeeper version 3.6+ only] Total count of sync_processor_queue_time_ms                                                                   |
| **zookeeper.sync\_processor\_queue\_time\_ms\_sum**(gauge)                              | [zookeeper version 3.6+ only] Sum of sync_processor_queue_time_ms                                                                           |
| **zookeeper.sync\_processor\_request\_queued**(gauge)                                   | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.time\_waiting\_empty\_pool\_in\_commit\_processor\_read\_ms**(gauge)        | [zookeeper version 3.6+ only] Histogram of time_waiting_empty_pool_in_commit_processor_read_ms                                              |
| **zookeeper.time\_waiting\_empty\_pool\_in\_commit\_processor\_read\_ms\_count**(gauge) | [zookeeper version 3.6+ only] Total count of time_waiting_empty_pool_in_commit_processor_read_ms                                            |
| **zookeeper.time\_waiting\_empty\_pool\_in\_commit\_processor\_read\_ms\_sum**(gauge)   | [zookeeper version 3.6+ only] Sum of time_waiting_empty_pool_in_commit_processor_read_ms                                                    |
| **zookeeper.timeouts**(rate)                                                            | The rate of timeouts the Datadog Agent received when trying to collect stats.*Shown as occurrence*                                          |
| **zookeeper.tls\_handshake\_exceeded**(gauge)                                           | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.unrecoverable\_error\_count**(gauge)                                        | [zookeeper version 3.6+ only]                                                                                                               |
| **zookeeper.updatelatency**(gauge)                                                      | [zookeeper version 3.6+ only] Histogram of updatelatency Update request latency                                                             |
| **zookeeper.updatelatency\_count**(gauge)                                               | [zookeeper version 3.6+ only] Total count of updatelatency Update request latency                                                           |
| **zookeeper.updatelatency\_sum**(gauge)                                                 | [zookeeper version 3.6+ only] Sum of updatelatency Update request latency                                                                   |
| **zookeeper.uptime**(gauge)                                                             | [zookeeper version 3.6+ only] Uptime that a peer has been in a table leading/following/observing state                                      |
| **zookeeper.watch\_count**(gauge)                                                       |
| **zookeeper.write\_batch\_time\_in\_commit\_processor**(gauge)                          | [zookeeper version 3.6+ only] Histogram of write_batch_time_in_commit_processor                                                             |
| **zookeeper.write\_batch\_time\_in\_commit\_processor\_count**(gauge)                   | [zookeeper version 3.6+ only] Total count of write_batch_time_in_commit_processor                                                           |
| **zookeeper.write\_batch\_time\_in\_commit\_processor\_sum**(gauge)                     | [zookeeper version 3.6+ only] Sum of write_batch_time_in_commit_processor                                                                   |
| **zookeeper.write\_commit\_proc\_issued**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of write_commit_proc_issued                                                                         |
| **zookeeper.write\_commit\_proc\_issued\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of write_commit_proc_issued                                                                       |
| **zookeeper.write\_commit\_proc\_issued\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of write_commit_proc_issued                                                                               |
| **zookeeper.write\_commit\_proc\_req\_queued**(gauge)                                   | [zookeeper version 3.6+ only] Histogram of write_commit_proc_req_queued                                                                     |
| **zookeeper.write\_commit\_proc\_req\_queued\_count**(gauge)                            | [zookeeper version 3.6+ only] Total count of write_commit_proc_req_queued                                                                   |
| **zookeeper.write\_commit\_proc\_req\_queued\_sum**(gauge)                              | [zookeeper version 3.6+ only] Sum of write_commit_proc_req_queued                                                                           |
| **zookeeper.write\_commitproc\_time\_ms**(gauge)                                        | [zookeeper version 3.6+ only] Histogram of write_commitproc_time_ms                                                                         |
| **zookeeper.write\_commitproc\_time\_ms\_count**(gauge)                                 | [zookeeper version 3.6+ only] Total count of write_commitproc_time_ms                                                                       |
| **zookeeper.write\_commitproc\_time\_ms\_sum**(gauge)                                   | [zookeeper version 3.6+ only] Sum of write_commitproc_time_ms                                                                               |
| **zookeeper.write\_final\_proc\_time\_ms**(gauge)                                       | [zookeeper version 3.6+ only] Histogram of write_final_proc_time_ms                                                                         |
| **zookeeper.write\_final\_proc\_time\_ms\_count**(gauge)                                | [zookeeper version 3.6+ only] Total count of write_final_proc_time_ms                                                                       |
| **zookeeper.write\_final\_proc\_time\_ms\_sum**(gauge)                                  | [zookeeper version 3.6+ only] Sum of write_final_proc_time_ms                                                                               |
| **zookeeper.znode\_count**(gauge)                                                       | The number of znodes in the ZooKeeper namespace (the data).*Shown as node*                                                                  |
| **zookeeper.zxid.count**(gauge)                                                         |
| **zookeeper.zxid.epoch**(gauge)                                                         |

#### Deprecated metrics{% #deprecated-metrics %}

The following metrics are still sent but will be removed eventually:

- `zookeeper.bytes_received`
- `zookeeper.bytes_sent`

### Events{% #events %}

The ZooKeeper check does not include any events.

### Service Checks{% #service-checks %}

**zookeeper.ruok**

Sends `ruok` to the monitored node. Returns `OK` with an `imok` response, `WARN` in the case of a different response and `CRITICAL` if no response is received.

*Statuses: ok, warning, critical*

**zookeeper.mode**

Compares the current mode given by the `stat` command to the expected mode configured in `zk.yaml`. Returns `OK` when the modes match and `CRITICAL` otherwise. Only returns a status when there's a value for `expected_mode` in `zk.yaml`

*Statuses: ok, critical*

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
