Skip to main content

ZooKeeper

Plugin: go.d.plugin Module: zookeeper

Overview​

It connects to the Zookeeper instance via a TCP and executes the following commands:

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

Default Behavior​

Auto-Detection​

By default, it detects instances running on localhost by attempting to connect using known ZooKeeper TCP sockets:

  • 127.0.0.1:2181
  • 127.0.0.1:2182

Limits​

The default configuration for this integration does not impose any limits on data collection.

Performance Impact​

The default configuration for this integration is not expected to impose a significant performance impact on the system.

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Per ZooKeeper instance​

These metrics refer to the entire monitored application.

This scope has no labels.

Metrics:

MetricDimensionsUnit
zookeeper.requestsoutstandingrequests
zookeeper.requests_latencymin, avg, maxms
zookeeper.connectionsaliveconnections
zookeeper.packetsreceived, sentpps
zookeeper.file_descriptoropenfile descriptors
zookeeper.nodesznode, ephemeralsnodes
zookeeper.watcheswatcheswatches
zookeeper.approximate_data_sizesizeKiB
zookeeper.server_statestatestate

Alerts​

There are no alerts configured by default for this integration.

Setup​

Prerequisites​

Whitelist mntr command​

Add mntr to Zookeeper's 4lw.commands.whitelist.

Configuration​

File​

The configuration file name for this integration is go.d/zookeeper.conf.

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/zookeeper.conf

Options​

The following options can be defined globally: update_every, autodetection_retry.

Config options
NameDescriptionDefaultRequired
update_everyData collection frequency.1no
autodetection_retryRecheck interval in seconds. Zero means no recheck will be scheduled.0no
addressServer address. The format is IP:PORT.127.0.0.1:2181yes
timeoutConnection/read/write/ssl handshake timeout.1no
use_tlsWhether to use TLS or not.nono
tls_skip_verifyServer certificate chain and hostname validation policy. Controls whether the client performs this check.nono
tls_caCertification authority that the client uses when verifying the server's certificates.no
tls_certClient TLS certificate.no
tls_keyClient TLS key.no

Examples​

Basic​

Local server.

Config
jobs:
- name: local
address: 127.0.0.1:2181

TLS with self-signed certificate​

Zookeeper with TLS and self-signed certificate.

Config
jobs:
- name: local
address: 127.0.0.1:2181
use_tls: yes
tls_skip_verify: yes

Multi-instance​

Note: When you define multiple jobs, their names must be unique.

Collecting metrics from local and remote instances.

Config
jobs:
- name: local
address: 127.0.0.1:2181

- name: remote
address: 192.0.2.1:2181

Troubleshooting​

Debug Mode​

To troubleshoot issues with the zookeeper 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 zookeeper

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.