> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zookeeper Observability

> Monitor the availability, performance, stability, and operational health of Apache ZooKeeper with GermainUX.

Components
[`Engine`](/main/germain-ux-engine)

Availability
2017.4 or later

> **[Ensemble Health](#ensemble-health)**
>
> Quorum and node status

> **[Leader and Follower Monitoring](#leader-and-follower-monitoring)**
>
> Spot leadership change instability

> **[Four-Letter-Word Command Monitoring](#four-letter-word-command-monitoring)**
>
> Runtime data via ZooKeeper commands

> **[Automated Analysis](#automated-analysis)**
>
> Flag ensemble issues automatically

**Apache ZooKeeper Observability**

Monitor the availability, performance, stability, and operational health of Apache ZooKeeper with GermainUX.

GermainUX combines ZooKeeper runtime metrics, JVM monitoring, log analysis, operating-system telemetry, Prometheus-compatible metrics, and automated analytics to help teams detect unhealthy ensemble members, performance degradation, connection issues, resource constraints, and conditions that can affect distributed applications relying on ZooKeeper.

## Ensemble Health

Monitor the health of the ZooKeeper ensemble.

GermainUX can help identify:

* Unavailable ZooKeeper nodes
* Failed ensemble members
* Connectivity problems
* Unexpected node-state changes
* Leader or follower status
* Ensemble membership changes

Monitoring individual nodes is important because the health of the ensemble depends on maintaining sufficient healthy members for quorum.

## Node Availability

Monitor whether each ZooKeeper server is available and responding.

Use availability monitoring to identify:

* Unresponsive nodes
* Failed processes
* Network connectivity problems
* Connection timeouts
* Unexpected restarts

Availability should be analyzed across all members of the ensemble rather than treating each node in isolation.

## Leader and Follower Monitoring

ZooKeeper uses a leader-follower architecture.

GermainUX can monitor the operating mode of ZooKeeper nodes and help identify conditions such as:

* Missing leader
* Unexpected leader changes
* Repeated leader elections
* Unstable ensemble membership
* Nodes operating in an unexpected state

Frequent leadership changes can indicate instability, network problems, or resource constraints.

## Latency Monitoring

Monitor ZooKeeper request latency.

Analyze:

* Average latency
* Minimum latency
* Maximum latency
* Latency trends
* Abnormal latency increases

Increased latency can be associated with:

* CPU pressure
* JVM behavior
* Disk I/O
* Network latency
* Excessive client activity
* Outstanding requests
* Ensemble instability

## Throughput Monitoring

Monitor the rate of ZooKeeper requests.

Use throughput together with latency and outstanding requests to understand workload and performance.

A throughput decrease should be interpreted in context because it can result from either lower client activity or a performance problem.

## Outstanding Requests

Monitor requests waiting to be processed.

An increasing number of outstanding requests can indicate:

* Processing bottlenecks
* Resource saturation
* Slow disk operations
* JVM pressure
* Excessive client activity
* Network issues

Analyze outstanding requests together with latency and throughput.

## Client Connections

Monitor connected ZooKeeper clients.

Analyze:

* Connection count
* Client activity
* Connection failures
* Connection timeouts
* Changes in normal connection volume

Unexpected changes can indicate application, network, or ZooKeeper-side problems.

## Watch Monitoring

ZooKeeper watches allow clients to receive notifications when data changes.

Monitor watch counts to identify:

* Unexpected increases in watches
* Abnormally high watch usage
* Client behavior changes
* Potential ZooKeeper resource pressure

High watch counts are not inherently a problem and should be evaluated against the normal behavior of the application environment.

## File Descriptor Monitoring

Monitor open file descriptors when available.

ZooKeeper uses file descriptors for network connections and other operating-system resources.

Analyze:

* Current open file descriptors
* Available capacity
* Growth over time
* Approaching operating-system limits

Running out of file descriptors can prevent new client connections or destabilize the ZooKeeper server.

## JVM Monitoring

Because ZooKeeper runs on Java, GermainUX can monitor relevant JVM behavior.

Analyze:

* Heap memory
* JVM memory utilization
* Garbage collection
* Threads
* JVM uptime
* Java process health

Use JVM telemetry to identify conditions such as:

* Memory pressure
* Excessive garbage collection
* Thread growth
* Resource exhaustion

## Disk Monitoring

Monitor the storage used by ZooKeeper nodes.

Analyze:

* Disk utilization
* Available capacity
* Filesystem usage
* Disk growth
* Disk I/O when infrastructure monitoring is enabled

ZooKeeper requires reliable storage for transaction logs and snapshots, so insufficient disk capacity can affect availability and stability.

## ZooKeeper Log Monitoring

GermainUX can monitor accessible ZooKeeper logs.

Use log analysis to detect:

* Errors
* Warnings
* Startup failures
* Shutdown events
* Connection problems
* Session problems
* Leader-election activity
* Operational anomalies

Log data can be correlated with ZooKeeper metrics and infrastructure conditions during troubleshooting.

## Four-Letter-Word Command Monitoring

ZooKeeper provides administrative commands that expose runtime information.

GermainUX can use supported four-letter-word commands such as:

### srvr

Provides general server information, including:

* ZooKeeper version
* Uptime
* Server mode

### stat

Provides server statistics such as:

* Connections
* Watches
* Outstanding requests

### cons

Provides information about connected clients and their activity.

### mntr

Provides ZooKeeper monitoring metrics including:

* Node information
* Watch information
* Latency statistics
* Other server metrics

Only the commands required for monitoring should be enabled.

## Prometheus Metrics

ZooKeeper can expose metrics through its Prometheus-compatible metrics provider.

When enabled and accessible to GermainUX, these metrics provide additional quantitative telemetry such as:

* Request rates
* Response times
* Node-specific metrics
* JVM information

Prometheus metrics can complement four-letter-word commands and log monitoring.

## Infrastructure Monitoring

When the ZooKeeper servers are accessible to GermainUX infrastructure monitoring, analyze:

* CPU
* Memory
* Disk
* Filesystem
* Disk I/O
* Network
* Java process
* Operating-system health

Infrastructure telemetry can help explain ZooKeeper performance degradation.

## Root Cause Analysis

Correlate ZooKeeper behavior with related technical telemetry.

For example:

**ZooKeeper Latency Increase → Disk I/O Increase**

or:

**Connection Failures → Network Connectivity Problem**

or:

**Outstanding Requests Increasing → JVM or CPU Pressure**

or:

**Leader Election → ZooKeeper Node Failure**

This helps teams identify the likely cause rather than stopping at the ZooKeeper symptom.

## Automated Analysis

Configure GermainUX to identify conditions such as:

* ZooKeeper node unavailable
* Ensemble member unavailable
* Missing or unstable leader
* Latency increase
* Excessive outstanding requests
* Connection failures

> **Show all 12**
>
> * Excessive watch growth
> * File descriptor pressure
> * JVM resource pressure
> * Low disk capacity
> * New ZooKeeper log errors
> * Abnormal behavior compared with historical baseline

## Alerts and Automation

When GermainUX detects a condition requiring attention, it can:

* Send an alert
* Notify users through a Watch
* Generate a report
* Trigger approved diagnostics
* Execute approved automation

## Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Zookeeper environment. [Contact GermainUX Support](/main/support.md).

## Get Help

> **[Contact GermainUX Support](/main/support.md)**
>
> The Germain Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.