metrics

package
v2.0.0-beta2 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PluginName declares plugin name.
	PluginName = "metrics"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Collector

type Collector struct {
	// Namespace of the metric.
	Namespace string `json:"namespace"`
	// Subsystem of the metric.
	Subsystem string `json:"subsystem"`
	// Collector type (histogram, gauge, counter, summary).
	Type CollectorType `json:"type"`
	// Help of collector.
	Help string `json:"help"`
	// Labels for vectorized metrics.
	Labels []string `json:"labels"`
	// Buckets for histogram metric.
	Buckets []float64 `json:"buckets"`
	// Objectives for the summary opts
	Objectives map[float64]float64 `json:"objectives"`
}

Collector describes single application specific metric.

type CollectorType

type CollectorType string

CollectorType represents prometheus collector types

const (
	// Histogram type
	Histogram CollectorType = "histogram"

	// Gauge type
	Gauge CollectorType = "gauge"

	// Counter type
	Counter CollectorType = "counter"

	// Summary type
	Summary CollectorType = "summary"
)

type Config

type Config struct {
	// Address to listen
	Address string

	// Collect define application specific metrics.
	Collect map[string]Collector
}

Config configures metrics service.

func (*Config) InitDefaults

func (c *Config) InitDefaults()

type Metric

type Metric struct {
	// Collector name.
	Name string

	// Collector value.
	Value float64

	// Labels associated with metric. Only for vector metrics. Must be provided in a form of label values.
	Labels []string
}

Metric represent single metric produced by the application.

type NamedCollector

type NamedCollector struct {
	// Name of the collector
	Name string `json:"name"`

	// Collector structure
	Collector `json:"collector"`
}

type Plugin

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

Plugin to manage application metrics using Prometheus.

func (*Plugin) AddStatProvider

func (m *Plugin) AddStatProvider(name endure.Named, stat StatProvider) error

Collector returns application specific collector by name or nil if collector not found.

func (*Plugin) Collects

func (m *Plugin) Collects() []interface{}

Collects used to collect all plugins which implement metrics.StatProvider interface (and Named)

func (*Plugin) Init

func (m *Plugin) Init(cfg config.Configurer, log logger.Logger) error

Init service.

func (*Plugin) Name

func (m *Plugin) Name() string

RPC interface satisfaction

func (*Plugin) RPC

func (m *Plugin) RPC() interface{}

RPC interface satisfaction

func (*Plugin) Register

func (m *Plugin) Register(c prometheus.Collector) error

Register new prometheus collector.

func (*Plugin) Serve

func (m *Plugin) Serve() chan error

Serve prometheus metrics service.

func (*Plugin) Stop

func (m *Plugin) Stop() error

Stop prometheus metrics service.

type StatProvider

type StatProvider interface {
	MetricsCollector() []prometheus.Collector
}

Jump to

Keyboard shortcuts

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