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)
    )
  }))

Set your InfluxDB URL

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.