Add tracer configuration
[ric-plt/tracelibcpp.git] / src / config.hpp
1 #ifndef _TRACELIB_CONFIG_HPP_
2 #define _TRACELIB_CONFIG_HPP_
3
4 #include <boost/algorithm/string.hpp>
5 #include <jaegertracing/Tracer.h>
6
7 #define TRACING_ENABLED_ENV      "TRACING_ENABLED"
8 #define JAEGER_SAMPLER_TYPE_ENV  "TRACING_JAEGER_SAMPLER_TYPE"
9 #define JAEGER_SAMPLER_PARAM_ENV "TRACING_JAEGER_SAMPLER_PARAM"
10 #define JAEGER_AGENT_ADDR_ENV    "TRACING_JAEGER_AGENT_ADDR"
11 #define JAEGER_LOG_LEVEL_ENV     "TRACING_JAEGER_LOG_LEVEL"
12
13 namespace tracelibcpp
14 {
15     typedef enum {
16         LOG_ALL,
17         LOG_ERR,
18         LOG_NONE
19     } LogLevel;
20     class ConfMaker {
21     public:
22         ConfMaker(std::string serviceName):
23             name(serviceName) {}
24
25         std::string getEnv(const char* envName, std::string defVal);
26
27         bool isTracingEnabled(void);
28
29         jaegertracing::Config makeNopTraceConfig(void);
30
31         jaegertracing::samplers::Config getSamplerConfig(void);
32
33         jaegertracing::reporters::Config getReporterConfig(void);
34
35         LogLevel getLoggingLevel(void);
36
37         std::unique_ptr<jaegertracing::logging::Logger> getLogger(void);
38
39         jaegertracing::Config getTraceConfig(void);
40
41     private:
42         std::string name;
43     };
44 }
45
46 #endif