New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add user/client name to MONITOR and SLOWLOG #6832
base: unstable
Are you sure you want to change the base?
Conversation
b012026
to
ba601f2
Compare
pushed -f to support module commands calling RM_Call |
ba601f2
to
b36ff84
Compare
@antirez if we want to see the real user and connection for modules (like we do for lua), specifically for threads and async module clients, we need to add a other than that, this PR invalidates #2877 |
Hi @guybe7, during the previous meeting on Slack we said we want to design this with more efforts before making breaking changes. Thanks. |
@antirez i was under the impression that you didn't care about breaking the monitor format. if we want we can easily avoid it by adding an argument like MINITOR WITH-NAMES or something alike. anyway, what design concerns do you think are uncovered by this change? let's discuss them, and make the design and changes before we ship the final 6.0. |
Hello, please, is there any estimation when this can be clarified and/or merged? Thanks. |
@oranagra I think it would make sense to avoid breaking |
@yossigo i completely agree, but i got a different impression from Salvatore (saying he wants to have the new info as default and doesn't care much about monitor backwards compatibility). |
MONITOR will show client info only if the CLIENTINFO arg was provided (To avoid breaking the monitor output format) Performance note: Because of the new flag we have to build the monitor line for every monitor client (Unlike before, where we used the same string for all monitor clients). Indeed a performance degradation but de facto there's usually only one monitor client...
59fad49
to
cf29f0b
Compare
@antirez this feature is now optional with |
Folks, this is too hardly under-designed. It does not make sense to have an option to just enable a single additional field. This should be part of a serious redesign. I think we can still do that during the Redis 6 development, but we need higher standards, a design document, and so forth, and understand now if we want to change format completely. IMHO we should have something like a "FULL" option or alike that will output filed="value" or alike so that the design is flexible and no longer positional. |
@antirez i would like to propose that we add 3 new arguments to MONITOR:
please let me know if you like that direction, or which parts of it you don't like, and we can progress from there. p.s. one more unrelated feature that can be useful (mainly for developers debugging redis under fuzzers) is to add is a way (CONFIG) that makes monitors be flushed by the signal handler (so on crush, if you had a monitor you have all the commands leading to the crash), and even an option to flush monitors in |
Thanks, postponed to Redis 7, no room for Redis 6 that is due in 1 month. I think this should not be a "last minute" change. |
moreover, I'd like to have more arguments:
then users can user monitor as a temporary audit method. |
@soloestoy Not sure about commands and keys, since they can be inferred from the command (except lua, would we do declared keys or the actually touched keys?) DB is a great idea though. |
if / when we'll ever redesign the MONITOR output, here's another one to consider in the new design: |
Hi @madolson
Sometimes users wanna find who(ip:port) modify specific keys via specific commands, I think if we can support monitor filter it would be very useful in this scenario. |
|
No description provided.