Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidExportersConfig = errors.New("exporters key is not in the known format") ErrUnknownExporterType = errors.New("unknown exporter type specified") )
nolint: golint
var ( // DefaultNetTimeout is the default timeout set for remote network exporters. DefaultNetTimeout = model.Duration(time.Second * 1) )
Functions ¶
func Save ¶
func Save(cfg *ExporterConfig) ([]byte, error)
Save dumps an ExporterConfig as a YAML file.
Types ¶
type AuthType ¶
type AuthType string
AuthType is one of several constants used to specify the type of authentication a reverse proxy endpoint should have. The default empty string means no auth.
type BaseExporter ¶
type BaseExporter interface {
GetBaseExporter() Exporter
}
BaseExporter is the interface all exporters must implement
type ExecCachingExporterConfig ¶
type ExecCachingExporterConfig struct { Command string `yaml:"command"` Args []string `yaml:"args"` ExecInterval model.Duration `yaml:"exec_interval"` Exporter `yaml:",inline"` }
ExecCachingExporterConfig contains configuration specific to reverse proxying cached executable scripts
func (*ExecCachingExporterConfig) UnmarshalYAML ¶
func (ecec *ExecCachingExporterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaller
type ExecExporterConfig ¶
type ExecExporterConfig struct { Command string `yaml:"command"` Args []string `yaml:"args"` Exporter `yaml:",inline"` }
ExecExporterConfig contains configuration specific to reverse proxying executable scripts
func (*ExecExporterConfig) UnmarshalYAML ¶
func (eec *ExecExporterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaller
type Exporter ¶
type Exporter struct { // Name is the name of the underlying exporter which will be appended to the metrics Name string `yaml:"name"` // NoRewrite disables appending of the name (explicit labels will be appended however) NoRewrite bool `yaml:"no_rewrite"` // Labels are additional key-value labels which should be statically added to all metrics Labels map[string]string `yaml:"labels"` }
Exporter implements BaseExporter
func (Exporter) GetBaseExporter ¶
GetBaseExporter returns the common exporter parameters of an exporter TODO: make correctly read-only
type ExporterConfig ¶
type ExporterConfig struct { ReverseExporters []ReverseExporter `yaml:"reverse_exporters"` // Catch-all to error on invalid config XXX map[string]interface{} `yaml:",inline,omitempty"` }
ExporterConfig is the global configuration.
func Load ¶
func Load(s string) (*ExporterConfig, error)
Load parses the given string as a YAML ExporterConfig
func LoadFromFile ¶
func LoadFromFile(filename string) (*ExporterConfig, error)
LoadFromFile loads an ExporterConfig from the given filepath
type FileExporterConfig ¶
FileExporterConfig contains configuration specific to reverse proxying files
func (*FileExporterConfig) UnmarshalYAML ¶
func (fec *FileExporterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaller
type HTTPExporterConfig ¶
type HTTPExporterConfig struct { // A URI giving the address the exporter is found at. // HTTP: http://localhost/metrics // Unix: http://unix:/path/to/socket:/metrics Address string `yaml:"address"` // Timeout is the maximum length of time connecting to and retrieving the // results of this exporter can take. Timeout model.Duration `yaml:"timeout,omitempty"` // ForwardURLParams determines whether the exporter will have ALL url params // of the parent request added to it. ForwardURLParams bool `yaml:"forward_url_params"` Exporter `yaml:",inline"` }
HTTPExporterConfig contains configuration specific to reverse proxying normal http-based Prometheus exporters
func (*HTTPExporterConfig) UnmarshalYAML ¶
func (hec *HTTPExporterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaller
type ReverseExporter ¶
type ReverseExporter struct { // Path is the URL path this set of exporters will be found under. Path string `yaml:"path"` // Exporters is a list of URLs defining exporter endpoints to be aggregated // and the unique name to be given to differentiate their metrics. Exporters []interface{} `yaml:"exporters"` // AuthType is the type of authentication backend to use for this reverse // proxy. Currently only nothing and "basic" are supported. AuthType AuthType `yaml:"auth_type"` // HtPasswdFile is the HtPasswd file to use for basic auth if basic auth is // requested. HtPasswdFile string `yaml:"htpasswd_file"` }
ReverseExporter is a configuration struct describing a logically-decoded proxied exporter
func (*ReverseExporter) UnmarshalYAML ¶
func (re *ReverseExporter) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements yaml.Unmarshaller