system.zookeeper_log
该表包含向 ZooKeeper 服务器发起请求时的参数以及服务器响应相关的信息。
对于请求,只会填充包含请求参数的列,其余列填充默认值(0 或 NULL)。当收到响应时,会将响应中的数据补充到其他列中。
包含请求参数的列:
hostname(LowCardinality(String)) — 执行查询的服务器主机名。type(Enum) — ZooKeeper 客户端中的事件类型。可以具有以下值之一:Request— 请求已发送。Response— 已接收到响应。Finalize— 连接丢失,未接收到响应。
event_date(Date) — 事件发生的日期。event_time(DateTime64) — 事件发生的日期和时间。address(IPv6) — 用于发起请求的 ZooKeeper 服务器的 IP 地址。port(UInt16) — 用于发起请求的 ZooKeeper 服务器端口。session_id(Int64) — ZooKeeper 服务器为每个连接设置的会话 ID。xid(Int32) — 会话内请求的 ID。通常是按顺序递增的请求编号。对于请求行以及与之配对的response/finalize行,该值相同。has_watch(UInt8) — 请求是否设置了 watch。op_num(Enum) — 请求或响应的类型。path(String) — 请求中指定的 ZooKeeper 节点路径;如果请求不需要指定路径,则为空字符串。data(String) — 写入 ZooKeeper 节点的数据(对于SET和CREATE请求 — 请求要写入的内容;对于GET请求的响应 — 实际读取到的内容),或为空字符串。is_ephemeral(UInt8) — ZooKeeper 节点是否被创建为 ephemeral 节点。is_sequential(UInt8) — ZooKeeper 节点是否被创建为 sequential 节点。version(Nullable(Int32)) — 请求在执行时期望的 ZooKeeper 节点版本。适用于CHECK、SET、REMOVE请求(如果请求不检查版本,则该字段为特殊值-1;对于不支持版本检查的其他请求则为NULL)。requests_size(UInt32) — multi 请求中包含的请求数量(这是一种特殊请求,由若干个连续的普通请求组成,并以原子方式执行它们)。multi 请求中包含的所有请求都具有相同的xid。request_idx(UInt32) — multi 请求中某个子请求的序号(对 multi 请求本身为0,随后子请求从1开始依次递增)。
包含请求响应参数的列:
zxid(Int64) — ZooKeeper 事务 ID。由 ZooKeeper 服务器在成功执行请求后发出的序列号(如果请求未执行/返回错误/客户端不知道请求是否已执行,则为0)。error(Nullable(Enum)) — 错误代码。可能取多个值,这里仅列出部分:ZOK— 请求执行成功。ZCONNECTIONLOSS— 连接丢失。ZOPERATIONTIMEOUT— 请求执行超时。ZSESSIONEXPIRED— 会话已过期。NULL— 请求已完成。
watch_type(Nullable(Enum)) —watch事件的类型(对于op_num=Watch的响应),其他响应中为NULL。watch_state(Nullable(Enum)) —watch事件的状态(对于op_num=Watch的响应),其他响应中为NULL。path_created(String) — 已创建 ZooKeeper 节点的路径(针对CREATE请求的响应),如果节点以sequential方式创建,则可能与path不同。stat_czxid(Int64) — 导致创建此 ZooKeeper 节点的变更的zxid。stat_mzxid(Int64) — 最近一次修改此 ZooKeeper 节点的变更的zxid。stat_pzxid(Int64) — 最近一次修改此 ZooKeeper 节点子节点的变更的事务 ID。stat_version(Int32) — 针对此 ZooKeeper 节点数据进行的变更次数。stat_cversion(Int32) — 针对此 ZooKeeper 节点子节点进行的变更次数。stat_dataLength(Int32) — 此 ZooKeeper 节点数据字段的长度。stat_numChildren(Int32) — 此 ZooKeeper 节点的子节点数量。children(Array(String)) — 子 ZooKeeper 节点列表(针对LIST请求的响应)。
示例
查询:
结果:
另请参阅