Goals
Background and strategic fit
Create a python application that takes memcached keys and import them into influxdb at a given rate. The configuration file follow !CHAOS specification so that, it can be used as alternative to pure !CHAOS import.
It can be used in our facilities to easy import memcached keys into influxdb so in grafana dashboards.
Deploy
In order to deploy on the CSI
Influxdb & Grafana
configuration file
{ "dataset":[ { "name":"e_current", ← name of the variable (in influxdb will appear as measurement) "type":"double", ← type of the data (valid are: int32|int64|double|float|bool|string|json) "description":"readout electron current", ← an optional description "offset":24, ← offset into a binary key "len":8, ← data size "factor":0, ← an optional factor that multiply the data "lbe":true, ← endianess true: little endian, false: bigendian "rate":1, ← >0 rate fetch-pushrate (in Hz) "keybind":"DCTEL002_DYN" ← source memcached key }, { "name":"dafne_state", "type":"json", ← (the data is a utf-8 string, the type of data is implicit once imported in JSON) "description":"Dafne state", "offset":0, ← optional in case of json (if not is the offset inside the string) "variables":["jsonkey1","jsonkey2"], ← optional field that specifies the keys in the json to be pushed (if not specified, all keys must be pushed "len":256, ← maximum data length "keybind":"DAFNESTATE_JDAT" }] }
Assumptions
- The application will take a configuration file as input that describes the keys to fetch, the rate and describe the data to be imported following the syntax here below
- The application will take a influxdb server and db name as input and and optional user and password.
- The application main loop will fetch the specified keys at the specified rate and will push the imported data as described in the configuration file.
Example JSON key
DAFNE INFERRED STATE & CURRENT LIFE TIMEs