stats

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2016 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Counter = MetricType(iota) // A counter that sums its data points
	Gauge                      // A gauge that displays the latest value
	Trend                      // A trend, min/max/avg/med are interesting
	Rate                       // A rate, displays % of values that aren't 0
)

Possible values for MetricType.

View Source
const (
	Default = ValueType(iota) // Values are presented as-is
	Time                      // Values are timestamps (nanoseconds)
)

Possible values for ValueType.

Variables

View Source
var ErrInvalidMetricType = errors.New("Invalid metric type")

The serialized metric type is invalid.

View Source
var ErrInvalidValueType = errors.New("Invalid value type")

The serialized value type is invalid.

Functions

This section is empty.

Types

type Collector

type Collector interface {
	// Run is called in a goroutine and starts the collector. Should commit samples to the backend
	// at regular intervals and when the context is terminated.
	Run(ctx context.Context)

	// Collect receives a set of samples. This method is never called concurrently, and only while
	// the context for Run() is valid, but should defer as much work as possible to Run().
	Collect(samples []Sample)
}

A Collector abstracts away the details of a storage backend from the application.

type CounterSink

type CounterSink struct {
	Value float64
}

func (*CounterSink) Add

func (c *CounterSink) Add(s Sample)

func (*CounterSink) Format

func (c *CounterSink) Format() map[string]float64

type GaugeSink

type GaugeSink struct {
	Value float64
}

func (*GaugeSink) Add

func (g *GaugeSink) Add(s Sample)

func (*GaugeSink) Format

func (g *GaugeSink) Format() map[string]float64

type Metric

type Metric struct {
	Name     string     `json:"-"`
	Type     MetricType `json:"type"`
	Contains ValueType  `json:"contains"`

	// Filled in by the API when requested, the server side cannot count on its presence.
	Sample map[string]float64 `json:"sample"`

	// Set to true if the metric has failed a threshold.
	Tainted bool
}

A Metric defines the shape of a set of data.

func New

func New(name string, typ MetricType, t ...ValueType) *Metric

func (Metric) GetID

func (m Metric) GetID() string

func (Metric) Humanize

func (m Metric) Humanize() string

func (Metric) HumanizeValue

func (m Metric) HumanizeValue(v float64) string

func (*Metric) SetID

func (m *Metric) SetID(id string) error

type MetricType

type MetricType int

A MetricType specifies the type of a metric.

func (MetricType) MarshalJSON

func (t MetricType) MarshalJSON() ([]byte, error)

MarshalJSON serializes a MetricType as a human readable string.

func (MetricType) String

func (t MetricType) String() string

func (*MetricType) UnmarshalJSON

func (t *MetricType) UnmarshalJSON(data []byte) error

UnmarshalJSON deserializes a MetricType from a string representation.

type RateSink

type RateSink struct {
	Trues int64
	Total int64
}

func (*RateSink) Add

func (r *RateSink) Add(s Sample)

func (RateSink) Format

func (r RateSink) Format() map[string]float64

type Sample

type Sample struct {
	Metric *Metric
	Time   time.Time
	Tags   map[string]string
	Value  float64
}

A Sample is a single measurement.

type Sink

type Sink interface {
	Add(s Sample)
	Format() map[string]float64
}

type TrendSink

type TrendSink struct {
	Values []float64
	// contains filtered or unexported fields
}

func (*TrendSink) Add

func (t *TrendSink) Add(s Sample)

func (*TrendSink) Format

func (t *TrendSink) Format() map[string]float64

func (*TrendSink) P

func (t *TrendSink) P(pct float64) float64

type ValueType

type ValueType int

The type of values a metric contains.

func (ValueType) MarshalJSON

func (t ValueType) MarshalJSON() ([]byte, error)

MarshalJSON serializes a ValueType as a human readable string.

func (ValueType) String

func (t ValueType) String() string

func (*ValueType) UnmarshalJSON

func (t *ValueType) UnmarshalJSON(data []byte) error

UnmarshalJSON deserializes a ValueType from a string representation.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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