#docs #recipes

Calculating Averages, Sums, Minimums and Maximums

A snippet for when you want the aggregate floatValues by sum, average, minimum or maximum.

When you’re sending numerical values to TelemetryDeck’s floatValue signal property, you usually want to aggregate them somehow. This is how to get the average value of a floatValue metric for a specific signal type:

{
  "granularity": "day",
  "queryType": "timeseries",
  "filter": {
    "type": "and",
    "fields": [
      {
        "dimension": "appID",
        "type": "selector",
        "value": "YOUR_APP_ID"
      },
      {
        "dimension": "type",
        "type": "selector",
        "value": "YOUR_SIGNAL_TYPE"
      }
    ]
  },
  "aggregations": [
    {
      "fieldName": "floatValue",
      "name": "Mean",

      // "doubleSum", "doubleMin", "doubleMax" also work here
      "type": "doubleMean"
    }
  ]
}

Replace YOUR_APP_ID with your app id and YOUR_SIGNAL_TYPE with your signal type.

How it works

Granularity

The granularity is set to day in this example. This means that the data will be aggregated by day. You can also use hour or month as a granularity to get averages for months or hours.

Filter

The filter is used to filter the data by app id and signal type. You can also add more filters here, for example to filter by a specific version of your app.

Aggregations

The aggregation is set to doubleMean in this example. This means that the average value of the floatValue metric will be calculated. You can also use doubleSum to get the sum of all values or doubleMin and doubleMax to get the minimum or maximum value.

Read more on aggregators in TQL.