Timeseries Golem is a Python library designed to emit metric signals as per the given instruction, just like a golem.
It is useful when:
- Specific signal patterns are required to test time-series use cases like alerting, anomaly, etc.
- Specific types of distribution are required to test its behavior.
- Opentelemetry output needs to be tested against any backend at scale.
It emits metrics to a remote write location such as Levitate using Prometheus Remote Write.
Install the Snappy C Library with the following commands
DEB-based
$ sudo apt-get install libsnappy-dev
RPM-based $ sudo yum install csnappy-devel
Alpine (Docker) RUN apk add --no-cache snappy-dev g++
openSUSE $ sudo zypper in snappy-devel
MacOS Intel
$ brew install snappy
$ CPPFLAGS="-I/usr/local/include -L/usr/local/lib" pip install python-snappy
MacOS Apple Silicon
$ brew install snappy
$ CPPFLAGS="-I/opt/homebrew/include -L/opt/homebrew/lib" pip install python-snappy
$ make setup
$ docker build -t ts_golem .
$ docker run ts_golem <commands_as_per_below_use_cases>
To validate signal configuration:
$ docker run ts_golem ts_golem validate -sg signal_details.json
To generate time series:
$ docker run ts_golem ts_golem generate -sg signal_details.json -cf exporter_config.json
To generate time series with hot reload for signal_details json:
$ docker run ts_golem ts_golem generate -sg signal_details.json -cf exporter_config.json --reload
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.