Help us shape the future of Go! Take the 2026 Go Developer Survey

go_fluxy

package module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2024 License: MIT Imports: 5 Imported by: 0

README

go-fluxy

Go-fluxy is a simple library for creating Flux-compatible queries for InfluxDB V2.

Installation

go get github.com/GLCharge/go-fluxy

Usage


import (
    "github.com/GLCharge/go-fluxy"
)

func main()  {
    query := NewFluxQueryBuilder().	From("mybucket").Range(time.Date(2022, 01, 01, 0, 0, 0, 0, time.UTC), nil).Filter("r._measurement == \"mymeasurement\"").GroupBy("something")
	fmt.Println(query.Build())
	
	// Output:
	// from(bucket: "mybucket")
	// 	|> range(start: 2022-01-01T00:00:00Z)
	// 	|> filter(fn: (r) => r._measurement == "mymeasurement")
	// 	|> group(by: ["something"])
	
	// Use the query to query InfluxDB
}

Documentation

Index

Constants

View Source
const (
	Eq  FilterOperator = "=="
	Neq FilterOperator = "!="
	Gt  FilterOperator = ">"
	Gte FilterOperator = ">="
	Lt  FilterOperator = "<"
	Lte FilterOperator = "<="

	And FilterCondition = "and"
	Not FilterCondition = "not"
	Or  FilterCondition = "or"

	Start GroupCondition = "start"
	End   GroupCondition = "end"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Filter

type Filter struct {
	Field     string
	Value     string
	Operator  FilterOperator
	Condition FilterCondition

	Group    GroupCondition
	Complete string
}

Filter represents a filter with field, value, operator, and condition.

type FilterBuilder

type FilterBuilder struct {
	// contains filtered or unexported fields
}

FilterBuilder is a builder for constructing filters.

func NewFilterBuilder

func NewFilterBuilder() *FilterBuilder

NewFilterBuilder creates a new FilterBuilder.

func (*FilterBuilder) AddCompleteFilter

func (fb *FilterBuilder) AddCompleteFilter(filter string) *FilterBuilder

AddCompleteFilter adds a complete filter string.

func (*FilterBuilder) AddFilter

func (fb *FilterBuilder) AddFilter(field, value string) *FilterBuilder

AddFilter adds a filter with the specified field and value. The operator is set to equal. If you want to use a different operator, use the Eq(), Neq(), Gt(), Gte(), Lt(), or Lte() functions. For example, to add a filter with the field "foo" and value "bar" where the operator is not equal, use: NewFilterBuilder().AddFilter("foo", "bar").Neq()

func (*FilterBuilder) And

func (fb *FilterBuilder) And() *FilterBuilder

And adds an AND condition to the filter.

func (*FilterBuilder) Build

func (fb *FilterBuilder) Build() string

Build constructs the final filter string.

func (*FilterBuilder) EndGroup

func (fb *FilterBuilder) EndGroup() *FilterBuilder

EndGroup ends a group.

func (*FilterBuilder) Eq

func (fb *FilterBuilder) Eq() *FilterBuilder

Eq sets the operator to equal.

func (*FilterBuilder) Gt

func (fb *FilterBuilder) Gt() *FilterBuilder

Gt sets the operator to greater than.

func (*FilterBuilder) Gte

func (fb *FilterBuilder) Gte() *FilterBuilder

Gte sets the operator to greater than or equal.

func (*FilterBuilder) Lt

func (fb *FilterBuilder) Lt() *FilterBuilder

Lt sets the operator to less than.

func (*FilterBuilder) Lte

func (fb *FilterBuilder) Lte() *FilterBuilder

Lte sets the operator to less than or equal.

func (*FilterBuilder) Neq

func (fb *FilterBuilder) Neq() *FilterBuilder

Neq sets the operator to not equal.

func (*FilterBuilder) Not added in v0.1.1

func (fb *FilterBuilder) Not() *FilterBuilder

Not adds an NOT condition to the filter.

func (*FilterBuilder) Or

func (fb *FilterBuilder) Or() *FilterBuilder

Or adds an OR condition to the filter.

func (*FilterBuilder) StartGroup

func (fb *FilterBuilder) StartGroup() *FilterBuilder

StartGroup starts a group.

type FilterCondition

type FilterCondition string

type FilterOperator

type FilterOperator string

type FluxQueryBuilder

type FluxQueryBuilder struct {
	// contains filtered or unexported fields
}

func NewFluxQueryBuilder

func NewFluxQueryBuilder() *FluxQueryBuilder

NewFluxQueryBuilder creates a new FluxQueryBuilder

func (*FluxQueryBuilder) Build

func (qb *FluxQueryBuilder) Build() string

Build returns the built flux query

func (*FluxQueryBuilder) Drop

func (qb *FluxQueryBuilder) Drop(columns ...string) *FluxQueryBuilder

func (*FluxQueryBuilder) Elapsed added in v0.1.1

func (qb *FluxQueryBuilder) Elapsed(columnName *string, timeColumn *string, unit *string) *FluxQueryBuilder

func (*FluxQueryBuilder) Filter

func (qb *FluxQueryBuilder) Filter(fn string) *FluxQueryBuilder

func (*FluxQueryBuilder) From

func (qb *FluxQueryBuilder) From(bucket string) *FluxQueryBuilder

func (*FluxQueryBuilder) GroupBy

func (qb *FluxQueryBuilder) GroupBy(columns ...string) *FluxQueryBuilder

func (*FluxQueryBuilder) Keep

func (qb *FluxQueryBuilder) Keep(columns ...string) *FluxQueryBuilder

func (*FluxQueryBuilder) Limit

func (qb *FluxQueryBuilder) Limit(n int, offset *int) *FluxQueryBuilder

Limit limits the number of records returned

func (*FluxQueryBuilder) Map

func (*FluxQueryBuilder) Max

func (*FluxQueryBuilder) Mean

func (qb *FluxQueryBuilder) Mean() *FluxQueryBuilder

func (*FluxQueryBuilder) Median

func (qb *FluxQueryBuilder) Median() *FluxQueryBuilder

func (*FluxQueryBuilder) Min

func (*FluxQueryBuilder) Pivot

func (qb *FluxQueryBuilder) Pivot(rowKey, columnKey string, valueColumn string) *FluxQueryBuilder

func (*FluxQueryBuilder) Range

func (qb *FluxQueryBuilder) Range(start time.Time, stop *time.Time) *FluxQueryBuilder

func (*FluxQueryBuilder) Rename

func (qb *FluxQueryBuilder) Rename(mapping map[string]string) *FluxQueryBuilder

func (*FluxQueryBuilder) Select

func (qb *FluxQueryBuilder) Select(columns ...string) *FluxQueryBuilder

func (*FluxQueryBuilder) Sort

func (qb *FluxQueryBuilder) Sort(descending bool, columns ...string) *FluxQueryBuilder

func (*FluxQueryBuilder) Sum

func (qb *FluxQueryBuilder) Sum(column *string) *FluxQueryBuilder

func (*FluxQueryBuilder) TruncateTimeColumn

func (qb *FluxQueryBuilder) TruncateTimeColumn(seconds int) *FluxQueryBuilder

type GroupCondition

type GroupCondition string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL