Line data Source code
1 : #include "source/extensions/tracers/opentelemetry/resource_detectors/dynatrace/config.h" 2 : 3 : #include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/dynatrace_resource_detector.pb.h" 4 : #include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/dynatrace_resource_detector.pb.validate.h" 5 : 6 : #include "source/common/config/utility.h" 7 : #include "source/extensions/tracers/opentelemetry/resource_detectors/dynatrace/dynatrace_metadata_file_reader.h" 8 : #include "source/extensions/tracers/opentelemetry/resource_detectors/dynatrace/dynatrace_resource_detector.h" 9 : 10 : namespace Envoy { 11 : namespace Extensions { 12 : namespace Tracers { 13 : namespace OpenTelemetry { 14 : 15 : ResourceDetectorPtr DynatraceResourceDetectorFactory::createResourceDetector( 16 0 : const Protobuf::Message& message, Server::Configuration::TracerFactoryContext& context) { 17 : 18 0 : auto mptr = Envoy::Config::Utility::translateAnyToFactoryConfig( 19 0 : dynamic_cast<const ProtobufWkt::Any&>(message), context.messageValidationVisitor(), *this); 20 : 21 0 : const auto& proto_config = MessageUtil::downcastAndValidate< 22 0 : const envoy::extensions::tracers::opentelemetry::resource_detectors::v3:: 23 0 : DynatraceResourceDetectorConfig&>(*mptr, context.messageValidationVisitor()); 24 : 25 0 : DynatraceMetadataFileReaderPtr reader = std::make_unique<DynatraceMetadataFileReaderImpl>(); 26 0 : return std::make_unique<DynatraceResourceDetector>(proto_config, std::move(reader)); 27 0 : } 28 : 29 : /** 30 : * Static registration for the Dynatrace resource detector factory. @see RegisterFactory. 31 : */ 32 : REGISTER_FACTORY(DynatraceResourceDetectorFactory, ResourceDetectorFactory); 33 : 34 : } // namespace OpenTelemetry 35 : } // namespace Tracers 36 : } // namespace Extensions 37 : } // namespace Envoy