1
#include <utility>
2

            
3
#include "source/common/json/json_loader.h"
4
#include "source/extensions/tracers/opentelemetry/samplers/dynatrace/sampler_config_provider.h"
5

            
6
namespace Envoy {
7
namespace Extensions {
8
namespace Tracers {
9
namespace OpenTelemetry {
10

            
11
16
bool SamplerConfig::parse(const std::string& json) {
12
16
  const auto result = Envoy::Json::Factory::loadFromString(json);
13
16
  if (result.ok()) {
14
8
    const auto& obj = result.value();
15
8
    if (obj->hasObject("rootSpansPerMinute")) {
16
7
      const auto value = *obj->getInteger("rootSpansPerMinute", default_root_spans_per_minute_);
17
7
      root_spans_per_minute_.store(value);
18
7
      return true;
19
7
    }
20
8
  }
21
  // Didn't get a value, reset to default
22
9
  root_spans_per_minute_.store(default_root_spans_per_minute_);
23
9
  return false;
24
16
}
25

            
26
} // namespace OpenTelemetry
27
} // namespace Tracers
28
} // namespace Extensions
29
} // namespace Envoy