prom

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2020 License: Apache-2.0 Imports: 18 Imported by: 0

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

This section is empty.

Variables

View Source
var (
	DefaultConfig = Config{
		Global:                 config.DefaultGlobalConfig,
		InstanceRestartBackoff: instance.DefaultBasicManagerConfig.InstanceRestartBackoff,
		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) Config added in v0.4.0

func (a *Agent) Config() Config

func (*Agent) InstanceManager added in v0.4.0

func (a *Agent) InstanceManager() instance.Manager

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.

func (*Agent) Stop

func (a *Agent) Stop()

Stop stops the agent and all its instances.

func (*Agent) WireAPI

func (a *Agent) WireAPI(r *mux.Router)

WireAPI adds API routes to the provided mux router.

func (*Agent) WireGRPC

func (a *Agent) WireGRPC(s *grpc.Server)

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"`
	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

func (c *Config) ApplyDefaults() error

ApplyDefaults applies default values to the Config and validates it.

func (*Config) RegisterFlags

func (c *Config) RegisterFlags(f *flag.FlagSet)

RegisterFlags defines flags corresponding to the Config.

func (*Config) UnmarshalYAML added in v0.4.0

func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler.

type InstanceMode added in v0.5.0

type InstanceMode string

InstanceMode controls how instances are created.

var (
	InstanceModeDistinct InstanceMode = "distinct"
	InstanceModeShared   InstanceMode = "shared"

	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"`
	LastScrape     time.Time     `json:"last_scrape"`
	ScrapeDuration int64         `json:"scrape_duration_ms"`
	ScrapeError    string        `json:"scrape_error"`
}

TargetInfo describes a specific target.

Directories

Path Synopsis
ha
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.

Jump to

Keyboard shortcuts

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