| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package aggregator
- import (
- "maps"
- "sync"
- "time"
- )
- // infoAggregator is MetricAggregator meant to record label values and addition information
- type infoAggregator struct {
- lock sync.RWMutex
- labelValues []string
- additionalInfo map[string]string
- }
- func Info(labelValues []string) MetricAggregator {
- return &infoAggregator{
- labelValues: labelValues,
- }
- }
- func (a *infoAggregator) AdditionInfo() map[string]string {
- a.lock.Lock()
- defer a.lock.Unlock()
- return maps.Clone(a.additionalInfo)
- }
- func (a *infoAggregator) LabelValues() []string {
- return a.labelValues
- }
- func (a *infoAggregator) Update(value float64, timestamp time.Time, additionalInfo map[string]string) {
- a.lock.Lock()
- defer a.lock.Unlock()
- a.additionalInfo = maps.Clone(additionalInfo)
- }
- func (a *infoAggregator) Value() []MetricValue {
- return []MetricValue{
- {Value: 1},
- }
- }
|