Search code examples
influxdbflux-influxdb

Query last value in Flux


I'm trying to get the last value from some IoT sensors and I actually achieved an intermediary result with the following Flux query:

from(bucket:"mqtt-bucket")
|> range(start:-10m )
|> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
|> filter(fn: (r) => r["thingy"] == "things/green-1/shadow/update"
                  or r["thingy"] == "things/green-3/shadow/update" 
                  or r["thingy"] == "things/green-2/shadow/update")
|> filter(fn: (r) => r["_field"] == "data")
|> filter(fn: (r) => r["appId"] == "TEMP" or r["appId"] == "HUMID")
|> toFloat()
|> last()

The problem: I would like to get the last mesured value independently of a time range.
I saw in the docs that there is no way to unbound the range function. Maybe there is a work around ?


Solution

  • I just found this:

    from(bucket: "stockdata")
      |> range(start: 0)
      |> filter(fn: (r) => r["_measurement"] == "nasdaq")
      |> filter(fn: (r) => r["symbol"] == "OPEC/ORB")
      |> last()