diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/vespa/streamingvisitors/tracing/SamplingTraceExporter.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/vespa/streamingvisitors/tracing/SamplingTraceExporter.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/tracing/SamplingTraceExporter.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/tracing/SamplingTraceExporter.java new file mode 100644 index 00000000000..b18e8d78266 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/tracing/SamplingTraceExporter.java @@ -0,0 +1,26 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.streamingvisitors.tracing; + +import java.util.function.Supplier; + +/** + * Trace exporter which only exports a subset of traces as decided by the provided sampling strategy. + */ +public class SamplingTraceExporter implements TraceExporter { + + private final TraceExporter wrappedExporter; + private final SamplingStrategy samplingStrategy; + + public SamplingTraceExporter(TraceExporter wrappedExporter, SamplingStrategy samplingStrategy) { + this.wrappedExporter = wrappedExporter; + this.samplingStrategy = samplingStrategy; + } + + @Override + public void maybeExport(Supplier<TraceDescription> traceDescriptionSupplier) { + if (samplingStrategy.shouldSample()) { + wrappedExporter.maybeExport(traceDescriptionSupplier); + } + } + +} |