Docs » Integrations Guide » Integrations Reference » Zookeeper

../../_images/integrations_zookeeper.png Zookeeper ๐Ÿ”—

DESCRIPTION ๐Ÿ”—

This integration primarily consists of the Smart Agent monitor collectd/zookeeper. Below is an overview of that monitor.

Smart Agent Monitor ๐Ÿ”—

Monitors an Apache Zookeeper instance using the Zookeeper collectd plugin. This plugin is installed with the Smart Agent so no additional installation is required to use this monitor. Supports Zookeeper 3.4.0 or later.

INSTALLATION ๐Ÿ”—

This integration is part of the SignalFx Smart Agent as the collectd/zookeeper monitor. You should first deploy the Smart Agent to the same host as the service you want to monitor, and then continue with the configuration instructions below.

CONFIGURATION ๐Ÿ”—

To activate this monitor in the Smart Agent, add the following to your agent config:

monitors:  # All monitor config goes under this key
 - type: collectd/zookeeper
   ...  # Additional config

For a list of monitor options that are common to all monitors, see Common Configuration.

Config option Required Type Description
pythonBinary no string Path to a python binary that should be used to execute the Python code. If not set, a built-in runtime will be used. Can include arguments to the binary as well.
host yes string Host or IP address of the Zookeeper node
port yes integer Main port of the Zookeeper node
name no string This will be the value of the plugin_instance dimension on emitted metrics, if provided.

USAGE ๐Ÿ”—

Sample of built-in dashboard in SignalFx:

../../_images/dashboard_zookeeper.png

METRICS ๐Ÿ”—

Metric Name Description Type
counter.zk_fsync_threshold_exceed_count Number of times fsync duration has exceeded warning threshold cumulative
counter.zk_packets_received Count of the number of ZooKeeper packets received by a server cumulative
counter.zk_packets_sent Count of the number of ZooKeeper packets sent from a server cumulative
gauge.zk_approximate_data_size Size of data in bytes that a ZooKeeper server has in its data tree gauge
gauge.zk_avg_latency Average time in milliseconds for requests to be processed gauge
gauge.zk_ephemerals_count Number of ephemeral nodes that a ZooKeeper server has in its data tree gauge
gauge.zk_is_leader 1 if the node is a leader, 0 if the node is a follower gauge
gauge.zk_max_file_descriptor_count Maximum number of file descriptors that a ZooKeeper server can open gauge
gauge.zk_max_latency Maximum time in milliseconds for a request to be processed gauge
gauge.zk_min_latency Minimum time in milliseconds for a request to be processed gauge
gauge.zk_num_alive_connections Number of active clients connected to a ZooKeeper server gauge
gauge.zk_open_file_descriptor_count Number of file descriptors that a ZooKeeper server has open gauge
gauge.zk_outstanding_requests Number of currently executing requests gauge
gauge.zk_service_health 1 if server is running, otherwise 0 gauge
gauge.zk_watch_count Number of watches placed on Z-Nodes on a ZooKeeper server gauge
gauge.zk_znode_count Number of z-nodes that a ZooKeeper server has in its data tree gauge

counter.zk_fsync_threshold_exceed_count ๐Ÿ”—

cumulative

Number of times fsync duration has exceeded warning threshold

counter.zk_packets_received ๐Ÿ”—

cumulative

Count of the number of ZooKeeper packets received by a server

counter.zk_packets_sent ๐Ÿ”—

cumulative

Count of the number of ZooKeeper packets sent from a server

gauge.zk_approximate_data_size ๐Ÿ”—

gauge

Size of data in bytes that a ZooKeeper server has in its data tree

gauge.zk_avg_latency ๐Ÿ”—

gauge

Average time in milliseconds for requests to be processed

gauge.zk_ephemerals_count ๐Ÿ”—

gauge

Number of ephemeral nodes that a ZooKeeper server has in its data tree

gauge.zk_is_leader ๐Ÿ”—

gauge

1 if the node is a leader, 0 if the node is a follower

gauge.zk_max_file_descriptor_count ๐Ÿ”—

gauge

Maximum number of file descriptors that a ZooKeeper server can open

gauge.zk_max_latency ๐Ÿ”—

gauge

Maximum time in milliseconds for a request to be processed

gauge.zk_min_latency ๐Ÿ”—

gauge

Minimum time in milliseconds for a request to be processed

gauge.zk_num_alive_connections ๐Ÿ”—

gauge

Number of active clients connected to a ZooKeeper server

gauge.zk_open_file_descriptor_count ๐Ÿ”—

gauge

Number of file descriptors that a ZooKeeper server has open

gauge.zk_outstanding_requests ๐Ÿ”—

gauge

Number of currently executing requests

gauge.zk_service_health ๐Ÿ”—

gauge

1 if server is running, otherwise 0

gauge.zk_watch_count ๐Ÿ”—

gauge

Number of watches placed on Z-Nodes on a ZooKeeper server

gauge.zk_znode_count ๐Ÿ”—

gauge

Number of z-nodes that a ZooKeeper server has in its data tree

These are the metrics available for this monitor. Metrics that are categorized as container/host (default) are in bold and italics in the list below.

  • counter.zk_fsync_threshold_exceed_count (cumulative)
    Number of times fsync duration has exceeded warning threshold
  • counter.zk_packets_received (cumulative)
    Count of the number of ZooKeeper packets received by a server
  • counter.zk_packets_sent (cumulative)
    Count of the number of ZooKeeper packets sent from a server
  • gauge.zk_approximate_data_size (gauge)
    Size of data in bytes that a ZooKeeper server has in its data tree
  • gauge.zk_avg_latency (gauge)
    Average time in milliseconds for requests to be processed
  • gauge.zk_ephemerals_count (gauge)
    Number of ephemeral nodes that a ZooKeeper server has in its data tree
  • gauge.zk_is_leader (gauge)
    1 if the node is a leader, 0 if the node is a follower
  • gauge.zk_max_file_descriptor_count (gauge)
    Maximum number of file descriptors that a ZooKeeper server can open
  • gauge.zk_max_latency (gauge)
    Maximum time in milliseconds for a request to be processed
  • gauge.zk_min_latency (gauge)
    Minimum time in milliseconds for a request to be processed
  • gauge.zk_num_alive_connections (gauge)
    Number of active clients connected to a ZooKeeper server
  • gauge.zk_open_file_descriptor_count (gauge)
    Number of file descriptors that a ZooKeeper server has open
  • gauge.zk_outstanding_requests (gauge)
    Number of currently executing requests
  • gauge.zk_service_health (gauge)
    1 if server is running, otherwise 0
  • gauge.zk_watch_count (gauge)
    Number of watches placed on Z-Nodes on a ZooKeeper server
  • gauge.zk_znode_count (gauge)
    Number of z-nodes that a ZooKeeper server has in its data tree

Non-default metrics (version 4.7.0+) ๐Ÿ”—

The following information applies to the agent version 4.7.0+ that has enableBuiltInFiltering: true set on the top level of the agent config.

To emit metrics that are not default, you can add those metrics in the generic monitor-level extraMetrics config option. Metrics that are derived from specific configuration options that do not appear in the above list of metrics do not need to be added to extraMetrics.

To see a list of metrics that will be emitted you can run agent-status monitors after configuring this monitor in a running agent instance.

Legacy non-default metrics (version < 4.7.0) ๐Ÿ”—

The following information only applies to agent version older than 4.7.0. If you have a newer agent and have set enableBuiltInFiltering: true at the top level of your agent config, see the section above. See upgrade instructions in Old-style whitelist filtering.

If you have a reference to the whitelist.json in your agentโ€™s top-level metricsToExclude config option, and you want to emit metrics that are not in that whitelist, then you need to add an item to the top-level metricsToInclude config option to override that whitelist (see Inclusion filtering. Or you can just copy the whitelist.json, modify it, and reference that in metricsToExclude.