Documentation for tracelibcpp
[ric-plt/tracelibcpp.git] / src / config.hpp
1 /*
2  * Copyright (c) 2019 AT&T Intellectual Property.
3  * Copyright (c) 2018-2019 Nokia.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * This source code is part of the near-RT RIC (RAN Intelligent Controller)
18  * platform project (RICP).
19  */
20 #ifndef _TRACELIB_CONFIG_HPP_
21 #define _TRACELIB_CONFIG_HPP_
22
23 #include <boost/algorithm/string.hpp>
24 #include <jaegertracing/Tracer.h>
25
26 #define TRACING_ENABLED_ENV      "TRACING_ENABLED"
27 #define JAEGER_SAMPLER_TYPE_ENV  "TRACING_JAEGER_SAMPLER_TYPE"
28 #define JAEGER_SAMPLER_PARAM_ENV "TRACING_JAEGER_SAMPLER_PARAM"
29 #define JAEGER_AGENT_ADDR_ENV    "TRACING_JAEGER_AGENT_ADDR"
30 #define JAEGER_LOG_LEVEL_ENV     "TRACING_JAEGER_LOG_LEVEL"
31
32 namespace tracelibcpp
33 {
34     typedef enum {
35         LOG_ALL,
36         LOG_ERR,
37         LOG_NONE
38     } LogLevel;
39     class ConfMaker {
40     public:
41         ConfMaker(std::string serviceName):
42             name(serviceName) {}
43
44         std::string getEnv(const char* envName, std::string defVal);
45
46         bool isTracingEnabled(void);
47
48         jaegertracing::Config makeNopTraceConfig(void);
49
50         jaegertracing::samplers::Config getSamplerConfig(void);
51
52         jaegertracing::reporters::Config getReporterConfig(void);
53
54         LogLevel getLoggingLevel(void);
55
56         std::unique_ptr<jaegertracing::logging::Logger> getLogger(void);
57
58         jaegertracing::Config getTraceConfig(void);
59
60     private:
61         std::string name;
62     };
63 }
64
65 #endif