Interface Sampler

  • All Known Implementing Classes:
    ParentBasedSampler

    @ThreadSafe
    public interface Sampler
    Sampler is used to make decisions on Span sampling.
    • Method Detail

      • parentBased

        static Sampler parentBased​(Sampler root)
        Returns a Sampler that always makes the same decision as the parent Span to whether or not to sample. If there is no parent, the Sampler uses the provided Sampler delegate to determine the sampling decision.
        Parameters:
        root - the Sampler which is used to make the sampling decisions if the parent does not exist.
        Returns:
        a Sampler that follows the parent's sampling decision if one exists, otherwise following the root sampler's decision.
      • parentBasedBuilder

        static ParentBasedSampler.Builder parentBasedBuilder​(Sampler root)
        Returns a ParentBasedSampler.Builder that follows the parent's sampling decision if one exists, otherwise following the root sampler and other optional sampler's decision.
        Parameters:
        root - the required Sampler which is used to make the sampling decisions if the parent does not exist.
        Returns:
        a ParentBased.Builder
      • traceIdRatioBased

        static Sampler traceIdRatioBased​(double ratio)
        Returns a new TraceIdRatioBased Sampler. The ratio of sampling a trace is equal to that of the specified ratio.
        Parameters:
        ratio - The desired ratio of sampling. Must be within [0.0, 1.0].
        Returns:
        a new TraceIdRatioBased Sampler.
        Throws:
        IllegalArgumentException - if ratio is out of range
      • shouldSample

        SamplingResult shouldSample​(io.opentelemetry.context.Context parentContext,
                                    String traceId,
                                    String name,
                                    io.opentelemetry.api.trace.Span.Kind spanKind,
                                    io.opentelemetry.api.common.Attributes attributes,
                                    List<SpanData.Link> parentLinks)
        Called during Span creation to make a sampling samplingResult.
        Parameters:
        parentContext - the parent span's SpanContext. This can be SpanContext.INVALID if this is a root span.
        traceId - the TraceId for the new Span. This will be identical to that in the parentContext, unless this is a root span.
        name - the name of the new Span.
        spanKind - the Span.Kind of the Span.
        attributes - Attributes associated with the span.
        parentLinks - the parentLinks associated with the new Span.
        Returns:
        sampling samplingResult whether span should be sampled or not.
      • getDescription

        String getDescription()
        Returns the description of this Sampler. This may be displayed on debug pages or in the logs.

        Example: "TraceIdRatioBased{0.000100}"

        Returns:
        the description of this Sampler.