Documentation

Convert results to JSON

This example uses NOAA water sample data.

Send each record to a URL endpoint using the HTTP POST method. This example uses json.encode() to convert a value into JSON bytes, then uses http.post() to send them to a URL endpoint.

The following query:

  • Uses filter() to filter the average_temperature measurement.
  • Uses mean() to calculate the average value from results.
  • Uses map() to create a new column, jsonStr, and build a JSON object using column values from the query. It then byte-encodes the JSON object and stores it as a string in the jsonStr column.
  • Uses http.post() to send the jsonStr value from each record to an HTTP endpoint.
import "http"
import "json"

from(bucket: "noaa")
    |> filter(fn: (r) => r._measurement == "average_temperature")
    |> mean()
    |> map(fn: (r) => ({r with jsonStr: string(v: json.encode(v: {"location": r.location, "mean": r._value}))}))
    |> map(
        fn: (r) => ({
            r with
            status_code: http.post(
                url: "http://somehost.com/",
                headers: {x: "a", y: "b"},
                data: bytes(v: r.jsonStr)
            )
        })
    )
  • Copy
  • Fill window

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

Now Generally Available

InfluxDB 3 Core and Enterprise

Start fast. Scale faster.

Get the Updates

InfluxDB 3 Core is an open source, high-speed, recent-data engine that collects and processes data in real-time and persists it to local disk or object storage. InfluxDB 3 Enterprise builds on Core’s foundation, adding high availability, read replicas, enhanced security, and data compaction for faster queries and optimized storage. A free tier of InfluxDB 3 Enterprise is available for non-commercial at-home or hobbyist use.

For more information, check out: