Documentation ¶
Index ¶
- func MakeLabelReflector(t reflect.Type, parent string, parentLabelNames types.LabelNames) (*LabelReflector, LabelNames)
- func MakeLabelReflectorWithTransform(t reflect.Type, parent string, parentLabelNames types.LabelNames, ...) (*LabelReflector, LabelNames)
- type LabelNames
- type LabelReflector
- type RecursiveMetricsOption
- type Updater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MakeLabelReflector ¶
func MakeLabelReflector(t reflect.Type, parent string, parentLabelNames types.LabelNames) (*LabelReflector, LabelNames)
MakeLabelReflector uses reflection Information to build LabelReflector. for structs. LabelReflector can then later on be used to performantly extract Labels from the same struct type. Internally LabelReflector specifically looks at field tag `kpromlbl` for Label names.
func MakeLabelReflectorWithTransform ¶ added in v0.0.7
func MakeLabelReflectorWithTransform(t reflect.Type, parent string, parentLabelNames types.LabelNames, transform types.LabelNameTransformer) (*LabelReflector, LabelNames)
MakeLabelReflectorWithTransform uses reflection Information to build LabelReflector. for structs. LabelReflector can then later on be used to performantly extract Labels from the same struct type. Internally LabelReflector specifically looks at field tag `kpromlbl` for Label names. Also support transformation of LabelNames.
Types ¶
type LabelReflector ¶
type RecursiveMetricsOption ¶ added in v0.0.7
type RecursiveMetricsOption interface { }
RecursiveMetricsOption represents an opaque option implementation for creating RecursiveMetrics
func WithLabelNameTransform ¶ added in v0.0.7
func WithLabelNameTransform(fun types.LabelNameTransformer) RecursiveMetricsOption
WithLabelNameTransform creates an Option for transforming Prometheus label names Especially useful since Prometheus has a very limited range of characters allowed for label names. Does not transform passed in Labels!
func WithMetricNameTransform ¶ added in v0.0.7
func WithMetricNameTransform(fun types.MetricNameTransformer) RecursiveMetricsOption
WithMetricNameTransform creates an Option for transforming Prometheus metric names Especially useful since Prometheus has a very limited range of characters allowed for metric names.
type Updater ¶
type Updater interface {
Update(v interface{}, labels prometheus.Labels)
}
Updater allows for updating prometheus Metrics from Value
func NewRecursiveMetricsFromTags ¶
func NewRecursiveMetricsFromTags(tagged interface{}, opts ...RecursiveMetricsOption) (prometheus.Collector, Updater)
NewRecursiveMetricsFromTags builds Metrics recursively for the type of `tagged`. Uses tags to build Metrics. Does not expose metrics directly. Returns `Collector` for reading created Metrics and `Updater` for updating the Metrics with a Type of `tagged`.