BREAKING CHANGES
MonitoredCommandInfo::server_addris replaced bysource. The field held
the address of the client, not of the server, and could only be a
SocketAddr. It is now aMonitoredCommandSource:Client(SocketAddr)for a
TCP client,Luafor a command run by a script or a function,Unix(String)
for a client on a Unix socket, andUnknown(String)for any other form.
Fixed
MonitorStreamno longer drops script, Unix-socket and IPv6 commands.
MONITORreports the source of a command run by a script as[db lua], of a
Unix-socket client as[db unix:/path]and of an IPv6 client as
[db [::1]:port]. The parser read the source as aSocketAddrand closed the
field at its first], so all three failed to parse, and the stream skipped
them without a trace: a consumer never saw what a script ran. The three forms
are now parsed, and a form the parser does not know is delivered as
MonitoredCommandSource::Unknowninstead of being skipped.
Added
MonitorStream::undecodable_messagescounts the events the stream skipped
because it could not decode them, the waydropped_messagescounts the ones
it discarded under memory pressure.