Documentation ¶
Overview ¶
Package logs implements logs support for the Grafana Agent.
Index ¶
- Variables
- type Config
- type GlobalConfig
- type Instance
- type InstanceConfig
- type ListTargetsResponse
- type Logs
- func (l *Logs) ApplyConfig(c *Config, dryRun bool) error
- func (l *Logs) Instance(name string) *Instance
- func (l *Logs) ListInstancesHandler(w http.ResponseWriter, _ *http.Request)
- func (l *Logs) ListTargetsHandler(w http.ResponseWriter, r *http.Request)
- func (l *Logs) Stop()
- func (l *Logs) WireAPI(r *mux.Router)
- type TargetInfo
- type TargetSet
Constants ¶
This section is empty.
Variables ¶
var DefaultGlobalConfig = GlobalConfig{ ClientConfigs: []client.Config{}, }
DefaultGlobalConfig holds default global settings to be used across all instances.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { PositionsDirectory string `yaml:"positions_directory,omitempty"` Global GlobalConfig `yaml:"global,omitempty"` Configs []*InstanceConfig `yaml:"configs,omitempty"` }
Config controls the configuration of the Loki log scraper.
func (*Config) ApplyDefaults ¶
ApplyDefaults applies defaults to the Config and ensures that it is valid.
Validations:
- No two InstanceConfigs may have the same name.
- No two InstanceConfigs may have the same positions path.
- No InstanceConfig may have an empty name.
- If InstanceConfig positions path is empty, shared PositionsDirectory must not be empty.
Defaults:
- If a positions config is empty, it will be generated based on the InstanceConfig name and Config.PositionsDirectory.
- If an InstanceConfigs's ClientConfigs is empty, it will be generated based on the Config.GlobalConfig.ClientConfigs.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler.
type GlobalConfig ¶ added in v0.31.0
GlobalConfig holds global settings that apply to all instances by default.
func (GlobalConfig) IsZero ¶ added in v0.31.0
func (c GlobalConfig) IsZero() bool
func (*GlobalConfig) UnmarshalYAML ¶ added in v0.31.0
func (c *GlobalConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaler.
type Instance ¶
type Instance struct {
// contains filtered or unexported fields
}
Instance is an individual Logs instance.
func NewInstance ¶
func NewInstance(reg prometheus.Registerer, c *InstanceConfig, l log.Logger, dryRun bool) (*Instance, error)
NewInstance creates and starts a Logs instance.
func (*Instance) ApplyConfig ¶
func (i *Instance) ApplyConfig(c *InstanceConfig, dryRun bool) error
ApplyConfig will apply a new InstanceConfig. If the config hasn't changed, then nothing will happen, otherwise the old Promtail will be stopped and then replaced with a new one.
type InstanceConfig ¶
type InstanceConfig struct { Name string `yaml:"name,omitempty"` ClientConfigs []client.Config `yaml:"clients,omitempty"` PositionsConfig positions.Config `yaml:"positions,omitempty"` ScrapeConfig []scrapeconfig.Config `yaml:"scrape_configs,omitempty"` TargetConfig file.Config `yaml:"target_config,omitempty"` }
InstanceConfig is an individual Promtail config.
func (*InstanceConfig) UnmarshalYAML ¶
func (c *InstanceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaler.
type ListTargetsResponse ¶ added in v0.25.0
type ListTargetsResponse []TargetInfo
ListTargetsResponse is returned by the ListTargetsHandler.
type Logs ¶
type Logs struct {
// contains filtered or unexported fields
}
Logs is a Logs log collection. It uses multiple distinct sets of Logs Promtail agents to collect logs and send them to a Logs server.
func New ¶
func New(reg prometheus.Registerer, c *Config, l log.Logger, dryRun bool) (*Logs, error)
New creates and starts Loki log collection.
func (*Logs) ApplyConfig ¶
ApplyConfig updates Logs with a new Config.
func (*Logs) ListInstancesHandler ¶ added in v0.25.0
func (l *Logs) ListInstancesHandler(w http.ResponseWriter, _ *http.Request)
ListInstancesHandler writes the set of currently running instances to the http.ResponseWriter.
func (*Logs) ListTargetsHandler ¶ added in v0.25.0
func (l *Logs) ListTargetsHandler(w http.ResponseWriter, r *http.Request)
ListTargetsHandler retrieves the full set of targets across all instances and shows information on them.
type TargetInfo ¶ added in v0.25.0
type TargetInfo struct { InstanceName string `json:"instance"` TargetGroup string `json:"target_group"` Type target.TargetType `json:"type"` Labels model.LabelSet `json:"labels"` DiscoveredLabels model.LabelSet `json:"discovered_labels"` Ready bool `json:"ready"` Details interface{} `json:"details"` }
TargetInfo describes a specific target.