-
Notifications
You must be signed in to change notification settings - Fork 992
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
Implement an EventBus system to publish events and metrics #124
Comments
Thanks, that's an amazing approach to creating more value for the user. I like the cluster events idea very much. The metrics/event bus story tackles a couple aspect:
I'm not sure, whether this a 4.x or a 3.x(3.4) topic. Introducing rxjava to 3.4 is not a big deal. The result of the ticket and the metrics/event bus seems really amazing to me and I'm looking forward to get it into lettuce and make it available for clients built on top of lettuce such as spinach. |
See also #110. The event bus could be provided by a |
Events:
The event bus deprecates then the existing |
Command latency example: Raw output:
JSON: {
"[local:any -> localhost/127.0.0.1:6479, commandType=FLUSHALL]": {
"count": 23,
"timeUnit": "MICROSECONDS",
"firstResponse": {
"min": 151,
"max": 1474,
"percentiles": {
"50.0": 232,
"90.0": 307,
"95.0": 323,
"99.0": 1474,
"99.9": 1474
}
},
"completion": {
"min": 548,
"max": 4718,
"percentiles": {
"50.0": 794,
"90.0": 1036,
"95.0": 1073,
"99.0": 4718,
"99.9": 4718
}
}
}
} |
Implement an EventBus system to publish events and metrics #124 - Implement the EventBus infrastructure - Add rxjava dependency - Implement Network Latency collection and publishing via the EventBus - Send client connection events using the EventBus - Sent cluster topology changed event using the EventBus
Implemented. |
Merge client resources and EventBus from 3.4 branch into the 4.x branch and adopt 4.x changes. Issues from 3.4 #110 #124 This commit aggregates the following topics: - Publish cluster topology changed event using the EventBus - Publish connection events using the EventBus - Collect command latencies and publish metrics over the EventBus - Implement an EventBus system - Support reusable ClientResources with CDI and Spring - Provide a reusable client resources for ThreadPools and other expensive resources
I'd like to propose to continue the discussion started here in a separate issue.
Similar to the EventBus mechanism in the couchbase sdk, lettuce could introduce an
EventBus
emittingRedisEvent
s:This EventBus system could be used both by lettuce and spinach.
My proposal would be to initially create 2 types of events:
EventType.SERVER
(which would emit any information concerning the redis cluster) andEventType.CLIENT
(which would emit any information concerning the client itself).Questions
Observable
emit events? Something like:The text was updated successfully, but these errors were encountered: