diff --git a/metrics/lineprotocol.md b/metrics/lineprotocol.md index 07f08d8..4c93d7b 100644 --- a/metrics/lineprotocol.md +++ b/metrics/lineprotocol.md @@ -8,7 +8,7 @@ data. ``` Supported measurements: -* node – Tags: host, cpu +* node – Tags: host * socket – Tags: host, socket * cpu -- Tags: host, cpu diff --git a/metrics/lineprotocol_alternative.md b/metrics/lineprotocol_alternative.md new file mode 100644 index 0000000..f342d21 --- /dev/null +++ b/metrics/lineprotocol_alternative.md @@ -0,0 +1,55 @@ +# Overview + +ClusterCockpit uses the InfluxData line-protocol for collecting the node metric +data. + +``` +, +``` + +**Note**: This is a proposal for a different way to send & store the data! + +# Supported measurements: +* `flops_sp` +* `flops_dp` +* `flops_any` +* `load` +* `mem_used` +* `ipc` +* `mem_bw` +* `power` +* `clock` +* ... + +# Mandatory tags per measurement: +* `hostname` +* `type` in `[node, socket, cpu, (accelerator)]` +* `type-id` for further specifying the type like CPU socket or HW Thread identifier + +# Optional tags depending on the measurment: +* `device` for measurement `file_bw` +* `device` for `net_bw` if splitting into `ib_bw` and `eth_bw` is not enough + +# Fields per measurement: +The field key is always `value` + +# Optional measurements: +If a fixed aggregation to a coarser granularity is desired, add addtional measurments to the same measurement with different tags: +``` +mem_bw,hostname=X,type="socket",type-id=0 value=100.0 +mem_bw,hostname=X,type="socket",type-id=1 value=200.0 +``` + +can additionally be send/stored as: + +``` +mem_bw,hostname=X,type="node",type-id=0 value=300.0 +``` + +It is discussable where the type of aggregation should be encoded if required, either by adding a tag like `agg={min,max,sum,avg}` or using different fields like: + +``` +mem_bw,hostname=X,type="node",type-id=0 sum=300.0,min=100.0,max=200.0,avg=150.0 +``` + +I prefer the separate `agg` tag because commonly, only a single type of aggregation is done per measurment (mostly `sum` but some require `avg` like `ipc`)