Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : 5 : #include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/dynatrace_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 Dynatrace resource detector. @see ResourceDetectorFactory. 16 : */ 17 : class DynatraceResourceDetectorFactory : public ResourceDetectorFactory { 18 : public: 19 : /** 20 : * @brief Creates a Resource Detector that reads from the Dynatrace enrichment files. 21 : * 22 : * @see 23 : * https://docs.dynatrace.com/docs/shortlink/enrichment-files#oneagent-virtual-files 24 : * 25 : * @param message The resource detector configuration. 26 : * @param context The tracer factory context. 27 : * @return ResourceDetectorPtr 28 : */ 29 : ResourceDetectorPtr 30 : createResourceDetector(const Protobuf::Message& message, 31 : Server::Configuration::TracerFactoryContext& context) override; 32 : 33 1 : ProtobufTypes::MessagePtr createEmptyConfigProto() override { 34 1 : return std::make_unique<envoy::extensions::tracers::opentelemetry::resource_detectors::v3:: 35 1 : DynatraceResourceDetectorConfig>(); 36 1 : } 37 : 38 38 : std::string name() const override { 39 38 : return "envoy.tracers.opentelemetry.resource_detectors.dynatrace"; 40 38 : } 41 : }; 42 : 43 : DECLARE_FACTORY(DynatraceResourceDetectorFactory); 44 : 45 : } // namespace OpenTelemetry 46 : } // namespace Tracers 47 : } // namespace Extensions 48 : } // namespace Envoy