1
#include "source/extensions/tracers/opentelemetry/resource_detectors/environment/config.h"
2

            
3
#include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/environment_resource_detector.pb.h"
4
#include "envoy/extensions/tracers/opentelemetry/resource_detectors/v3/environment_resource_detector.pb.validate.h"
5

            
6
#include "source/common/config/utility.h"
7
#include "source/extensions/tracers/opentelemetry/resource_detectors/environment/environment_resource_detector.h"
8

            
9
namespace Envoy {
10
namespace Extensions {
11
namespace Tracers {
12
namespace OpenTelemetry {
13

            
14
ResourceDetectorPtr EnvironmentResourceDetectorFactory::createResourceDetector(
15
2
    const Protobuf::Message& message, Server::Configuration::ServerFactoryContext& context) {
16

            
17
2
  auto mptr = Envoy::Config::Utility::translateAnyToFactoryConfig(
18
2
      dynamic_cast<const Protobuf::Any&>(message), context.messageValidationVisitor(), *this);
19

            
20
2
  const auto& proto_config = MessageUtil::downcastAndValidate<
21
2
      const envoy::extensions::tracers::opentelemetry::resource_detectors::v3::
22
2
          EnvironmentResourceDetectorConfig&>(*mptr, context.messageValidationVisitor());
23

            
24
2
  return std::make_unique<EnvironmentResourceDetector>(proto_config, context);
25
2
}
26

            
27
/**
28
 * Static registration for the Env resource detector factory. @see RegisterFactory.
29
 */
30
REGISTER_FACTORY(EnvironmentResourceDetectorFactory, ResourceDetectorFactory);
31

            
32
} // namespace OpenTelemetry
33
} // namespace Tracers
34
} // namespace Extensions
35
} // namespace Envoy