query.inBucket() function
The query.inBucket()
function is experimental and subject to change at any time. By using this function, you accept the risks of experimental functions.
The query.inBucket()
function queries data from a specified bucket within given time bounds, filters data by measurement, field, and optional predicate expressions.
*Function type: Input*
import "experimental/query"
query.inBucket(
bucket: "example-bucket",
start: -1h,
stop: now(),
measurement: "example-measurement",
fields: ["exampleField1", "exampleField2"],
predicate: (r) => true
)
Parameters
bucket
The name of the bucket to query.
*Data type: String*
start
The earliest time to include in results. Results include points that match the specified start time. Use a relative duration, absolute time, or integer (Unix timestamp in seconds). For example, -1h
, 2019-08-28T22:00:00Z
, or 1567029600
. Durations are relative to now()
.
*Data type: Duration | Time | Integer*
stop
The latest time to include in results. Results exclude points that match the specified stop time. Use a relative duration, absolute time, or integer (Unix timestamp in seconds). For example, -1h
, 2019-08-28T22:00:00Z
, or 1567029600
. Durations are relative to now()
. Defaults to now()
.
*Data type: Duration | Time | Integer*
measurement
The name of the measurement to filter by. Must be an exact string match.
*Data type: String*
fields
Fields to filter by. Must be exact string matches.
*Data type: Array of strings*
predicate
A single argument function that evaluates true or false. Records are passed to the function. Those that evaluate to true
are included in the output tables. Records that evaluate to null
or false
are not included in the output tables. Default is (r) => true
.
*Data type: Function*
Examples
Query memory data from host1
import "experimental/query"
query.inBucket(
bucket: "telegraf",
start: -1h,
measurement: "mem",
fields: ["used_percent", "available_percent"],
predicate: (r) => r.host == "host1"
)
Function definition
package query
inBucket = (
bucket,
start,
stop=now(),
measurement,
fields=[],
predicate=(r) => true
) =>
fromRange(bucket: bucket, start: start, stop: stop)
|> filterMeasurement(measurement)
|> filter(fn: predicate)
|> filterFields(fields)
Used functions:
filter()
query.filterFields()
query.filterMeasurement()
query.fromRange()