client

package
v3.3.2 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: AGPL-3.0 Imports: 31 Imported by: 2

Documentation

Index

Constants

View Source
const (

	// HTTP header keys
	HTTPScopeOrgID          = "X-Scope-OrgID"
	HTTPQueryTags           = "X-Query-Tags"
	HTTPCacheControl        = "Cache-Control"
	HTTPCacheControlNoCache = "no-cache"
)

Variables

View Source
var ErrNotSupported = errors.New("not supported")

Functions

This section is empty.

Types

type BackoffConfig

type BackoffConfig struct {
	MaxBackoff int
	MinBackoff int
}

type Client

type Client interface {
	Query(queryStr string, limit int, time time.Time, direction logproto.Direction, quiet bool) (*loghttp.QueryResponse, error)
	QueryRange(queryStr string, limit int, start, end time.Time, direction logproto.Direction, step, interval time.Duration, quiet bool) (*loghttp.QueryResponse, error)
	ListLabelNames(quiet bool, start, end time.Time) (*loghttp.LabelResponse, error)
	ListLabelValues(name string, quiet bool, start, end time.Time) (*loghttp.LabelResponse, error)
	Series(matchers []string, start, end time.Time, quiet bool) (*loghttp.SeriesResponse, error)
	LiveTailQueryConn(queryStr string, delayFor time.Duration, limit int, start time.Time, quiet bool) (*websocket.Conn, error)
	GetOrgID() string
	GetStats(queryStr string, start, end time.Time, quiet bool) (*logproto.IndexStatsResponse, error)
	GetVolume(query *volume.Query) (*loghttp.QueryResponse, error)
	GetVolumeRange(query *volume.Query) (*loghttp.QueryResponse, error)
	GetDetectedFields(queryStr, fieldName string, fieldLimit, lineLimit int, start, end time.Time, step time.Duration, quiet bool) (*loghttp.DetectedFieldsResponse, error)
}

Client contains all the methods to query a Loki instance, it's an interface to allow multiple implementations.

type DefaultClient

type DefaultClient struct {
	TLSConfig       config.TLSConfig
	Username        string
	Password        string
	Address         string
	OrgID           string
	Tripperware     Tripperware
	BearerToken     string
	BearerTokenFile string
	Retries         int
	QueryTags       string
	NoCache         bool
	AuthHeader      string
	ProxyURL        string
	BackoffConfig   BackoffConfig
	Compression     bool
}

Client contains fields necessary to query a Loki instance

func (*DefaultClient) GetDetectedFields added in v3.1.0

func (c *DefaultClient) GetDetectedFields(
	queryStr, fieldName string,
	limit, lineLimit int,
	start, end time.Time,
	step time.Duration,
	quiet bool,
) (*loghttp.DetectedFieldsResponse, error)

func (*DefaultClient) GetOrgID

func (c *DefaultClient) GetOrgID() string

func (*DefaultClient) GetStats

func (c *DefaultClient) GetStats(queryStr string, start, end time.Time, quiet bool) (*logproto.IndexStatsResponse, error)

func (*DefaultClient) GetVolume

func (c *DefaultClient) GetVolume(query *volume.Query) (*loghttp.QueryResponse, error)

func (*DefaultClient) GetVolumeRange

func (c *DefaultClient) GetVolumeRange(query *volume.Query) (*loghttp.QueryResponse, error)

func (*DefaultClient) ListLabelNames

func (c *DefaultClient) ListLabelNames(quiet bool, start, end time.Time) (*loghttp.LabelResponse, error)

ListLabelNames uses the /api/v1/label endpoint to list label names

func (*DefaultClient) ListLabelValues

func (c *DefaultClient) ListLabelValues(name string, quiet bool, start, end time.Time) (*loghttp.LabelResponse, error)

ListLabelValues uses the /api/v1/label endpoint to list label values

func (*DefaultClient) LiveTailQueryConn

func (c *DefaultClient) LiveTailQueryConn(queryStr string, delayFor time.Duration, limit int, start time.Time, quiet bool) (*websocket.Conn, error)

LiveTailQueryConn uses /api/prom/tail to set up a websocket connection and returns it

func (*DefaultClient) Query

func (c *DefaultClient) Query(queryStr string, limit int, time time.Time, direction logproto.Direction, quiet bool) (*loghttp.QueryResponse, error)

Query uses the /api/v1/query endpoint to execute an instant query excluding interfacer b/c it suggests taking the interface promql.Node instead of logproto.Direction b/c it happens to have a String() method nolint:interfacer

func (*DefaultClient) QueryRange

func (c *DefaultClient) QueryRange(queryStr string, limit int, start, end time.Time, direction logproto.Direction, step, interval time.Duration, quiet bool) (*loghttp.QueryResponse, error)

QueryRange uses the /api/v1/query_range endpoint to execute a range query excluding interfacer b/c it suggests taking the interface promql.Node instead of logproto.Direction b/c it happens to have a String() method nolint:interfacer

func (*DefaultClient) Series

func (c *DefaultClient) Series(matchers []string, start, end time.Time, quiet bool) (*loghttp.SeriesResponse, error)

type FileClient

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

FileClient is a type of LogCLI client that do LogQL on log lines from the given file directly, instead get log lines from Loki servers.

func NewFileClient

func NewFileClient(r io.ReadCloser) *FileClient

NewFileClient returns the new instance of FileClient for the given `io.ReadCloser`

func (*FileClient) GetDetectedFields added in v3.1.0

func (f *FileClient) GetDetectedFields(
	_, _ string,
	_, _ int,
	_, _ time.Time,
	_ time.Duration,
	_ bool,
) (*loghttp.DetectedFieldsResponse, error)

func (*FileClient) GetOrgID

func (f *FileClient) GetOrgID() string

func (*FileClient) GetStats

func (f *FileClient) GetStats(_ string, _, _ time.Time, _ bool) (*logproto.IndexStatsResponse, error)

func (*FileClient) GetVolume

func (f *FileClient) GetVolume(_ *volume.Query) (*loghttp.QueryResponse, error)

func (*FileClient) GetVolumeRange

func (f *FileClient) GetVolumeRange(_ *volume.Query) (*loghttp.QueryResponse, error)

func (*FileClient) ListLabelNames

func (f *FileClient) ListLabelNames(_ bool, _, _ time.Time) (*loghttp.LabelResponse, error)

func (*FileClient) ListLabelValues

func (f *FileClient) ListLabelValues(name string, _ bool, _, _ time.Time) (*loghttp.LabelResponse, error)

func (*FileClient) LiveTailQueryConn

func (f *FileClient) LiveTailQueryConn(_ string, _ time.Duration, _ int, _ time.Time, _ bool) (*websocket.Conn, error)

func (*FileClient) Query

func (f *FileClient) Query(q string, limit int, t time.Time, direction logproto.Direction, _ bool) (*loghttp.QueryResponse, error)

func (*FileClient) QueryRange

func (f *FileClient) QueryRange(queryStr string, limit int, start, end time.Time, direction logproto.Direction, step, interval time.Duration, _ bool) (*loghttp.QueryResponse, error)

func (*FileClient) Series

func (f *FileClient) Series(_ []string, _, _ time.Time, _ bool) (*loghttp.SeriesResponse, error)

type Tripperware

type Tripperware func(http.RoundTripper) http.RoundTripper

Tripperware can wrap a roundtripper.

Jump to

Keyboard shortcuts

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