LCOV - code coverage report
Current view: top level - datadog - trace_sampler_config.h (source / functions) Hit Total Coverage
Test: filtered.info Lines: 2 2 100.0 %
Date: 2024-01-03 20:30:12 Functions: 2 2 100.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : // This component provides a `struct`, `TraceSamplerConfig`, used to configure
       4             : // `TraceSampler`. `TraceSampler` accepts a `FinalizedTraceSamplerConfig`, which
       5             : // must be obtained from a call to `finalize_config`.
       6             : //
       7             : // `TraceSamplerConfig` is specified as the `trace_sampler` property of
       8             : // `TracerConfig`.
       9             : 
      10             : #include <vector>
      11             : 
      12             : #include "expected.h"
      13             : #include "json_fwd.hpp"
      14             : #include "optional.h"
      15             : #include "rate.h"
      16             : #include "span_matcher.h"
      17             : 
      18             : namespace datadog {
      19             : namespace tracing {
      20             : 
      21             : struct TraceSamplerConfig {
      22             :   struct Rule : public SpanMatcher {
      23             :     double sample_rate = 1.0;
      24             : 
      25             :     Rule(const SpanMatcher&);
      26          15 :     Rule() = default;
      27             :   };
      28             : 
      29             :   Optional<double> sample_rate;
      30             :   std::vector<Rule> rules;
      31             :   double max_per_second = 200;
      32             : };
      33             : 
      34             : class FinalizedTraceSamplerConfig {
      35             :   friend Expected<FinalizedTraceSamplerConfig> finalize_config(
      36             :       const TraceSamplerConfig& config);
      37             :   friend class FinalizedTracerConfig;
      38             : 
      39        1583 :   FinalizedTraceSamplerConfig() = default;
      40             : 
      41             :  public:
      42             :   struct Rule : public SpanMatcher {
      43             :     Rate sample_rate;
      44             :   };
      45             : 
      46             :   std::vector<Rule> rules;
      47             :   double max_per_second;
      48             : };
      49             : 
      50             : Expected<FinalizedTraceSamplerConfig> finalize_config(
      51             :     const TraceSamplerConfig& config);
      52             : 
      53             : nlohmann::json to_json(const FinalizedTraceSamplerConfig::Rule&);
      54             : 
      55             : }  // namespace tracing
      56             : }  // namespace datadog

Generated by: LCOV version 1.16