Releases: dolittle/Runtime
Prerelease v6.0.0-timeout.17
Summary
Adds metrics for EventHorizon
Added
- Metrics
Prerelease v6.0.0-timeout.16
- Adds a few new tests to
when_acceptingandwhen_receiving_arguments - Move and rename the
MyProtocolfile - Create a new given
a_responsewith some crazy callback shizzle, so that we can simulate the while loop inHandleClientMessages, which sets the results for the calls inside the_callsdictionary- All of the
Task.Run()and cancellation callbacks that I have to do are a bit weird, but I didn't know of a nicer way of handling the while loop.
- All of the
- Create tests for
Call()inwhen_calling - Create test for
Reject()inwhen_rejecting - Fix some logging and add a
Warninglevel log if theCall()should fail. This exception gets thrown higher up so something would eventually catch it, but I thought it was good to log it anyway here. Not so sure about which log level to give it though...
Prerelease v6.0.0-timeout.15
Summary
Specs and improvements to the code for Event Horizon
Added
- A couple more interfaces for EventHorizon to make it easier to test
- Specs around most of the components of the EventHorizon
Prerelease v6.0.0-timeout.14
Wrote a few more specifications to verify the timeout and dispose behaviour of the PingedConnection.
The test harness is definitely not pretty, and could be made nicer if we made interfaces for the Wrapped...Stream... classes. But that involves a little more thinking, and I'm still pretty confident that the behaviour is well tested now. So we can improve upon that at a later stage.
Prerelease v6.0.0-timeout.13
I ended up doing all of the metrics in one go - as I thought it was nice to look at the names together to make sure they are consistent.
I've tried to base the naming of the Prometheus best practices naming conventions https://prometheus.io/docs/practices/naming/.
All our metrics start with dolittle_, then either system_, customer_ or shared_ (indicating whether the metric is meant for us, the customer, or both). Then the namespace (replace . with _), lastly the actual metric name and the unit following the Prometheus guide.
I found some inconsistencies with the method names in the interfaces, but didn't fix them. I rather tried to make the metric names consistent (as those are what we will see outside the Runtime).
Also I found a few small bugs related to metrics that I fixed.
To try it out, start the Runtime (and a Head) - then look at the metrics on http://localhost:9700/metrics. You get the latest metrics every time you refresh the page.
Prerelease v6.0.0-timeout.12
During rewrite of EventHorizon - we added a validation step to check that we received the correct event we asked for. This does not work when there are multiple partitions in the public stream, since we really ask for the next event after a position for the specific partition.
This validation should be completely unnecessary, so let's get rid of it again.
Prerelease v6.0.0-timeout.11
Makes Subscriptions the mastermind behind orchestrating the subscription process. Will return a failure if a subscription with the same id is already in progress.
Prerelease v6.0.0-timeout.9
We have issues with stream processors not being unregistered. This is an attempt to make the code more robust and correct.
Prerelease v6.0.0-timeout.8
Removes a Task that was spun up and left waiting for ReverseCallArgumentsContext to start the pings. This should solve the problem of pings not starting even though connection continues as usual.
Prerelease v6.0.0-timeout.7
Summary
Simplifies the event horizon client side by creating many more abstractions. Also making the connections and lifecycle management more resilient and robust
Added
- Many more abstractions around event horizon (client side) that makes it much more simpler to work with
Fixed
- Bugs in execution context manager that made it so that the Microservice id did not follow correctly when doing a CurrentFor(TenantId)