ZooKeeper proxy filter (#5991)

This filter decodes the ZooKeeper wire protocol and emits
stats & metadata about requests, responses and events.

This wire protocol parsing is based on:

https://github.com/twitter/zktraffic
https://github.com/rgs1/zktraffic-cpp

The actual filter structure is based on the Mysql proxy filter.

Signed-off-by: Raul Gutierrez Segales <rgs@pinterest.com>

Mirrored from https://github.com/envoyproxy/envoy @ b771f99f53142bbb1496dbcddccc5defaaaa8dd8
pull/620/head
data-plane-api(CircleCI) 6 years ago
parent 8c3aa84e47
commit 7ed209e281
  1. 8
      envoy/config/filter/network/zookeeper_proxy/v1alpha1/BUILD
  2. 33
      envoy/config/filter/network/zookeeper_proxy/v1alpha1/zookeeper_proxy.proto

@ -0,0 +1,8 @@
load("//bazel:api_build_system.bzl", "api_proto_library_internal")
licenses(["notice"]) # Apache 2
api_proto_library_internal(
name = "zookeeper_proxy",
srcs = ["zookeeper_proxy.proto"],
)

@ -0,0 +1,33 @@
syntax = "proto3";
package envoy.config.filter.network.zookeeper_proxy.v1alpha1;
option java_outer_classname = "ZookeeperProxyProto";
option java_multiple_files = true;
option java_package = "io.envoyproxy.envoy.config.filter.network.zookeeper_proxy.v1alpha1";
option go_package = "v1alpha1";
import "validate/validate.proto";
import "google/protobuf/wrappers.proto";
// [#protodoc-title: ZooKeeper proxy]
// ZooKeeper Proxy :ref:`configuration overview <config_network_filters_zookeeper_proxy>`.
message ZooKeeperProxy {
// The human readable prefix to use when emitting :ref:`statistics
// <config_network_filters_zookeeper_proxy_stats>`.
string stat_prefix = 1 [(validate.rules).string.min_bytes = 1];
// [#not-implemented-hide:] The optional path to use for writing ZooKeeper access logs.
// If the access log field is empty, access logs will not be written.
string access_log = 2;
// Messages requests, responses and events that are bigger than this value will
// be ignored. If it is not set, the default value is 1Mb.
//
// The value here should match the jute.maxbuffer property in your cluster configuration:
//
// https://zookeeper.apache.org/doc/r3.4.10/zookeeperAdmin.html#Unsafe+Options
//
// if that is set. If it isn't, ZooKeeper's default is also 1Mb.
google.protobuf.UInt32Value max_packet_bytes = 3;
}
Loading…
Cancel
Save