How to sort and limit data with Flux

The sort()function orders the records within each table. The following example orders system uptime first by region, then host, then value.

from(bucket:"telegraf/autogen")
  |> range(start:-12h)
  |> filter(fn: (r) =>
    r._measurement == "system" AND
    r._field == "uptime"
  )
  |> sort(columns:["region", "host", "_value"])

The limit() function limit the number of records in output tables to a fixed number (n). The following example shows up to 10 records from the past hour.

from(bucket:"telegraf/autogen")
  |> range(start:-1h)
  |> limit(n:10)

You can use sort() and limit() together to show the top N records. The example below returns the 10 top system uptime values sorted first by region, then host, then value.

from(bucket:"telegraf/autogen")
  |> range(start:-12h)
  |> filter(fn: (r) =>
    r._measurement == "system" AND
    r._field == "uptime"
  )
  |> sort(columns:["region", "host", "_value"])
  |> limit(n:10)

You now have created a Flux query that sorts and limits data. Flux also provides the `top() and bottom() function to perform both of these functions at the same time.

This documentation is open source. See a typo? Please, open an issue.


Need help getting up and running? Get Support