Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : 5 : #include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/environment_resource_detector.pb.h" 6 : 7 : #include "source/extensions/tracers/opentelemetry/resource_detectors/resource_detector.h" 8 : 9 : namespace Envoy { 10 : namespace Extensions { 11 : namespace Tracers { 12 : namespace OpenTelemetry { 13 : 14 : /** 15 : * Config registration for the Environment resource detector. @see ResourceDetectorFactory. 16 : */ 17 : class EnvironmentResourceDetectorFactory : public ResourceDetectorFactory { 18 : public: 19 : /** 20 : * @brief Create a Resource Detector that reads from the OTEL_RESOURCE_ATTRIBUTES 21 : * environment variable. 22 : * 23 : * @param message The resource detector configuration. 24 : * @param context The tracer factory context. 25 : * @return ResourceDetectorPtr 26 : */ 27 : ResourceDetectorPtr 28 : createResourceDetector(const Protobuf::Message& message, 29 : Server::Configuration::TracerFactoryContext& context) override; 30 : 31 1 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 32 1 : return std::make_unique<envoy::extensions::tracers::opentelemetry::resource_detectors::v3:: 33 1 : EnvironmentResourceDetectorConfig>(); 34 1 : } 35 : 36 38 : std::string name() const override { 37 38 : return "envoy.tracers.opentelemetry.resource_detectors.environment"; 38 38 : } 39 : }; 40 : 41 : DECLARE_FACTORY(EnvironmentResourceDetectorFactory); 42 : 43 : } // namespace OpenTelemetry 44 : } // namespace Tracers 45 : } // namespace Extensions 46 : } // namespace Envoy