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

metric

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2022 License: MIT Imports: 7 Imported by: 2

Documentation

Overview

Package metric provides an interface for describing a schema of metric's parameters.

Package metric provides an interface for describing a schema of metric's parameters.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LenValidator

type LenValidator struct {
	Min *int
	Max *int
}

func (LenValidator) Validate

func (v LenValidator) Validate(value *string) error

type Metric

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

Metric stores a description of a metric and its parameters.

func New

func New(description string, params []*Param, varParam bool) *Metric

New creates an instance of a Metric and returns a pointer to it. It panics if a metric is not satisfied to one of the following rules: 1. Parameters must be named (and names must be unique). 2. It's forbidden to duplicate parameters' names. 3. Session must be placed first. 4. Connection parameters must be placed in a row.

func (*Metric) EvalParams

func (m *Metric) EvalParams(rawParams []string, sessions interface{}) (params map[string]string, extraParams []string,
	err error)

EvalParams returns a mapping of parameters' names to their values passed to a plugin and/or sessions specified in the configuration file and extra remaining parameters. If a session is configured, then an other connection parameters must not be accepted and an error will be returned. Also it returns error in following cases: * incorrect number of parameters are passed; * missing required parameter; * value validation is failed.

type MetricSet

type MetricSet map[string]*Metric

MetricSet stores a mapping of keys to metrics.

func (MetricSet) List

func (ml MetricSet) List() (list []string)

List returns an array of metrics' keys and their descriptions suitable to pass to plugin.RegisterMetrics.

type NumberValidator

type NumberValidator struct{}

func (NumberValidator) Validate

func (v NumberValidator) Validate(value *string) error

type Param

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

Param stores parameters' metadata.

func NewConnParam

func NewConnParam(name, description string) *Param

NewConnParam creates a new connection parameter with given name and validator. Returns a pointer.

func NewParam

func NewParam(name, description string) *Param

NewParam creates a new parameter with given name and validator. Returns a pointer.

func NewSessionOnlyParam

func NewSessionOnlyParam(name, description string) *Param

NewSessionParam creates a new connection parameter with given name and validator. Returns a pointer.

func (*Param) SetRequired

func (p *Param) SetRequired() *Param

SetRequired makes the parameter mandatory. It panics if default value is specified for required parameter.

func (*Param) WithDefault

func (p *Param) WithDefault(value string) *Param

WithDefault sets the default value for a parameter. It panics if a default value is specified for a required parameter.

func (*Param) WithSession

func (p *Param) WithSession() *Param

WithSession transforms a connection typed parameter to a dual purpose parameter which can be either a connection parameter or session name. Returns a pointer.

func (*Param) WithValidator

func (p *Param) WithValidator(validator Validator) *Param

WithValidator sets a validator for a parameter

type PatternValidator

type PatternValidator struct {
	Pattern string
}

func (PatternValidator) Validate

func (v PatternValidator) Validate(value *string) error

type RangeValidator

type RangeValidator struct {
	Min int
	Max int
}

func (RangeValidator) Validate

func (v RangeValidator) Validate(value *string) error

type SetValidator

type SetValidator struct {
	Set             []string
	CaseInsensitive bool
}

func (SetValidator) Validate

func (v SetValidator) Validate(value *string) error

type Validator

type Validator interface {
	Validate(value *string) error
}

Source Files

  • metric.go
  • validators.go

Jump to

Keyboard shortcuts

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