group-aggregate
field the output will have the following format:cpu
, mem
, and iops
is different metric names. Query processor will find series names with the same set of tags with this metrics and join them. E.g. if we have three series - "cpu host=host1", "mem host=host1", and "iops host=host1" - all three series will be joined together producing single series "cpu|mem|iops host=host1". The output will contain records in bulk format.pivot-by-tag
tells query processor to remove all tags from series name except the ones that was listed. After that all series that have matching tags are considered equal and merged together. pivot-by-tag
field was used to specify a single tag name, all series with this tag with the same value will collapse into one. All data points from that series will be joined together. The resulting time-series will contain all data-points from the original series. The series name will contain only the specified tag. It's also possible to specify more than one tag. group-by-tag
tells query processor to remove listed tags from series name. After that all series that have matching tags are considered equal and merged together. group-by-tag
is the opposite of pivot-by-tag
. Given the example in previous section query with "group-by-tag": ["valve_num"]
would produce the following output:pressure_kPa valve_num=XXX sensor_num=YYY
. Here we have pressure_kPa
metric with two tags: valve_num
and sensor_num
. If you query this series you will get the following results (\r\n omitted):"pivot-by-tag": [ "valve_num" ]
field to the query the result will look like this:order-by
is "series" the results will be ordered by series name first and then by timestamp. If order-by
is "time" then data points will be ordered by timestamp first and then by series name.output.format
. It can be set to "resp" or "csv". The first value is used by default. The output will be formatted using RESP serialization format. The same that is used to send data to Akumuli. The second value changes the output format to CSV. This is how the output of the query will look with output.format
set to "csv":output.timestamp
. It controls formatting of the timestamps in the output of the query. If it's set to "raw" Akumuli will format timestamps as 64-bit integers."filter: {"gt": 0, "lt": 10 }
will select all values between 0 and 10, but not 0 and 10. You can use only predicate if needed.limit
and offset
query fields to limit the number of returned tuples and to skip some tuples at the beginning of the query output. This fields works the same as LIMIT and OFFSET clauses in SQL.