zipkin の RateLimitingSampler が便利(特に低トラフィックの場合)
zipkin で tracing log を取得する場合、一定の割合でログをサンプリングしてストレージに保存していた(たとえば 0.1% だけストアするなど)
この方法では、低トラフィックな環境ではログが十分取りづらいし、トラフィックが急に増えた場合を考えると、サンプリグレートを上げるのも怖いという問題があった。
しかし、zipkin brave の 5.6.0 以後では RateLimitingSampler という実装が導入されている。これにより、1秒間にどれだけ送るかという上限設定ができるようになり、トラフィック量に応じて sampling rate を変更する手間が省けるようになっている。
https://github.com/apache/incubator-zipkin-brave/pull/819 https://github.com/apache/incubator-zipkin-brave/blob/master/brave/src/main/java/brave/sampler/RateLimitingSampler.java
Spring Cloud Sleuth の場合
Spring cloud sleuth でもこの機能にすでに対応されていて、spring.sleuth.sampler.rate
というプロパティを設定すると良い。
https://github.com/spring-cloud/spring-cloud-sleuth/pull/1175
Published: 2019-05-20(Mon) 15:09