Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/extensions/tracers/dynamic_ot/dynamic_opentracing_driver_impl.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include "envoy/runtime/runtime.h"
4
#include "envoy/thread_local/thread_local.h"
5
#include "envoy/upstream/cluster_manager.h"
6
7
#include "source/extensions/tracers/common/ot/opentracing_driver_impl.h"
8
9
#include "opentracing/dynamic_load.h"
10
11
namespace Envoy {
12
namespace Extensions {
13
namespace Tracers {
14
namespace DynamicOt {
15
16
/**
17
 * This driver provides support for dynamically loading tracing libraries into Envoy that provide an
18
 * implementation of the OpenTracing API (see https://github.com/opentracing/opentracing-cpp).
19
 * TODO(rnburn): Add an example showing how to use a tracer library with this driver.
20
 */
21
class DynamicOpenTracingDriver : public Common::Ot::OpenTracingDriver {
22
public:
23
  DynamicOpenTracingDriver(Stats::Scope& scope, const std::string& library,
24
                           const std::string& tracer_config);
25
26
  static std::string formatErrorMessage(std::error_code error_code,
27
                                        const std::string& error_message);
28
29
  // Tracer::OpenTracingDriver
30
0
  opentracing::Tracer& tracer() override { return *tracer_; }
31
32
0
  PropagationMode propagationMode() const override {
33
0
    return OpenTracingDriver::PropagationMode::TracerNative;
34
0
  }
35
36
private:
37
  opentracing::DynamicTracingLibraryHandle library_handle_;
38
  std::shared_ptr<opentracing::Tracer> tracer_;
39
};
40
41
} // namespace DynamicOt
42
} // namespace Tracers
43
} // namespace Extensions
44
} // namespace Envoy