.. _config_network_filters_zookeeper_proxy:
ZooKeeper proxy
===============
The ZooKeeper proxy filter decodes the client protocol for
`Apache ZooKeeper `_. It decodes the requests,
responses and events in the payload. Most opcodes known in
`ZooKeeper 3.5 `_
are supported. The unsupported ones are related to SASL authentication.
:ref:`v3 API reference `
.. attention::
The zookeeper_proxy filter is experimental and is currently under active
development. Capabilities will be expanded over time and the
configuration structures are likely to change.
.. _config_network_filters_zookeeper_proxy_config:
Configuration
-------------
The ZooKeeper proxy filter should be chained with the TCP proxy filter as shown
in the configuration snippet below:
.. literalinclude:: _include/zookeeper-filter-proxy.yaml
:language: yaml
.. _config_network_filters_zookeeper_proxy_stats:
Statistics
----------
Every configured ZooKeeper proxy filter has statistics rooted at *.zookeeper.*.
*_resp_fast* and *_resp_slow* are per-opcode metrics and will only be emitted when :ref:`enable_latency_threshold_metrics ` is set to ``true``.
*_rq_bytes* are per-opcode metrics and will only be emitted when :ref:`enable_per_opcode_request_bytes_metrics ` is set to ``true``.
*_resp_bytes* are per-opcode metrics and will only be emitted when :ref:`enable_per_opcode_response_bytes_metrics ` is set to ``true``.
*_decoder_error* are per-opcode metrics and will only be emitted when :ref:`enable_per_opcode_decoder_error_metrics ` is set to ``true``.
The following counters are available:
.. csv-table::
:header: Name, Type, Description
:widths: 1, 1, 2
decoder_error, Counter, Number of times a message wasn't decoded
connect_decoder_error, Counter, Number of times a connect request or response message wasn't decoded
ping_decoder_error, Counter, Number of times a ping request or response message wasn't decoded
auth_decoder_error, Counter, Number of times a auth request or response message wasn't decoded
getdata_decoder_error, Counter, Number of times a getdata request or response message wasn't decoded
create_decoder_error, Counter, Number of times a create request or response message wasn't decoded
create2_decoder_error, Counter, Number of times a create2 request or response message wasn't decoded
createcontainer_decoder_error, Counter, Number of times a createcontainer request or response message wasn't decoded
createttl_decoder_error, Counter, Number of times a createttl request or response message wasn't decoded
setdata_decoder_error, Counter, Number of times a setdata request or response message wasn't decoded
getchildren_decoder_error, Counter, Number of times a getchildren request or response message wasn't decoded
getchildren2_decoder_error, Counter, Number of times a getchildren2 request or response message wasn't decoded
getephemerals_decoder_error, Counter, Number of times a getephemerals request or response message wasn't decoded
getallchildrennumber_decoder_error, Counter, Number of times a getallchildrennumber request or response message wasn't decoded
delete_decoder_error, Counter, Number of times a delete request or response message wasn't decoded
exists_decoder_error, Counter, Number of times a exists request or response message wasn't decoded
getacl_decoder_error, Counter, Number of times a getacl request or response message wasn't decoded
setacl_decoder_error, Counter, Number of times a setacl request or response message wasn't decoded
sync_decoder_error, Counter, Number of times a sync request or response message wasn't decoded
multi_decoder_error, Counter, Number of times a multi request or response message wasn't decoded
reconfig_decoder_error, Counter, Number of times a reconfig request or response message wasn't decoded
close_decoder_error, Counter, Number of times a close request or response message wasn't decoded
setauth_decoder_error, Counter, Number of times a setauth request or response message wasn't decoded
setwatches_decoder_error, Counter, Number of times a setwatches request or response message wasn't decoded
setwatches2_decoder_error, Counter, Number of times a setwatches2 request or response message wasn't decoded
addwatch_decoder_error, Counter, Number of times a addwatch request or response message wasn't decoded
checkwatches_decoder_error, Counter, Number of times a checkwatches request or response message wasn't decoded
removewatches_decoder_error, Counter, Number of times a removewatches request or response message wasn't decoded
check_decoder_error, Counter, Number of times a check request or response message wasn't decoded
request_bytes, Counter, Number of bytes in decoded request messages
connect_rq_bytes, Counter, Number of bytes in decoded connect request messages
ping_rq_bytes, Counter, Number of bytes in decoded ping request messages
auth_rq_bytes, Counter, Number of bytes in decoded auth request messages
getdata_rq_bytes, Counter, Number of bytes in decoded getdata request messages
create_rq_bytes, Counter, Number of bytes in decoded create request messages
create2_rq_bytes, Counter, Number of bytes in decoded create2 request messages
createcontainer_rq_bytes, Counter, Number of bytes in decoded createcontainer request messages
createttl_rq_bytes, Counter, Number of bytes in decoded createttl request messages
setdata_rq_bytes, Counter, Number of bytes in decoded setdata request messages
getchildren_rq_bytes, Counter, Number of bytes in decoded getchildren request messages
getchildren2_rq_bytes, Counter, Number of bytes in decoded getchildren2 request messages
delete_rq_bytes, Counter, Number of bytes in decoded delete request messages
exists_rq_bytes, Counter, Number of bytes in decoded exists request messages
getacl_rq_bytes, Counter, Number of bytes in decoded getacl request messages
setacl_rq_bytes, Counter, Number of bytes in decoded setacl request messages
sync_rq_bytes, Counter, Number of bytes in decoded sync request messages
check_rq_bytes, Counter, Number of bytes in decoded check request messages
multi_rq_bytes, Counter, Number of bytes in decoded multi request messages
reconfig_rq_bytes, Counter, Number of bytes in decoded reconfig request messages
setwatches_rq_bytes, Counter, Number of bytes in decoded setwatches request messages
setwatches2_rq_bytes, Counter, Number of bytes in decoded setwatches2 request messages
addwatch_rq_bytes, Counter, Number of bytes in decoded addwatch request messages
checkwatches_rq_bytes, Counter, Number of bytes in decoded checkwatches request messages
removewatches_rq_bytes, Counter, Number of bytes in decoded removewatches request messages
getephemerals_rq_bytes, Counter, Number of bytes in decoded getephemerals request messages
getallchildrennumber_rq_bytes, Counter, Number of bytes in decoded getallchildrennumber request messages
close_rq_bytes, Counter, Number of bytes in decoded close request messages
connect_rq, Counter, Number of regular connect (non-readonly) requests
connect_readonly_rq, Counter, Number of connect requests with the readonly flag set
ping_rq, Counter, Number of ping requests
auth._rq, Counter, Number of auth requests for a given type
getdata_rq, Counter, Number of getdata requests
create_rq, Counter, Number of create requests
create2_rq, Counter, Number of create2 requests
createcontainer_rq, Counter, Number of createcontainer requests
createttl_rq, Counter, Number of createttl requests
setdata_rq, Counter, Number of setdata requests
getchildren_rq, Counter, Number of getchildren requests
getchildren2_rq, Counter, Number of getchildren2 requests
delete_rq, Counter, Number of delete requests
exists_rq, Counter, Number of stat requests
getacl_rq, Counter, Number of getacl requests
setacl_rq, Counter, Number of setacl requests
sync_rq, Counter, Number of sync requests
check_rq, Counter, Number of check requests
multi_rq, Counter, Number of multi transaction requests
reconfig_rq, Counter, Number of reconfig requests
setwatches_rq, Counter, Number of setwatches requests
setwatches2_rq, Counter, Number of setwatches2 requests
addwatch_rq, Counter, Number of addwatch requests
checkwatches_rq, Counter, Number of checkwatches requests
removewatches_rq, Counter, Number of removewatches requests
getephemerals_rq, Counter, Number of getephemerals requests
getallchildrennumber_rq, Counter, Number of getallchildrennumber requests
close_rq, Counter, Number of close requests
response_bytes, Counter, Number of bytes in decoded response messages
connect_resp_bytes, Counter, Number of bytes in decoded connect response messages
ping_resp_bytes, Counter, Number of bytes in decoded ping response messages
auth_resp_bytes, Counter, Number of bytes in decoded auth response messages
getdata_resp_bytes, Counter, Number of bytes in decoded getdata response messages
create_resp_bytes, Counter, Number of bytes in decoded create response messages
create2_resp_bytes, Counter, Number of bytes in decoded create2 response messages
createcontainer_resp_bytes, Counter, Number of bytes in decoded createcontainer response messages
createttl_resp_bytes, Counter, Number of bytes in decoded createttl response messages
setdata_resp_bytes, Counter, Number of bytes in decoded setdata response messages
getchildren_resp_bytes, Counter, Number of bytes in decoded getchildren response messages
getchildren2_resp_bytes, Counter, Number of bytes in decoded getchildren2 response messages
delete_resp_bytes, Counter, Number of bytes in decoded delete response messages
exists_resp_bytes, Counter, Number of bytes in decoded exists response messages
getacl_resp_bytes, Counter, Number of bytes in decoded getacl response messages
setacl_resp_bytes, Counter, Number of bytes in decoded setacl response messages
sync_resp_bytes, Counter, Number of bytes in decoded sync response messages
check_resp_bytes, Counter, Number of bytes in decoded check response messages
multi_resp_bytes, Counter, Number of bytes in decoded multi response messages
reconfig_resp_bytes, Counter, Number of bytes in decoded reconfig response messages
setwatches_resp_bytes, Counter, Number of bytes in decoded setwatches response messages
setwatches2_resp_bytes, Counter, Number of bytes in decoded setwatches2 response messages
addwatch_resp_bytes, Counter, Number of bytes in decoded addwatch response messages
checkwatches_resp_bytes, Counter, Number of bytes in decoded checkwatches response messages
removewatches_resp_bytes, Counter, Number of bytes in decoded removewatches response messages
getephemerals_resp_bytes, Counter, Number of bytes in decoded getephemerals response messages
getallchildrennumber_resp_bytes, Counter, Number of bytes in decoded getallchildrennumber response messages
close_resp_bytes, Counter, Number of bytes in decoded close response messages
connect_resp, Counter, Number of connect responses
ping_resp, Counter, Number of ping responses
auth_resp, Counter, Number of auth responses
getdata_resp, Counter, Number of getdata responses
create_resp, Counter, Number of create responses
create2_resp, Counter, Number of create2 responses
createcontainer_resp, Counter, Number of createcontainer responses
createttl_resp, Counter, Number of createttl responses
setdata_resp, Counter, Number of setdata responses
getchildren_resp, Counter, Number of getchildren responses
getchildren2_resp, Counter, Number of getchildren2 responses
delete_resp, Counter, Number of delete responses
exists_resp, Counter, Number of exists responses
getacl_resp, Counter, Number of getacl responses
setacl_resp, Counter, Number of setacl responses
sync_resp, Counter, Number of sync responses
check_resp, Counter, Number of check responses
multi_resp, Counter, Number of multi responses
reconfig_resp, Counter, Number of reconfig responses
setauth_resp, Counter, Number of setauth responses
setwatches_resp, Counter, Number of setwatches responses
setwatches2_resp, Counter, Number of setwatches2 responses
addwatch_resp, Counter, Number of addwatch responses
checkwatches_resp, Counter, Number of checkwatches responses
removewatches_resp, Counter, Number of removewatches responses
getephemerals_resp, Counter, Number of getephemerals responses
getallchildrennumber_resp, Counter, Number of getallchildrennumber responses
close_resp, Counter, Number of close responses
watch_event, Counter, Number of watch events fired by the server
connect_resp_fast, Counter, Number of connect responses faster than or equal to the threshold
ping_resp_fast, Counter, Number of ping responses faster than or equal to the threshold
auth_resp_fast, Counter, Number of auth responses faster than or equal to the threshold
getdata_resp_fast, Counter, Number of getdata responses faster than or equal to the threshold
create_resp_fast, Counter, Number of create responses faster than or equal to the threshold
create2_resp_fast, Counter, Number of create2 responses faster than or equal to the threshold
createcontainer_resp_fast, Counter, Number of createcontainer responses faster than or equal to the threshold
createttl_resp_fast, Counter, Number of createttl responses faster than or equal to the threshold
setdata_resp_fast, Counter, Number of setdata responses faster than or equal to the threshold
getchildren_resp_fast, Counter, Number of getchildren responses faster than or equal to the threshold
getchildren2_resp_fast, Counter, Number of getchildren2 responses faster than or equal to the threshold
delete_resp_fast, Counter, Number of delete responses faster than or equal to the threshold
exists_resp_fast, Counter, Number of exists responses faster than or equal to the threshold
getacl_resp_fast, Counter, Number of getacl responses faster than or equal to the threshold
setacl_resp_fast, Counter, Number of setacl responses faster than or equal to the threshold
sync_resp_fast, Counter, Number of sync responses faster than or equal to the threshold
check_resp_fast, Counter, Number of check responses faster than or equal to the threshold
multi_resp_fast, Counter, Number of multi responses faster than or equal to the threshold
reconfig_resp_fast, Counter, Number of reconfig responses faster than or equal to the threshold
setauth_resp_fast, Counter, Number of setauth responses faster than or equal to the threshold
setwatches_resp_fast, Counter, Number of setwatches responses faster than or equal to the threshold
setwatches2_resp_fast, Counter, Number of setwatches2 responses faster than or equal to the threshold
addwatch_resp_fast, Counter, Number of addwatch responses faster than or equal to the threshold
checkwatches_resp_fast, Counter, Number of checkwatches responses faster than or equal to the threshold
removewatches_resp_fast, Counter, Number of removewatches responses faster than or equal to the threshold
getephemerals_resp_fast, Counter, Number of getephemerals responses faster than or equal to the threshold
getallchildrennumber_resp_fast, Counter, Number of getallchildrennumber responses faster than or equal to the threshold
close_resp_fast, Counter, Number of close responses faster than or equal to the threshold
connect_resp_slow, Counter, Number of connect responses slower than the threshold
ping_resp_slow, Counter, Number of ping responses slower than the threshold
auth_resp_slow, Counter, Number of auth responses slower than the threshold
getdata_resp_slow, Counter, Number of getdata responses slower than the threshold
create_resp_slow, Counter, Number of create responses slower than the threshold
create2_resp_slow, Counter, Number of create2 responses slower than the threshold
createcontainer_resp_slow, Counter, Number of createcontainer responses slower than the threshold
createttl_resp_slow, Counter, Number of createttl responses slower than the threshold
setdata_resp_slow, Counter, Number of setdata responses slower than the threshold
getchildren_resp_slow, Counter, Number of getchildren responses slower than the threshold
getchildren2_resp_slow, Counter, Number of getchildren2 responses slower than the threshold
delete_resp_slow, Counter, Number of delete responses slower than the threshold
exists_resp_slow, Counter, Number of exists responses slower than the threshold
getacl_resp_slow, Counter, Number of getacl responses slower than the threshold
setacl_resp_slow, Counter, Number of setacl responses slower than the threshold
sync_resp_slow, Counter, Number of sync responses slower than the threshold
check_resp_slow, Counter, Number of check responses slower than the threshold
multi_resp_slow, Counter, Number of multi responses slower than the threshold
reconfig_resp_slow, Counter, Number of reconfig responses slower than the threshold
setauth_resp_slow, Counter, Number of setauth responses slower than the threshold
setwatches_resp_slow, Counter, Number of setwatches responses slower than the threshold
setwatches2_resp_slow, Counter, Number of setwatches2 responses slower than the threshold
addwatch_resp_slow, Counter, Number of addwatch responses slower than the threshold
checkwatches_resp_slow, Counter, Number of checkwatches responses slower than the threshold
removewatches_resp_slow, Counter, Number of removewatches responses slower than the threshold
getephemerals_resp_slow, Counter, Number of getephemerals responses slower than the threshold
getallchildrennumber_resp_slow, Counter, Number of getallchildrennumber responses slower than the threshold
close_resp_slow, Counter, Number of close responses slower than the threshold
.. _config_network_filters_zookeeper_proxy_latency_stats:
Per opcode latency statistics
-----------------------------
The filter will gather latency statistics in the *.zookeeper._resp_latency* namespace.
Latency stats are in milliseconds:
.. csv-table::
:header: Name, Type, Description
:widths: 1, 1, 2
connect_response_latency, Histogram, Opcode execution time in milliseconds
ping_response_latency, Histogram, Opcode execution time in milliseconds
auth_response_latency, Histogram, Opcode execution time in milliseconds
watch_event, Histogram, Opcode execution time in milliseconds
getdata_resp_latency, Histogram, Opcode execution time in milliseconds
create_resp_latency, Histogram, Opcode execution time in milliseconds
create2_resp_latency, Histogram, Opcode execution time in milliseconds
createcontainer_resp_latency, Histogram, Opcode execution time in milliseconds
createttl_resp_latency, Histogram, Opcode execution time in milliseconds
setdata_resp_latency, Histogram, Opcode execution time in milliseconds
getchildren_resp_latency, Histogram, Opcode execution time in milliseconds
getchildren2_resp_latency, Histogram, Opcode execution time in milliseconds
getephemerals_resp_latency, Histogram, Opcode execution time in milliseconds
getallchildrennumber_resp_latency, Histogram, Opcode execution time in milliseconds
delete_resp_latency, Histogram, Opcode execution time in milliseconds
exists_resp_latency, Histogram, Opcode execution time in milliseconds
getacl_resp_latency, Histogram, Opcode execution time in milliseconds
setacl_resp_latency, Histogram, Opcode execution time in milliseconds
sync_resp_latency, Histogram, Opcode execution time in milliseconds
multi_resp_latency, Histogram, Opcode execution time in milliseconds
reconfig_resp_latency, Histogram, Opcode execution time in milliseconds
close_resp_latency, Histogram, Opcode execution time in milliseconds
setauth_resp_latency, Histogram, Opcode execution time in milliseconds
setwatches_resp_latency, Histogram, Opcode execution time in milliseconds
setwatches2_resp_latency, Histogram, Opcode execution time in milliseconds
addwatch_resp_latency, Histogram, Opcode execution time in milliseconds
checkwatches_resp_latency, Histogram, Opcode execution time in milliseconds
removewatches_resp_latency, Histogram, Opcode execution time in milliseconds
check_resp_latency, Histogram, Opcode execution time in milliseconds
.. _config_network_filters_zookeeper_proxy_dynamic_metadata:
Dynamic Metadata
----------------
The ZooKeeper filter emits the following dynamic metadata for each message parsed:
.. csv-table::
:header: Name, Type, Description
:widths: 1, 1, 2
, string, "The path associated with the request, response or event"
, string, "The opname for the request, response or event"
, string, "The string representation of the flags applied to the znode"
, string, "The size of the request message in bytes"
, string, "True if a watch is being set, false otherwise"
, string, "The version parameter, if any, given with the request"
, string, "The timeout parameter in a connect response"
, string, "The protocol version in a connect response"
, string, "The readonly flag in a connect response"
, string, "The zxid field in a response header"
, string, "The error field in a response header"
, string, "The state field in a watch event"
, string, "The event type in a a watch event"