Documentation ¶
Overview ¶
Package prom 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
- 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, _ *http.Request)
- 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 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 ¶
This section is empty.
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 ¶ added in v0.14.0
ApplyConfig applies config changes to the Agent.
func (*Agent) InstanceManager ¶ added in v0.4.0
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 ¶ added in v0.5.0
func (a *Agent) ListTargetsHandler(w http.ResponseWriter, _ *http.Request)
ListTargetsHandler retrieves the full set of targets across all instances and shows information on them.
func (*Agent) Validate ¶ added in v0.14.0
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"` }
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) UnmarshalYAML ¶ added in v0.4.0
UnmarshalYAML implements yaml.Unmarshaler.
type ListTargetsResponse ¶ added in v0.5.0
type ListTargetsResponse []TargetInfo
ListTargetsResponse is returned by the ListTargetsHandler.
type TargetInfo ¶ added in v0.5.0
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 ¶ added in v0.10.0
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 ¶ added in v0.10.0
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 ¶ added in v0.10.0
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. |