Metrics gathering library for high-throughput and latency sensitive services.
Main design goal is that recording a single should:
- avoid sampling where possible
- should not be more expensive then a single atomic operation (depends on metric type)
- Keep the code relatively readable and maintenable
Simplification Optics by removing the external polling agent which added too much operational and code complexity for very little gain.
Dependencies:
- libbsd
- libdaemon
- libmicrohttpd
Building:
$ mkdir build
$ cd build
$ PREFIX=.. ../compile.sh
Testing:
$ cd build
$ PREFIX=.. ../compile.sh test valgrind bench
$ PREFIX=.. ../compile.sh test_<name>
$ PREFIX=.. ../compile.sh valgrind_<name>
$ PREFIX=.. ../compile.sh bench_<name>
To log metrics refer to this example which describes the basics of creating and logging metrics.
- Assumes AMD64
- Not 100% POSIX-compliant
- Only Linux is supported