tcp/udp listeners, remove locks & improve test coverage
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -27,9 +28,11 @@ func (p *Metric) String() string {
|
||||
type Accumulator struct {
|
||||
sync.Mutex
|
||||
|
||||
Metrics []*Metric
|
||||
Errors []error
|
||||
debug bool
|
||||
Metrics []*Metric
|
||||
nMetrics uint64
|
||||
Discard bool
|
||||
Errors []error
|
||||
debug bool
|
||||
}
|
||||
|
||||
// Add adds a measurement point to the accumulator
|
||||
@@ -43,6 +46,10 @@ func (a *Accumulator) Add(
|
||||
a.AddFields(measurement, fields, tags, t...)
|
||||
}
|
||||
|
||||
func (a *Accumulator) NMetrics() uint64 {
|
||||
return atomic.LoadUint64(&a.nMetrics)
|
||||
}
|
||||
|
||||
// AddFields adds a measurement point with a specified timestamp.
|
||||
func (a *Accumulator) AddFields(
|
||||
measurement string,
|
||||
@@ -50,6 +57,10 @@ func (a *Accumulator) AddFields(
|
||||
tags map[string]string,
|
||||
timestamp ...time.Time,
|
||||
) {
|
||||
atomic.AddUint64(&a.nMetrics, 1)
|
||||
if a.Discard {
|
||||
return
|
||||
}
|
||||
a.Lock()
|
||||
defer a.Unlock()
|
||||
if tags == nil {
|
||||
|
||||
Reference in New Issue
Block a user