promql_sdk

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

README

promql-sdk

promql-sdk make tsdb can use promql, implemented by prometheus remote-read.

How to use it

1. init

c := &promql_sdk.ReadConfig{
    URL:     "http://127.0.0.1:8086/api/v1/prom/read?db=prometheus",    //influxdb
    Timeout: 1 * time.Minute,
}
configs := []*promql_sdk.ReadConfig{c}
err := promql_sdk.Init(configs)

2. query instant

query := `(1 - avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])))* 100`
res, err := promql_sdk.Query(query)

query result:

{"resultType":"vector","result":[{"metric":{"instance":"node1"},"value":[1652086175.251,"76.00700000021607"]},{"metric":{"instance":"node2"},"value":[1652086175.251,"72.67599999997765"]}]}

3. query range

query := `(1 - avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])))* 100`
res, err = promql_sdk.QueryRange(query, startTs, endTs, step)

query range result:

 {"resultType":"matrix","result":[{"metric":{"instance":"node1"},"values":[[1652086115,"88.31412083342268"],[1652086175,"76.00700000021607"]]},{"metric":{"instance":"node2"},"values":[[1652086115,"87.37343999993503"],[1652086175,"72.67599999997765"]]}]}

Documentation

Index

Constants

View Source
const (
	DefaultEngineQueryMaxConcurrency = 20
	DefaultEngineQueryMaxSamples     = 50000000
	DefaultEngineQueryTimeout        = 30 * time.Second

	DefaultAPIInstantQueryTimeout = 10 * time.Second
	DefaultAPIRangeQueryTimeout   = 30 * time.Second
)

Variables

This section is empty.

Functions

func Init

func Init(configs []*ReadConfig, ops ...func()) error

func InstantQueryTime added in v0.1.0

func InstantQueryTime(ts int64) func(query *InstantQuery)

func InstantQueryTimeout added in v0.1.0

func InstantQueryTimeout(timeout time.Duration) func(query *InstantQuery)

func LookBackDelta added in v0.0.6

func LookBackDelta(t time.Duration) func()

func RangeQueryTimeout added in v0.1.0

func RangeQueryTimeout(timeout time.Duration) func(*RangeQuery)

Types

type InstantQuery added in v0.1.0

type InstantQuery struct {
	Query   string
	Ts      int64
	Timeout time.Duration
}

func NewInstantQuery added in v0.1.0

func NewInstantQuery(query string, opts ...func(*InstantQuery)) *InstantQuery

func (*InstantQuery) Do added in v0.1.0

func (q *InstantQuery) Do() (*QueryData, error)

type QueryData

type QueryData struct {
	ResultType promql.ValueType  `json:"resultType"`
	Result     promql.Value      `json:"result"`
	Stats      *stats.QueryStats `json:"stats,omitempty"`
}

func Query

func Query(query string) (*QueryData, error)

func QueryInstant added in v0.0.9

func QueryInstant(query string, ts int64) (*QueryData, error)

func QueryRange

func QueryRange(query string, startTs int64, endTs int64, step int) (*QueryData, error)

type RangeQuery added in v0.1.0

type RangeQuery struct {
	Query  string
	Start  int64
	End    int64
	Step   int
	Timout time.Duration
}

func NewRangeQuery added in v0.1.0

func NewRangeQuery(query string, start, end int64, step int, opts ...func(*RangeQuery)) *RangeQuery

func (*RangeQuery) Do added in v0.1.0

func (q *RangeQuery) Do() (*QueryData, error)

type ReadConfig

type ReadConfig struct {
	URL     string
	Timeout time.Duration
}

Directories

Path Synopsis
pkg
Package prompb is a generated protocol buffer package.
Package prompb is a generated protocol buffer package.
util

Jump to

Keyboard shortcuts

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