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) 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) WireAPI(r *mux.Router)
- func (a *Agent) WireGRPC(s *grpc.Server)
- type Config
- type InstanceMode
- type ListTargetsResponse
- type TargetInfo
- type WALCleaner
Constants ¶
const ( DefaultCleanupAge = 12 * time.Hour DefaultCleanupPeriod = 30 * time.Minute )
Variables ¶
var ( DefaultConfig = Config{ Global: config.DefaultGlobalConfig, InstanceRestartBackoff: instance.DefaultBasicManagerConfig.InstanceRestartBackoff, WALCleanupAge: DefaultCleanupAge, WALCleanupPeriod: DefaultCleanupPeriod, ServiceConfig: ha.DefaultConfig, ServiceClientConfig: client.DefaultConfig, InstanceMode: DefaultInstanceMode, } )
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) InstanceManager ¶ added in v0.4.0
func (*Agent) ListInstancesHandler ¶
func (a *Agent) ListInstancesHandler(w http.ResponseWriter, _ *http.Request)
ListInstances 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.
type Config ¶
type Config struct { // Whether the Prometheus subsystem should be enabled. Enabled bool `yaml:"-"` Global config.GlobalConfig `yaml:"global"` WALDir string `yaml:"wal_directory"` WALCleanupAge time.Duration `yaml:"wal_cleanup_age"` WALCleanupPeriod time.Duration `yaml:"wal_cleanup_period"` ServiceConfig ha.Config `yaml:"scraping_service"` ServiceClientConfig client.Config `yaml:"scraping_service_client"` Configs []instance.Config `yaml:"configs,omitempty"` InstanceRestartBackoff time.Duration `yaml:"instance_restart_backoff,omitempty"` InstanceMode InstanceMode `yaml:"instance_mode"` }
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 InstanceMode ¶ added in v0.5.0
type InstanceMode string
InstanceMode controls how instances are created.
var ( InstanceModeDistinct InstanceMode = "distinct" DefaultInstanceMode = InstanceModeShared )
Types of instance modes
func (*InstanceMode) UnmarshalYAML ¶ added in v0.5.0
func (m *InstanceMode) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals a string to an InstanceMode. Fails if the string is unrecognized.
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 ha implements a high availability clustering mode for the agent.
|
Package ha implements a high availability clustering mode for the agent. |
Package instance provides a mini Prometheus scraper and remote_writer.
|
Package instance provides a mini Prometheus scraper and remote_writer. |