ZooKeeper 代理¶
ZooKeeper 代理过滤器解码 Apache ZooKeeper 的客户端协议。它能够对负载中的请求、响应、事件进行解码。其中支持 ZooKeeper 3.5 中已知的大多数操作码。不支持的那就是与 SALS 认证有关。
Attention
ZooKeeper 代理过滤器目前在积极的开发中,还处于试验阶段。随着时间的推移,功能将会得到扩展,并且配置结构也可能会发生变化。
配置¶
ZooKeeper 代理过滤器应该与 TCP 代理过滤器相连接,如下面的配置片段所示:
filter_chains:
- filters:
- name: envoy.filters.network.zookeeper_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.zookeeper_proxy.v3.ZooKeeperProxy
stat_prefix: zookeeper
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: tcp
cluster: ...
统计¶
每一个ZooKeeper 代理过滤器的配置都有一个基于 <stat_prefix>.zookeeper. 的统计信息。可用的计数器如下:
名称 |
类型 |
描述 |
---|---|---|
decoder_error |
Counter |
消息未解码的次数 |
request_bytes |
Counter |
解码请求信息中的字节数 |
connect_rq |
Counter |
常规连接(非只读)请求数 |
connect_readonly_rq |
Counter |
设置了 readonly 标志的连接请求数 |
ping_rq |
Counter |
Ping 请求的数量 |
auth.<type>_rq |
Counter |
给定类型的身份认证的请求数量 |
getdata_rq |
Counter |
获取请求数据的数量 |
create_rq |
Counter |
create 请求数 |
create2_rq |
Counter |
create2 请求数 |
setdata_rq |
Counter |
setdata 请求数 |
getchildren_rq |
Counter |
getchildren 请求数 |
getchildren2_rq |
Counter |
getchildren2 请求数 |
remove_rq |
Counter |
删除请求数 |
exists_rq |
Counter |
统计请求数 |
getacl_rq |
Counter |
getacl 请求数 |
setacl_rq |
Counter |
setacl 请求数 |
sync_rq |
Counter |
同步请求数 |
multi_rq |
Counter |
多笔交易请求数 |
reconfig_rq |
Counter |
重新配置请求数 |
close_rq |
Counter |
关闭请求数 |
setwatches_rq |
Counter |
setwatches 请求数 |
checkwatches_rq |
Counter |
checkwatches 请求数 |
removewatches_rq |
Counter |
removewatches 请求数 |
check_rq |
Counter |
检查请求数 |
response_bytes |
Counter |
解码响应消息中的字节数 |
connect_resp |
Counter |
连接响应数 |
ping_resp |
Counter |
Ping 响应数 |
auth_resp |
Counter |
认证响应数 |
watch_event |
Counter |
服务器触发的监视事件的数量 |
getdata_resp |
Counter |
getdata 响应数 |
create_resp |
Counter |
create 响应数 |
create2_resp |
Counter |
create2 响应数 |
createcontainer_resp |
Counter |
createcontainer 响应数 |
createttl_resp |
Counter |
createttl 响应数 |
setdata_resp |
Counter |
setdata 响应数 |
getchildren_resp |
Counter |
getchildren 响应数 |
getchildren2_resp |
Counter |
getchildren2 响应数 |
getephemerals_resp |
Counter |
getephemerals 响应数 |
getallchildrennumber_resp |
Counter |
getallchildrennumber 响应数 |
remove_resp |
Counter |
删除响应数 |
exists_resp |
Counter |
存在响应数 |
getacl_resp |
Counter |
getacl 响应数 |
setacl_resp |
Counter |
setacl 响应数 |
sync_resp |
Counter |
同步响应数 |
multi_resp |
Counter |
多笔交易响应数 |
reconfig_resp |
Counter |
重新配置响应数 |
close_resp |
Counter |
关闭响应数 |
setauth_resp |
Counter |
setauth 响应数 |
setwatches_resp |
Counter |
setwatches 响应数 |
checkwatches_resp |
Counter |
checkwatches 响应数 |
removewatches_resp |
Counter |
removewatches 响应数 |
check_resp |
Counter |
检查响应数 |
操作码延迟统计信息¶
过滤器将在 <stat_prefix>.zookeeper.<opcode>_response_latency 命名空间中收集延迟统计信息。延迟统计信息以毫秒为单位:
名称 |
类型 |
描述 |
---|---|---|
connect_response_latency |
Histogram |
操作码执行时间(毫秒) |
ping_response_latency |
Histogram |
操作码执行时间(毫秒) |
auth_response_latency |
Histogram |
操作码执行时间(毫秒) |
watch_event |
Histogram |
操作码执行时间(毫秒) |
getdata_response_latency |
Histogram |
操作码执行时间(毫秒) |
create_response_latency |
Histogram |
操作码执行时间(毫秒) |
create2_response_latency |
Histogram |
操作码执行时间(毫秒) |
createcontainer_response_latency |
Histogram |
操作码执行时间(毫秒) |
createttl_response_latency |
Histogram |
操作码执行时间(毫秒) |
setdata_response_latency |
Histogram |
操作码执行时间(毫秒) |
getchildren_response_latency |
Histogram |
操作码执行时间(毫秒) |
getchildren2_response_latency |
Histogram |
操作码执行时间(毫秒) |
getephemerals_response_latency |
Histogram |
操作码执行时间(毫秒) |
getallchildrennumber_response_latency |
Histogram |
操作码执行时间(毫秒) |
remove_response_latency |
Histogram |
操作码执行时间(毫秒) |
exists_response_latency |
Histogram |
操作码执行时间(毫秒) |
getacl_response_latency |
Histogram |
操作码执行时间(毫秒) |
setacl_response_latency |
Histogram |
操作码执行时间(毫秒) |
sync_response_latency |
Histogram |
操作码执行时间(毫秒) |
multi_response_latency |
Histogram |
操作码执行时间(毫秒) |
reconfig_response_latency |
Histogram |
操作码执行时间(毫秒) |
close_response_latency |
Histogram |
操作码执行时间(毫秒) |
setauth_response_latency |
Histogram |
操作码执行时间(毫秒) |
setwatches_response_latency |
Histogram |
操作码执行时间(毫秒) |
checkwatches_response_latency |
Histogram |
操作码执行时间(毫秒) |
removewatches_response_latency |
Histogram |
操作码执行时间(毫秒) |
check_response_latency |
Histogram |
操作码执行时间(毫秒) |
动态元数据¶
ZooKeeper 过滤器分析每一个消息都会释放出以下动态元数据:
名称 |
类型 |
描述 |
---|---|---|
<path> |
string |
与请求、响应和事件关联的路径 |
<opname> |
string |
与请求、响应和事件关联的操作名称 |
<create_type> |
string |
用于 znode 标志的字符串表示形式 |
<bytes> |
string |
以字节为单位欸的请求消息的大小 |
<watch> |
string |
如果设置监听则为 True,否则为 False |
<version> |
string |
请求中给定的 version 参数(如果有) |
<timeout> |
string |
连接响应中的超时参数 |
<protocol_version> |
string |
连接响应中的协议版本 |
<readonly> |
string |
连接响应中的 readonly 标志 |
<zxid> |
string |
响应头中的 zxid 字段 |
<error> |
string |
响应头中的 error 字段 |
<client_state> |
string |
监听事件中的 state 字段 |
<event_type> |
string |
监听事件中的事件类型 |