commit | 71e9444097372e2cf0505583bba65a85a4c3bebf | [log] [tgz] |
---|---|---|
author | wahidw <abdulwahid.w@nokia.com> | Mon Aug 31 23:18:04 2020 +0530 |
committer | wahidw <abdulwahid.w@nokia.com> | Mon Aug 31 23:18:11 2020 +0530 |
tree | 425e84d6155956cbb5876b9d3dbee1464e413f83 | |
parent | 96cdd8a87abd9c14870a09c169636bb0ca8b88d3 [diff] |
Documentation for tracelibcpp Change-Id: Idcfa5e514525c8ef3a6be5c5d34ace5f14b8c95f Signed-off-by: wahidw <abdulwahid.w@nokia.com>
The library includes a function for creating a configured tracer instance. It hides the underlaying tracer implementation from the application.
Create a global tracer
#include <opentracing/tracer.h> #include <tracelibcpp/tracelibcpp.hpp> opentracing::Tracer::InitGlobal(tracelibcpp::createTracer("my-service-name"));
Span context propagation between different software components in RIC is using a TextMap carrier and JSON format serialization. The opentracing C++ Readme gives examples how span context inject and extract with textmap can be done. Serialization to JSON can be done with any JSON library.
The trace library currently supports only Jaeger C++ client tracer implementation. The configuration is done using environment variables:
environment variable | values | default |
---|---|---|
TRACING_ENABLED | 1, true, 0, false | false |
TRACING_JAEGER_SAMPLER_TYPE | const, propabilistic, ratelimiting | const |
TRACING_JAEGER_SAMPLER_PARAM | float | 0.001 |
TRACING_JAEGER_AGENT_ADDR | IP addr + port | 127.0.0.1:6831 |
TRACING_JAEGER_LOG_LEVEL | all, error, none | none |
Meaning of the configuration variables is described in Jaeger web pages. By default a no-op tracer is created.
cmake gcc/c++ opentracing-cpp version 1.5.0
mkdir build cd build cmake .. make
To run unit tests the project needs to be configured with testing option cmake -DWITH_TESTING=ON .. make check Or with output CTEST_OUTPUT_ON_FAILURE=1 make check
Unit testing generates also coverage data. To get that in html format run commands, assuming you are building in build
dir under the tracelibcpp
lcov -c --no-external --base-directory $(dirname $PWD) --directory . --output-file cov.info genhtml cov.info
Binary packages of the libary can be created with make package
target, or with the Dockerfile in the ci
directory.
The Docker build executes unit tests and compiles binary packages which can then be exported from the container by running it and giving the target directory as a command line argument. The target directory must mounted to the container.
# Build the container docker build -t tracelibcpp -f ci/Dockerfile . # Export binary packages to /tmp docker run -v /tmp:/tmp tracelibcpp /tmp
See LICENSES.txt file.