Skip to content

Commit

Permalink
Makin telemetry creator functions private
Browse files Browse the repository at this point in the history
Those function should not have been public in the first place and there
signature should not be part of the public API we support. Users
shouldn't have any reason to use them as they can control everything
through the client options.
  • Loading branch information
hush-hush committed Oct 21, 2020
1 parent 870d284 commit d78d533
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 24 deletions.
20 changes: 10 additions & 10 deletions statsd/aggregator.go
Expand Up @@ -14,7 +14,6 @@ type (
)

type aggregator struct {
nbContext int32
nbContextGauge int32
nbContextCount int32
nbContextSet int32
Expand Down Expand Up @@ -84,12 +83,14 @@ func (a *aggregator) flushTelemetryMetrics() *aggregatorMetrics {
return nil
}

return &aggregatorMetrics{
nbContext: a.nbContext,
nbContextGauge: a.nbContextGauge,
nbContextCount: a.nbContextCount,
nbContextSet: a.nbContextSet,
am := &aggregatorMetrics{
nbContextGauge: atomic.SwapInt32(&a.nbContextGauge, 0),
nbContextCount: atomic.SwapInt32(&a.nbContextCount, 0),
nbContextSet: atomic.SwapInt32(&a.nbContextSet, 0),
}

am.nbContext = am.nbContextGauge + am.nbContextCount + am.nbContextSet
return am
}

func (a *aggregator) flushMetrics() []metric {
Expand Down Expand Up @@ -125,10 +126,9 @@ func (a *aggregator) flushMetrics() []metric {
metrics = append(metrics, c.flushUnsafe())
}

atomic.StoreInt32(&a.nbContextCount, int32(len(counts)))
atomic.StoreInt32(&a.nbContextGauge, int32(len(gauges)))
atomic.StoreInt32(&a.nbContextSet, int32(len(sets)))
atomic.StoreInt32(&a.nbContext, int32(len(sets)+len(gauges)+len(counts)))
atomic.AddInt32(&a.nbContextCount, int32(len(counts)))
atomic.AddInt32(&a.nbContextGauge, int32(len(gauges)))
atomic.AddInt32(&a.nbContextSet, int32(len(sets)))
return metrics
}

Expand Down
5 changes: 3 additions & 2 deletions statsd/options.go
Expand Up @@ -35,8 +35,8 @@ var (
DefaultAggregationFlushInterval = 3 * time.Second
// DefaultAggregation
DefaultAggregation = false
// DevMode
DevMode = false
// DefaultDevMode
DefaultDevMode = false
)

// Options contains the configuration options for a client.
Expand Down Expand Up @@ -120,6 +120,7 @@ func resolveOptions(options []Option) (*Options, error) {
ChannelModeBufferSize: DefaultChannelModeBufferSize,
AggregationFlushInterval: DefaultAggregationFlushInterval,
Aggregation: DefaultAggregation,
DevMode: DefaultDevMode,
}

for _, option := range options {
Expand Down
4 changes: 2 additions & 2 deletions statsd/statsd.go
Expand Up @@ -332,10 +332,10 @@ func newWithWriter(w statsdWriter, o *Options, writerName string) (*Client, erro

if o.Telemetry {
if o.TelemetryAddr == "" {
c.telemetry = NewTelemetryClient(&c, writerName, o.DevMode)
c.telemetry = newTelemetryClient(&c, writerName, o.DevMode)
} else {
var err error
c.telemetry, err = NewTelemetryClientWithCustomAddr(&c, writerName, o.DevMode, o.TelemetryAddr, bufferPool)
c.telemetry, err = newTelemetryClientWithCustomAddr(&c, writerName, o.DevMode, o.TelemetryAddr, bufferPool)
if err != nil {
return nil, err
}
Expand Down
6 changes: 3 additions & 3 deletions statsd/telemetry.go
Expand Up @@ -29,21 +29,21 @@ type telemetryClient struct {
devMode bool
}

func NewTelemetryClient(c *Client, transport string, devMode bool) *telemetryClient {
func newTelemetryClient(c *Client, transport string, devMode bool) *telemetryClient {
return &telemetryClient{
c: c,
tags: append(c.Tags, clientTelemetryTag, clientVersionTelemetryTag, "client_transport:"+transport),
devMode: devMode,
}
}

func NewTelemetryClientWithCustomAddr(c *Client, transport string, devMode bool, telemetryAddr string, pool *bufferPool) (*telemetryClient, error) {
func newTelemetryClientWithCustomAddr(c *Client, transport string, devMode bool, telemetryAddr string, pool *bufferPool) (*telemetryClient, error) {
telemetryWriter, _, err := resolveAddr(telemetryAddr)
if err != nil {
return nil, fmt.Errorf("Could not resolve telemetry address: %v", err)
}

t := NewTelemetryClient(c, transport, devMode)
t := newTelemetryClient(c, transport, devMode)

// Creating a custom sender/worker with 1 worker in mutex mode for the
// telemetry that share the same bufferPool.
Expand Down
14 changes: 7 additions & 7 deletions statsd/telemetry_test.go
Expand Up @@ -46,7 +46,7 @@ func TestNewTelemetry(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry(), WithNamespace("test_namespace"))
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", false)
telemetry := newTelemetryClient(client, "test_transport", false)
assert.NotNil(t, telemetry)

assert.Equal(t, telemetry.c, client)
Expand Down Expand Up @@ -95,7 +95,7 @@ func TestTelemetry(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry())
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", false)
telemetry := newTelemetryClient(client, "test_transport", false)
testTelemetry(t, telemetry, basicExpectedMetrics, basicExpectedTags)
}

Expand All @@ -112,7 +112,7 @@ func TestTelemetryDevMode(t *testing.T) {
expectedMetrics[k] = v
}

telemetry := NewTelemetryClient(client, "test_transport", true)
telemetry := newTelemetryClient(client, "test_transport", true)
testTelemetry(t, telemetry, expectedMetrics, basicExpectedTags)
}

Expand All @@ -121,7 +121,7 @@ func TestTelemetryChannelMode(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry(), WithChannelMode())
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", false)
telemetry := newTelemetryClient(client, "test_transport", false)
testTelemetry(t, telemetry, basicExpectedMetrics, basicExpectedTags)
}

Expand All @@ -133,7 +133,7 @@ func TestTelemetryWithGlobalTags(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry(), WithTags([]string{"tag1", "tag2"}))
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", false)
telemetry := newTelemetryClient(client, "test_transport", false)

expectedTelemetryTags := append([]string{"tag1", "tag2", "env:test"}, basicExpectedTags...)
testTelemetry(t, telemetry, basicExpectedMetrics, expectedTelemetryTags)
Expand All @@ -144,7 +144,7 @@ func TestTelemetryWithAggregation(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry(), WithClientSideAggregation())
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", false)
telemetry := newTelemetryClient(client, "test_transport", false)

expectedMetrics := map[string]int64{
"datadog.dogstatsd.client.aggregated_context": 5,
Expand All @@ -161,7 +161,7 @@ func TestTelemetryWithAggregationDevMode(t *testing.T) {
client, err := New("localhost:8125", WithoutTelemetry(), WithClientSideAggregation(), WithDevMode())
require.Nil(t, err)

telemetry := NewTelemetryClient(client, "test_transport", true)
telemetry := newTelemetryClient(client, "test_transport", true)

expectedMetrics := map[string]int64{
"datadog.dogstatsd.client.aggregated_context": 5,
Expand Down

0 comments on commit d78d533

Please sign in to comment.