GroupBy

Merges groups of time series based on the tag keys of those series using an aggregation function.

Note

In 1.x and 2.x the tags to group one were specified in filters. Now the tags to group on must be explicitly supplied in the group by config.

Note

In previous versions of OpenTSDB, common tags (keys and values present in all series in the group) and aggregated tags (keys with different values for one or more series in the group) were computed and serialized. Now, by default, 3.0 will ignore common tags and simply place tag keys that were specified in the tagKeys list in the aggregatedTags fields. Set mergeIds to mimic the previous behavior.

Fields for the group by config include:

Name Data Type Required Description Default Example
aggregator String Required The ID of a registered aggregation function in the Registry to use when merging multiple series into a single value. null sum
infectiousNan boolean Optional Whether or not NaNs from the source data should infect each timestamp when aggregating values. E.g. if one value out of 20 are NaN for a timestamp and this is true, the timestamp will return a NaN. If all values for the timestamp are NaN then the result will be NaN regardless. false true
mergeIds Boolean Optional Set to true to compute the common and aggregated tags the way previous versions of OpenTSDB did. false true
fullMerge boolean Optional Set to true to compute the common, aggregated and disjoint tags. false true
interpolatorConfig List Required for now A list of interpolator configs for the downsampler to deal with empty buckets. null See Interpolators

Example:

{
  "id": "downsample",
  "aggregator": "sum",
  "interval": "5m",
  "fill": true,
  "interpolatorConfigs": [{
    "dataType": "numeric",
    "fillPolicy": "NAN",
    "realFillPolicy": "NONE"
  }],
  "sources": ["m1"]
}