Documentation ¶
Index ¶
- type Collector
- type Config
- type ConnSetting
- type ConnsSettings
- type Repository
- func (repo *Repository) AddServicesFromConfig(config Config)
- func (repo *Repository) GetService(id string) Service
- func (repo *Repository) GetServiceIDs() []string
- func (repo *Repository) SetupServices(config Config) error
- func (repo *Repository) StartBackgroundDiscovery(ctx context.Context, config Config)
- func (repo *Repository) TotalServices() int
- type Service
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Collector ¶
type Collector interface { Describe(chan<- *prometheus.Desc) Collect(chan<- prometheus.Metric) }
Exporter is an interface for prometheus.Collector.
type Config ¶
type Config struct { RuntimeMode int NoTrackMode bool ConnDefaults map[string]string `yaml:"defaults"` // Defaults ConnsSettings ConnsSettings // DatabasesRE defines regexp with databases from which builtin metrics should be collected. DatabasesRE *regexp.Regexp DisabledCollectors []string // CollectorsSettings defines all collector settings propagated from main YAML configuration. CollectorsSettings model.CollectorsSettings }
Config defines service's configuration.
type ConnSetting ¶
type ConnSetting struct { // ServiceType defines type of service for which these connection settings are used. ServiceType string `yaml:"service_type"` // Conninfo is the connection string in service-specific format. Conninfo string `yaml:"conninfo"` }
ConnSetting describes connection settings required for connecting to particular service. This is primarily used for describing services defined by user in the config file (or env vars).
func ParsePgbouncerDSNEnv ¶ added in v0.6.0
func ParsePgbouncerDSNEnv(key, value string) (string, ConnSetting, error)
ParsePgbouncerDSNEnv is a public wrapper over parseDSNEnv.
func ParsePostgresDSNEnv ¶ added in v0.6.0
func ParsePostgresDSNEnv(key, value string) (string, ConnSetting, error)
ParsePostgresDSNEnv is a public wrapper over parseDSNEnv.
type ConnsSettings ¶ added in v0.4.23
type ConnsSettings map[string]ConnSetting
ConnsSettings defines a set of all connection settings of exact services.
type Repository ¶
type Repository struct { sync.RWMutex // protect concurrent access Services map[string]Service // service repo store }
Repository is the repository with services.
func NewRepository ¶
func NewRepository() *Repository
NewRepository creates new services repository.
func (*Repository) AddServicesFromConfig ¶
func (repo *Repository) AddServicesFromConfig(config Config)
AddServicesFromConfig is a public wrapper on AddServicesFromConfig method.
func (*Repository) GetService ¶
func (repo *Repository) GetService(id string) Service
GetService is a public wrapper on getService method.
func (*Repository) GetServiceIDs ¶
func (repo *Repository) GetServiceIDs() []string
GetServiceIDs is a public wrapper on GetServiceIDs method.
func (*Repository) SetupServices ¶
func (repo *Repository) SetupServices(config Config) error
SetupServices is a public wrapper on SetupServices method.
func (*Repository) StartBackgroundDiscovery ¶
func (repo *Repository) StartBackgroundDiscovery(ctx context.Context, config Config)
StartBackgroundDiscovery is a public wrapper on StartBackgroundDiscovery method.
func (*Repository) TotalServices ¶
func (repo *Repository) TotalServices() int
TotalServices is a public wrapper on TotalServices method.
type Service ¶
type Service struct { // Service identifier is unique key across all monitored services and used to distinguish services of the same type // running on the single host (two Postgres services running on the same host but listening on different ports). // Hence not to mix their metrics the ServiceID is introduced and attached to metrics as "sid" label: // metric_xact_commits{database="test", sid="postgres:5432"} -- metric from the first postgres running on 5432 port // metric_xact_commits{database="test", sid="postgres:5433"} -- metric from the second postgres running on 5433 port ServiceID string // Connection settings required for connecting to the service. ConnSettings ConnSetting // Prometheus-based metrics collector associated with the service. Each 'service' has its own dedicated collector instance // which implements a service-specific set of metric collectors. Collector Collector // TotalErrors represents total number of times where service's health checks failed. When errors limit is reached service // removed from the repo. TotalErrors int }
Service struct describes service - the target from which should be collected metrics.
func TestPgbouncerService ¶
func TestPgbouncerService() Service
TestPgbouncerService returns pgbouncer service for testing purposes
func TestPostgresService ¶
func TestPostgresService() Service
TestPostgresService returns postgres service for testing purposes
func TestSystemService ¶
func TestSystemService() Service
TestSystemService returns system service for testing purposes