Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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) 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 ¶
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"` }
Click to show internal directories.
Click to hide internal directories.