loki

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2021 License: Apache-2.0 Imports: 28 Imported by: 1

Documentation

Index

Constants

View Source
const (
	JSONContentType = "application/json"

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

	LatencyLabel = "filename"
	HostLabel    = "host"
)
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", version.Version)
)

Functions

This section is empty.

Types

type Client

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

Client for pushing logs in snappy-compressed protos over HTTP.

func New

func New(cfg Config) (*Client, error)

New makes a new Client from config

func NewWithDefault

func NewWithDefault(url string) (*Client, error)

NewWithDefault creates a new client with default configuration.

func NewWithLogger

func NewWithLogger(cfg Config, logger log.Logger) (*Client, error)

NewWithLogger makes a new Client from a logger and a config

func (*Client) Handle

func (c *Client) Handle(ls model.LabelSet, t time.Time, s string) error

Handle implement EntryHandler; adds a new line to the next batch; send is async.

func (*Client) Stop

func (c *Client) Stop()

Stop the client.

func (*Client) UnregisterLatencyMetric

func (c *Client) UnregisterLatencyMetric(labels model.LabelSet)

type Config

type Config struct {
	URL       urlutil.URLValue
	BatchWait time.Duration
	BatchSize int

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

	BackoffConfig backoff.BackoffConfig `yaml:"backoff_config"`
	// The labels to add to any time series or alerts when communicating with loki
	ExternalLabels labelutil.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"`

	// Use Loki JSON api as opposed to the snappy protobuf.
	EncodeJson bool `yaml:"encode_json"`
}

Config describes configuration for a HTTP pusher client.

func NewDefaultConfig

func NewDefaultConfig(url string) (Config, error)

NewDefaultConfig creates a default configuration for a given target Loki URL.

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

Jump to

Keyboard shortcuts

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