Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : 5 : #include "envoy/extensions/tracers/opentelemetry/samplers/v3/always_on_sampler.pb.h" 6 : #include "envoy/registry/registry.h" 7 : 8 : #include "source/extensions/tracers/opentelemetry/samplers/sampler.h" 9 : 10 : namespace Envoy { 11 : namespace Extensions { 12 : namespace Tracers { 13 : namespace OpenTelemetry { 14 : 15 : /** 16 : * Config registration for the AlwaysOnSampler. @see SamplerFactory. 17 : */ 18 : class AlwaysOnSamplerFactory : public SamplerFactory { 19 : public: 20 : /** 21 : * @brief Create a Sampler. @see AlwaysOnSampler 22 : * 23 : * @param config Protobuf config for the sampler. 24 : * @param context A reference to the TracerFactoryContext. 25 : * @return SamplerSharedPtr 26 : */ 27 : SamplerSharedPtr createSampler(const Protobuf::Message& config, 28 : Server::Configuration::TracerFactoryContext& context) override; 29 : 30 1 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 31 1 : return std::make_unique< 32 1 : envoy::extensions::tracers::opentelemetry::samplers::v3::AlwaysOnSamplerConfig>(); 33 1 : } 34 38 : std::string name() const override { return "envoy.tracers.opentelemetry.samplers.always_on"; } 35 : }; 36 : 37 : DECLARE_FACTORY(AlwaysOnSamplerFactory); 38 : 39 : } // namespace OpenTelemetry 40 : } // namespace Tracers 41 : } // namespace Extensions 42 : } // namespace Envoy