prometheus

package
v1.14.1 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2018 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Overview

Package prometheus contains business logic of working with Prometheus.

Index

Constants

View Source
const (
	// store scrape configs in Consul under that key
	ConsulKey = "prometheus/scrape_configs"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BasicAuth

type BasicAuth struct {
	Username string
	Password string
}

type Health added in v1.7.0

type Health string

Health of the target.

const (
	// HealthUnknown represents unknown health state of target.
	HealthUnknown Health = "unknown"
	// HealthDown represents target that is down.
	HealthDown Health = "down"
	// HealthUp represents target that is up and healthy.
	HealthUp Health = "up"
)

type LabelPair

type LabelPair struct {
	Name  string
	Value string
}

type RelabelConfig added in v1.5.0

type RelabelConfig struct {
	TargetLabel string
	Replacement string
}

type ScrapeConfig

type ScrapeConfig struct {
	JobName        string
	ScrapeInterval string
	ScrapeTimeout  string
	MetricsPath    string
	HonorLabels    bool
	Scheme         string
	BasicAuth      *BasicAuth
	TLSConfig      TLSConfig
	StaticConfigs  []StaticConfig
	RelabelConfigs []RelabelConfig
}

type ScrapeTargetHealth added in v1.7.0

type ScrapeTargetHealth struct {
	JobName  string
	Job      string
	Target   string
	Instance string
	Health   Health
}

ScrapeTargetHealth represents Prometheus scrape target health: unknown, down, or up.

type ScrapeTargetReachability added in v1.7.0

type ScrapeTargetReachability struct {
	Target string
	Error  string
}

ScrapeTargetReachability represents a single reachability check result.

type Service

type Service struct {
	ConfigPath string
	// contains filtered or unexported fields
}

Service is responsible for interactions with Prometheus. It assumes the following:

  • Prometheus API is accessible;
  • Prometheus configuration and rule files are accessible;
  • promtool is available.

func NewService

func NewService(config string, baseURL string, promtool string, consul *consul.Client) (*Service, error)

func (*Service) Check

func (svc *Service) Check(ctx context.Context) error

Check updates Prometehus configuration using information from Consul KV. (During PMM update prometheus.yml is overwritten, but Consul data directory is kept.) It returns error if configuration is not right or Prometheus is not available.

func (*Service) CreateScrapeConfig

func (svc *Service) CreateScrapeConfig(ctx context.Context, cfg *ScrapeConfig, checkReachability bool) error

CreateScrapeConfig creates a new scrape config. Errors: InvalidArgument(3) if some argument is not valid, AlreadyExists(6) if scrape config with that job name is already present, FailedPrecondition(9) if reachability check was requested and some scrape target can't be reached.

func (*Service) DeleteScrapeConfig

func (svc *Service) DeleteScrapeConfig(ctx context.Context, jobName string) error

DeleteScrapeConfig removes existing scrape config by job name. Errors: NotFound(5) if no such scrape config is present.

func (*Service) GetScrapeConfig

func (svc *Service) GetScrapeConfig(ctx context.Context, jobName string) (*ScrapeConfig, []ScrapeTargetHealth, error)

GetScrapeConfig returns a scrape config by job name. Errors: NotFound(5) if no such scrape config is present.

func (*Service) ListScrapeConfigs

func (svc *Service) ListScrapeConfigs(ctx context.Context) ([]ScrapeConfig, []ScrapeTargetHealth, error)

ListScrapeConfigs returns all scrape configs.

func (*Service) SetScrapeConfigs added in v1.5.0

func (svc *Service) SetScrapeConfigs(ctx context.Context, useConsul bool, configs ...*ScrapeConfig) error

SetScrapeConfigs creates new or completely replaces existing scrape configs with a given names. Errors: InvalidArgument(3) if some argument is not valid.

func (*Service) UpdateScrapeConfig added in v1.7.0

func (svc *Service) UpdateScrapeConfig(ctx context.Context, cfg *ScrapeConfig, checkReachability bool) error

UpdateScrapeConfig updates existing scrape config by job name. Errors: InvalidArgument(3) if some argument is not valid, NotFound(5) if no such scrape config is present, FailedPrecondition(9) if reachability check was requested and some scrape target can't be reached.

type StaticConfig

type StaticConfig struct {
	Targets []string
	Labels  []LabelPair
}

type TLSConfig

type TLSConfig struct {
	InsecureSkipVerify bool
}

Jump to

Keyboard shortcuts

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