Add tracer configuration
[ric-plt/tracelibcpp.git] / README.md
index 2acd2dd..4f44ce3 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
 # RIC tracing helper library
 
-The library includes a function for creating a tracer instance.
-
-ToDo: tracer configuration options
+The library includes a function for creating a configured tracer instance.
+It hides the underlaying tracer implementation from the application.
 
 ## Usage
 
@@ -20,6 +19,22 @@ The [opentracing C++](https://github.com/opentracing/opentracing-cpp) Readme giv
 how span context **inject** and **extract** with textmap can be done.
 Serialization to JSON can be done with any JSON library.
 
+## Configuration
+
+The trace library currently supports only [Jaeger](https://www.jaegertracing.io/) [C++ client](https://github.com/jaegertracing/jaeger-client-cpp) 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.
+
 ## Requires
 
 cmake
@@ -46,6 +61,21 @@ lcov -c --no-external --base-directory $(dirname $PWD)  --directory . --output-f
 genhtml cov.info
 ```
 
+## Binary package support
+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.
+
+```shell
+# Build the container
+docker build -t tracelibcpp -f ci/Dockerfile .
+# Export binary packages to /tmp
+docker run -v /tmp:/tmp tracelibcpp /tmp
+```
+
 ## License
 
 See [LICENSES.txt](LICENSES.txt) file.