diff --git a/senders/client_factory.go b/senders/client_factory.go index 266b35e..9d2eb87 100644 --- a/senders/client_factory.go +++ b/senders/client_factory.go @@ -2,11 +2,12 @@ package senders import ( "fmt" - "github.com/wavefronthq/wavefront-sdk-go/internal" "net/url" "os" "strconv" "strings" + + "github.com/wavefronthq/wavefront-sdk-go/internal" ) const ( @@ -44,6 +45,18 @@ type configuration struct { SDKMetricsTags map[string]string } +func (c *configuration) Direct() bool { + return c.Token != "" +} + +func (c *configuration) MetricPrefix() string { + result := "~sdk.go.core.sender.proxy" + if c.Direct() { + result = "~sdk.go.core.sender.direct" + } + return result +} + func (c *configuration) setDefaultPort(port int) { c.MetricsPort = port c.TracesPort = port @@ -80,11 +93,11 @@ func CreateConfig(wfURL string, setters ...Option) (*configuration, error) { switch strings.ToLower(u.Scheme) { case "http": - if cfg.Token != "" { + if cfg.Direct() { cfg.setDefaultPort(80) } case "https": - if cfg.Token != "" { + if cfg.Direct() { cfg.setDefaultPort(443) } default: @@ -114,7 +127,7 @@ func newWavefrontClient(cfg *configuration) (Sender, error) { sender := &wavefrontSender{ defaultSource: internal.GetHostname("wavefront_direct_sender"), - proxy: len(cfg.Token) == 0, + proxy: !cfg.Direct(), } sender.initializeInternalMetrics(cfg) sender.pointHandler = newLineHandler(metricsReporter, cfg, internal.MetricFormat, "points", sender.internalRegistry) @@ -130,7 +143,7 @@ func newWavefrontClient(cfg *configuration) (Sender, error) { func (sender *wavefrontSender) initializeInternalMetrics(cfg *configuration) { var setters []internal.RegistryOption - setters = append(setters, internal.SetPrefix("~sdk.go.core.sender.direct")) + setters = append(setters, internal.SetPrefix(cfg.MetricPrefix())) setters = append(setters, internal.SetTag("pid", strconv.Itoa(os.Getpid()))) for key, value := range cfg.SDKMetricsTags { diff --git a/senders/client_factory_test.go b/senders/client_factory_test.go index bf0f87b..4063bac 100644 --- a/senders/client_factory_test.go +++ b/senders/client_factory_test.go @@ -31,6 +31,19 @@ func TestDefaultPortsProxy(t *testing.T) { assert.Equal(t, 30001, cfg.TracesPort) } +func TestMetricPrefixProxy(t *testing.T) { + cfg, err := senders.CreateConfig("http://localhost") + require.NoError(t, err) + assert.False(t, cfg.Direct()) + assert.Equal(t, "~sdk.go.core.sender.proxy", cfg.MetricPrefix()) +} + +func TestMetricPrefixDirect(t *testing.T) { + cfg, err := senders.CreateConfig("http://11111111-2222-3333-4444-555555555555@localhost") + require.NoError(t, err) + assert.True(t, cfg.Direct()) + assert.Equal(t, "~sdk.go.core.sender.direct", cfg.MetricPrefix()) +} func TestDefaultPortsDIHttp(t *testing.T) { cfg, err := senders.CreateConfig("http://11111111-2222-3333-4444-555555555555@localhost") require.NoError(t, err) diff --git a/version/version.go b/version/version.go index 4d9ad48..5153d99 100644 --- a/version/version.go +++ b/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "0.9.10" +const Version = "0.10.2"