Help us shape the future of Go! Take the 2026 Go Developer Survey

collector

package
v0.26.1 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2017 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetCollectorConfigs

func GetCollectorConfigs(labels map[string]string) map[string]string

Types

type Collector

type Collector interface {
	// Collect metrics from this collector.
	// Returns the next time this collector should be collected from.
	// Next collection time is always returned, even when an error occurs.
	// A collection time of zero means no more collection.
	Collect(map[string][]v1.MetricVal) (time.Time, map[string][]v1.MetricVal, error)

	// Return spec for all metrics associated with this collector
	GetSpec() []v1.MetricSpec

	// Name of this collector.
	Name() string
}

Metric collector.

type CollectorManager

type CollectorManager interface {
	// Register a collector.
	RegisterCollector(collector Collector) error

	// Collect from collectors that are ready and return the next time
	// at which a collector will be ready to collect from.
	// Next collection time is always returned, even when an error occurs.
	// A collection time of zero means no more collection.
	Collect() (time.Time, map[string][]v1.MetricVal, error)

	// Get metric spec from all registered collectors.
	GetSpec() ([]v1.MetricSpec, error)
}

Manages and runs collectors.

func NewCollectorManager

func NewCollectorManager() (CollectorManager, error)

Returns a new CollectorManager that is thread-compatible.

type Config

type Config struct {
	// the endpoint to hit to scrape metrics
	Endpoint EndpointConfig `json:"endpoint"`

	// holds information about different metrics that can be collected
	MetricsConfig []MetricConfig `json:"metrics_config"`
}

type EndpointConfig added in v0.24.0

type EndpointConfig struct {
	// The full URL of the endpoint to reach
	URL string
	// A configuration in which an actual URL is constructed from, using the container's ip address
	URLConfig URLConfig
}

func (*EndpointConfig) UnmarshalJSON added in v0.24.0

func (ec *EndpointConfig) UnmarshalJSON(b []byte) error

type FakeCollectorManager

type FakeCollectorManager struct {
}

func (*FakeCollectorManager) Collect

func (fkm *FakeCollectorManager) Collect(metric map[string][]v1.MetricVal) (time.Time, map[string][]v1.MetricVal, error)

func (*FakeCollectorManager) GetSpec

func (fkm *FakeCollectorManager) GetSpec() ([]v1.MetricSpec, error)

func (*FakeCollectorManager) RegisterCollector

func (fkm *FakeCollectorManager) RegisterCollector(collector Collector) error

type GenericCollector

type GenericCollector struct {
	// contains filtered or unexported fields
}

func NewCollector

func NewCollector(collectorName string, configFile []byte, metricCountLimit int, containerHandler container.ContainerHandler, httpClient *http.Client) (*GenericCollector, error)

Returns a new collector using the information extracted from the configfile

func (*GenericCollector) Collect

func (collector *GenericCollector) Collect(metrics map[string][]v1.MetricVal) (time.Time, map[string][]v1.MetricVal, error)

Returns collected metrics and the next collection time of the collector

func (*GenericCollector) GetSpec

func (collector *GenericCollector) GetSpec() []v1.MetricSpec

func (*GenericCollector) Name

func (collector *GenericCollector) Name() string

Returns name of the collector

type GenericCollectorManager

type GenericCollectorManager struct {
	Collectors         []*collectorData
	NextCollectionTime time.Time
}

func (*GenericCollectorManager) Collect

func (cm *GenericCollectorManager) Collect() (time.Time, map[string][]v1.MetricVal, error)

func (*GenericCollectorManager) GetSpec

func (cm *GenericCollectorManager) GetSpec() ([]v1.MetricSpec, error)

func (*GenericCollectorManager) RegisterCollector

func (cm *GenericCollectorManager) RegisterCollector(collector Collector) error

type MetricConfig

type MetricConfig struct {
	// the name of the metric
	Name string `json:"name"`

	// enum type for the metric type
	MetricType v1.MetricType `json:"metric_type"`

	// metric units to display on UI and in storage (eg: MB, cores)
	// this is only used for display.
	Units string `json:"units"`

	// data type of the metric (eg: int, float)
	DataType v1.DataType `json:"data_type"`

	// the frequency at which the metric should be collected
	PollingFrequency time.Duration `json:"polling_frequency"`

	// the regular expression that can be used to extract the metric
	Regex string `json:"regex"`
}

metricConfig holds information extracted from the config file about a metric

type Prometheus

type Prometheus struct {
	// the endpoint to hit to scrape metrics
	Endpoint EndpointConfig `json:"endpoint"`

	// the frequency at which metrics should be collected
	PollingFrequency time.Duration `json:"polling_frequency"`

	// holds names of different metrics that can be collected
	MetricsConfig []string `json:"metrics_config"`
}

type PrometheusCollector

type PrometheusCollector struct {
	// contains filtered or unexported fields
}

func NewPrometheusCollector

func NewPrometheusCollector(collectorName string, configFile []byte, metricCountLimit int, containerHandler container.ContainerHandler, httpClient *http.Client) (*PrometheusCollector, error)

Returns a new collector using the information extracted from the configfile

func (*PrometheusCollector) Collect

func (collector *PrometheusCollector) Collect(metrics map[string][]v1.MetricVal) (time.Time, map[string][]v1.MetricVal, error)

Returns collected metrics and the next collection time of the collector

func (*PrometheusCollector) GetSpec

func (collector *PrometheusCollector) GetSpec() []v1.MetricSpec

func (*PrometheusCollector) Name

func (collector *PrometheusCollector) Name() string

Returns name of the collector

type URLConfig added in v0.24.0

type URLConfig struct {
	// the protocol to use for connecting to the endpoint. Eg 'http' or 'https'
	Protocol string `json:"protocol"`

	// the port to use for connecting to the endpoint. Eg '8778'
	Port json.Number `json:"port"`

	// the path to use for the endpoint. Eg '/metrics'
	Path string `json:"path"`
}

Jump to

Keyboard shortcuts

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