Documentation ¶
Overview ¶
Package metrics implements a Prometheus-lite client for service discovery, scraping metrics into a WAL, and remote_write. Clients are broken into a set of instances, each of which contain their own set of configs.
Index ¶
- Constants
- Variables
- func ListTargetsHandler(targets map[string]TargetSet) http.Handler
- type Agent
- func (a *Agent) ApplyConfig(cfg Config) error
- func (a *Agent) Config() Config
- func (a *Agent) InstanceManager() instance.Manager
- func (a *Agent) ListInstancesHandler(w http.ResponseWriter, _ *http.Request)
- func (a *Agent) ListTargetsHandler(w http.ResponseWriter, r *http.Request)
- func (a *Agent) Ready() bool
- func (a *Agent) Stop()
- func (a *Agent) Validate(c *instance.Config) error
- func (a *Agent) WireAPI(r *mux.Router)
- func (a *Agent) WireGRPC(s *grpc.Server)
- type Config
- type ListTargetsResponse
- type TargetInfo
- type TargetSet
- type WALCleaner
Constants ¶
const ( DefaultCleanupAge = 12 * time.Hour DefaultCleanupPeriod = 30 * time.Minute )
Default settings for the WAL cleaner.
Variables ¶
var DefaultConfig = Config{ Global: instance.DefaultGlobalConfig, InstanceRestartBackoff: instance.DefaultBasicManagerConfig.InstanceRestartBackoff, WALCleanupAge: DefaultCleanupAge, WALCleanupPeriod: DefaultCleanupPeriod, ServiceConfig: cluster.DefaultConfig, ServiceClientConfig: client.DefaultConfig, InstanceMode: instance.DefaultMode, }
DefaultConfig is the default settings for the Prometheus-lite client.
Functions ¶
Types ¶
type Agent ¶
type Agent struct {
// contains filtered or unexported fields
}
Agent is an agent for collecting Prometheus metrics. It acts as a Prometheus-lite; only running the service discovery, remote_write, and WAL components of Prometheus. It is broken down into a series of Instances, each of which perform metric collection.
func New ¶
func New(reg prometheus.Registerer, cfg Config, logger log.Logger) (*Agent, error)
New creates and starts a new Agent.
func (*Agent) ApplyConfig ¶
ApplyConfig applies config changes to the Agent.
func (*Agent) InstanceManager ¶
InstanceManager returns the instance manager used by this Agent.
func (*Agent) ListInstancesHandler ¶
func (a *Agent) ListInstancesHandler(w http.ResponseWriter, _ *http.Request)
ListInstancesHandler writes the set of currently running instances to the http.ResponseWriter.
func (*Agent) ListTargetsHandler ¶
func (a *Agent) ListTargetsHandler(w http.ResponseWriter, r *http.Request)
ListTargetsHandler retrieves the full set of targets across all instances and shows information on them.
func (*Agent) Ready ¶ added in v0.22.9
Ready returns true if both the agent and all instances spawned by a Manager have completed startup.
func (*Agent) Validate ¶
Validate will validate the incoming Config and mutate it to apply defaults.
type Config ¶
type Config struct { Global instance.GlobalConfig `yaml:"global,omitempty"` WALDir string `yaml:"wal_directory,omitempty"` WALCleanupAge time.Duration `yaml:"wal_cleanup_age,omitempty"` WALCleanupPeriod time.Duration `yaml:"wal_cleanup_period,omitempty"` ServiceConfig cluster.Config `yaml:"scraping_service,omitempty"` ServiceClientConfig client.Config `yaml:"scraping_service_client,omitempty"` Configs []instance.Config `yaml:"configs,omitempty,omitempty"` InstanceRestartBackoff time.Duration `yaml:"instance_restart_backoff,omitempty"` InstanceMode instance.Mode `yaml:"instance_mode,omitempty"` // Unmarshaled is true when the Config was unmarshaled from YAML. Unmarshaled bool `yaml:"-"` }
Config defines the configuration for the entire set of Prometheus client instances, along with a global configuration.
func (*Config) ApplyDefaults ¶
ApplyDefaults applies default values to the Config and validates it.
func (*Config) RegisterFlags ¶
RegisterFlags defines flags corresponding to the Config.
func (*Config) RegisterFlagsWithPrefix ¶
RegisterFlagsWithPrefix defines flags with the provided prefix.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler.
type ListTargetsResponse ¶
type ListTargetsResponse []TargetInfo
ListTargetsResponse is returned by the ListTargetsHandler.
type TargetInfo ¶
type TargetInfo struct { InstanceName string `json:"instance"` TargetGroup string `json:"target_group"` Endpoint string `json:"endpoint"` State string `json:"state"` Labels labels.Labels `json:"labels"` DiscoveredLabels labels.Labels `json:"discovered_labels"` LastScrape time.Time `json:"last_scrape"` ScrapeDuration int64 `json:"scrape_duration_ms"` ScrapeError string `json:"scrape_error"` }
TargetInfo describes a specific target.
type WALCleaner ¶
type WALCleaner struct {
// contains filtered or unexported fields
}
WALCleaner periodically checks for Write Ahead Logs (WALs) that are not associated with any active instance.ManagedInstance and have not been written to in some configured amount of time and deletes them.
func NewWALCleaner ¶
func NewWALCleaner(logger log.Logger, manager instance.Manager, walDirectory string, minAge time.Duration, period time.Duration) *WALCleaner
NewWALCleaner creates a new cleaner that looks for abandoned WALs in the given directory and removes them if they haven't been modified in over minAge. Starts a goroutine to periodically run the cleanup method in a loop
func (*WALCleaner) Stop ¶
func (c *WALCleaner) Stop()
Stop the cleaner and any background tasks running
Directories ¶
Path | Synopsis |
---|---|
Package instance provides a mini Prometheus scraper and remote_writer.
|
Package instance provides a mini Prometheus scraper and remote_writer. |
configstore
Package configstore abstracts the concepts of where instance files get retrieved.
|
Package configstore abstracts the concepts of where instance files get retrieved. |