client

package
v3.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2022 License: AGPL-3.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// Label reserved to override the tenant ID while processing
	// pipeline stages
	ReservedLabelTenantID = "__tenant_id__"

	LatencyLabel = "filename"
	HostLabel    = "host"
	ClientLabel  = "client"
)
View Source
const (
	BatchWait      = 1 * time.Second
	BatchSize  int = 1024 * 1024
	MinBackoff     = 500 * time.Millisecond
	MaxBackoff     = 5 * time.Minute
	MaxRetries int = 10
	Timeout        = 10 * time.Second
)

NOTE the helm chart for promtail and fluent-bit also have defaults for these values, please update to match if you make changes here.

Variables

View Source
var UserAgent = fmt.Sprintf("promtail/%s", build.Version)

Functions

This section is empty.

Types

type Client

type Client interface {
	api.EntryHandler
	// Stop goroutine sending batch of entries without retries.
	StopNow()
}

Client pushes entries to Loki and can be stopped

func New

func New(metrics *Metrics, cfg Config, streamLagLabels []string, logger log.Logger) (Client, error)

New makes a new Client.

func NewLogger

func NewLogger(metrics *Metrics, streamLogLabels []string, log log.Logger, cfgs ...Config) (Client, error)

NewLogger creates a new client logger that logs entries instead of sending them.

func NewMulti

func NewMulti(metrics *Metrics, streamLagLabels []string, logger log.Logger, cfgs ...Config) (Client, error)

NewMulti creates a new client

func NewWithTripperware

func NewWithTripperware(metrics *Metrics, cfg Config, streamLagLabels []string, logger log.Logger, tp Tripperware) (Client, error)

NewWithTripperware creates a new Loki client with a custom tripperware.

type Config

type Config struct {
	Name      string `yaml:"name,omitempty"`
	URL       flagext.URLValue
	BatchWait time.Duration
	BatchSize int

	Client config.HTTPClientConfig `yaml:",inline"`

	BackoffConfig backoff.Config `yaml:"backoff_config"`
	// The labels to add to any time series or alerts when communicating with loki
	ExternalLabels lokiflag.LabelSet `yaml:"external_labels,omitempty"`
	Timeout        time.Duration     `yaml:"timeout"`

	// The tenant ID to use when pushing logs to Loki (empty string means
	// single tenant mode)
	TenantID string `yaml:"tenant_id"`
}

Config describes configuration for a HTTP pusher client.

func (*Config) RegisterFlags

func (c *Config) RegisterFlags(flags *flag.FlagSet)

RegisterFlags registers flags.

func (*Config) RegisterFlagsWithPrefix

func (c *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)

RegisterFlags with prefix registers flags where every name is prefixed by prefix. If prefix is a non-empty string, prefix should end with a period.

func (*Config) UnmarshalYAML

func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implement Yaml Unmarshaler

type Configs

type Configs struct {
	StreamLagLabels dskit_flagext.StringSliceCSV `yaml:"stream_lag_labels,omitempty"`
	Configs         []Config                     `yaml:"configs"`
}

type Metrics

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

func NewMetrics

func NewMetrics(reg prometheus.Registerer, streamLagLabels []string) *Metrics

type MultiClient

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

MultiClient is client pushing to one or more loki instances.

func (*MultiClient) Chan

func (m *MultiClient) Chan() chan<- api.Entry

func (*MultiClient) Stop

func (m *MultiClient) Stop()

Stop implements Client

func (*MultiClient) StopNow

func (m *MultiClient) StopNow()

StopNow implements Client

type Tripperware

type Tripperware func(http.RoundTripper) http.RoundTripper

Tripperware can wrap a roundtripper.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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