Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/extensions/tracers/dynamic_ot/config.cc
Line
Count
Source (jump to first uncovered line)
1
#include "source/extensions/tracers/dynamic_ot/config.h"
2
3
#include "envoy/config/trace/v3/dynamic_ot.pb.h"
4
#include "envoy/config/trace/v3/dynamic_ot.pb.validate.h"
5
#include "envoy/registry/registry.h"
6
7
#include "source/common/common/utility.h"
8
#include "source/extensions/tracers/dynamic_ot/dynamic_opentracing_driver_impl.h"
9
10
namespace Envoy {
11
namespace Extensions {
12
namespace Tracers {
13
namespace DynamicOt {
14
15
DynamicOpenTracingTracerFactory::DynamicOpenTracingTracerFactory()
16
4
    : FactoryBase("envoy.tracers.dynamic_ot") {}
17
18
Tracing::DriverSharedPtr DynamicOpenTracingTracerFactory::createTracerDriverTyped(
19
    const envoy::config::trace::v3::DynamicOtConfig& proto_config,
20
0
    Server::Configuration::TracerFactoryContext& context) {
21
0
  const std::string& library = proto_config.library();
22
0
  const ProtobufWkt::Struct& config_struct = proto_config.config();
23
0
  absl::StatusOr<std::string> json_or_error = MessageUtil::getJsonStringFromMessage(config_struct);
24
0
  ENVOY_BUG(json_or_error.ok(), "Failed to parse json");
25
0
  const std::string config = json_or_error.ok() ? json_or_error.value() : "";
26
0
  return std::make_shared<DynamicOpenTracingDriver>(context.serverFactoryContext().scope(), library,
27
0
                                                    config);
28
0
}
29
30
/**
31
 * Static registration for the dynamic opentracing tracer. @see RegisterFactory.
32
 */
33
LEGACY_REGISTER_FACTORY(DynamicOpenTracingTracerFactory, Server::Configuration::TracerFactory,
34
                        "envoy.dynamic.ot");
35
36
} // namespace DynamicOt
37
} // namespace Tracers
38
} // namespace Extensions
39
} // namespace Envoy