@@ -0,0 +1,1381 @@
+/*%0A * Copyright 2017 Palantir Technologies, Inc. All rights reserved.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage com.palantir.remoting2.tracing;%0A%0Aimport static com.google.common.base.Preconditions.checkArgument;%0A%0Aimport java.util.concurrent.ThreadLocalRandom;%0A%0A/**%0A * A sampler that returns true at a rate approximately equivalent to the one specified. The specified rate should be%0A * between 0 and 1 (inclusive).%0A */%0Apublic final class RandomSampler implements TraceSampler %7B%0A%0A    private static final ThreadLocalRandom random = ThreadLocalRandom.current();%0A%0A    private final float rate;%0A%0A    public RandomSampler(float rate) %7B%0A        checkArgument(rate %3E= 0 && rate %3C= 1, %22rate should be between 0 and 1: was %25s%22, rate);%0A        this.rate = rate;%0A    %7D%0A%0A    @Override%0A    public boolean sample() %7B%0A        return random.nextFloat() %3C rate;%0A    %7D%0A%0A%7D%0A

add RandomSampler (#423)