Module: OpenCensus::Trace::Samplers
- Defined in:
- lib/opencensus/trace/samplers.rb,
lib/opencensus/trace/samplers/max_qps.rb,
lib/opencensus/trace/samplers/probability.rb,
lib/opencensus/trace/samplers/never_sample.rb,
lib/opencensus/trace/samplers/always_sample.rb
Overview
A sampler determines whether a given request’s latency trace should actually be reported. It is usually not necessary to trace every request, especially for an application serving heavy traffic. You may use a sampler to decide, for a given request, whether to report its trace.
The OpenCensus specification defines three samplers: AlwaysSample, NeverSample, and Probability. The Ruby implementation also provides a fourth, MaxQPS, based on the Stackdriver library.
A sampler is a Proc that takes a hash of environment information and returns a boolean indicating whether or not to sample the current request. Alternately, it could be an object that duck-types the Proc interface by implementing the ‘call` method. The hash passed to `call` may contain the following keys, all of which are optional. Samplers must adjust their behavior to account for the availability or absence of any environment information:
-
‘span_context` The SpanContext that created the span being sampled.
-
‘rack_env` The hash of Rack environment information
Applications may set a default sampler in the config. In addition, the sampler may be overridden whenever a span is created.
Defined Under Namespace
Classes: AlwaysSample, MaxQPS, NeverSample, Probability