Hi all,
I’ve just release μ/log v0.4.0
https://github.com/BrunoBonacci/mulog
This version contains:
- A new publisher for AWS CloudWatch Logs
- A new publisher for [Jaeger Tracing](https://www.jaegertracing.io/)
- Performances improvements for μ/trace and local-context
- Various fixes and improvements
- More documentation
Hi all,
I’ve just release safely v0.7.0-alpha1
https://github.com/BrunoBonacci/safely
Safely is a Clojure’s circuit-breaker library for handling retries in an elegant declarative way.
This version contains the tracking migration to μ/log.
So now all the safely
s-expr are automatically traced and you can get a visual representation
of your traces via Zipkin (http://zipkin.io) and Jaeger Tracing (https://www.jaegertracing.io/)
Here and example:
Nice! Here:
;; or wait a random amount of time with +/- a random variation
:retry-delay [:random 3000 :+/- 0.35]
Q1: Is the +/- a fraction of the base, i.e. +/- 300 * 0.35? And is it really "random amount of time with +/-" or rather "given amount of time with +/- random variation"? Update: Reading more of the Readme I see this is indeed the case
Typo here:
;; if the output of the body should be considered as a filed response
Q2: And what is "thread pool queue size"? How many calls can wait for a thread to become available? What happens to those that do not fit in? Update: I see it is later explained to be indeed the case.
Typo: time an incrising number
Q3: What does :failure-threshold 0.5
mean? That 50% of requests in some time window failed??
"Hystrix over the years became unnecessarily a huge library." - and it is also deprecated in favour of resilience4j or adaptive limits.Hi @holyjak,
thanks for the typos, i’ll fix it.
A1: it produces a random jitter with uniform distribution around the base
with a +/- a given pct
. you can see it as roughly 3s (across many calls)
A2: Queue size and thread-pool size are configurable, requests are rejected of no space/thread is available. Depending on the configuration the request might be retried in a later time
A3: :failure-threshold
checks how many requests failed within the last x seconds (controlled by :counters-buckets
) and if the threshold is crossed it flips the circuit open.
Unfortunately one of the improvements in Cloverage 1.1.3 introduced a regression 😬 Fortunately the author of the feature with the unintended side effect was able to quickly produce an alternative that appears to work fine, and now we have a regression test for that edge case 🙂
I have cut a new release, 1.2.0 -- everyone should update. lein-cloverage
will inject RELEASE
automatically if you don't specify a version explicitly in your dependencies or via the CLOVERAGE_VERSION
environment variable, so hopefully this will fix a bunch of projects that never even noticed anything was wrong :)
i have been evaluating diehard
but this has a lot of strong selling points for me!