Metrics for namespace level
Search before asking
- [X] I had searched in the issues and found no similar issues.
Motivation
Ref: https://github.com/apache/incubator-kvrocks/discussions/726 We are using the namespace to separate data between users and it works well. But the metrics from the info command stats didn't separate by namespace as well. As a user, we want to know the speed of commands for each namespace.
Solution
No response
Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
@liangyuanpeng Thanks for your feedback, it makes a lot sense.
Do you want only the data of stats to be isolated according to the namespace, or all parameters of the command INFO are required?
Now kvrocks don't save stat data for each namespace, if we need make it we should save stat for each namespace.
we can change Server#stats to a map that save namespace to stat mapping.
This will increase additional cost above:
- Roughly 2KB memory usage per namespace
- lock namespace-stat map when we add namespace
- One more indirect addressing for access stat
- Administrator
infocommand need to foreach all namespace stat and count sum/average.
For 1rd we won't have thousands of namespace, so this memory usage is not large. For 2nd add namespace is low-frequency operation and it is fast. For 3rd if we think indirect addressing expensive, we can cache it in connect.(I don't think this is necessary) For 4rd this is not important.
I think them is acceptable. So do we need do it?