@Bean Sampler sampler(SelfTracingProperties config) {
    if (config.getSampleRate() != 1.0) {
      if (config.getSampleRate() < 0.01) {
        return BoundarySampler.create(config.getSampleRate());
      } else {
        return Sampler.create(config.getSampleRate());
      }
    } else if (config.getTracesPerSecond() != 0) {
      return RateLimitingSampler.create(config.getTracesPerSecond());
    }
    return Sampler.ALWAYS_SAMPLE;
  }
This controls the general rate. In order to not accidentally start traces started from the
tracer itself, this isn't used as {@link Tracing.Builder#sampler(Sampler)}. The impact of this
is that we can't currently start traces from Kafka or Rabbit (until we use a messaging
sampler).
<p>
See https://github.com/openzipkin/brave/pull/914 for the messaging abstraction
zipkin-server/src/main/java/zipkin2/server/internal/brave/ZipkinSelfTracingConfiguration.java