Skip to content

Commit

Permalink
Fix using empty string as the namespace prefix in azure_monitor outpu…
Browse files Browse the repository at this point in the history
…t plugin (influxdata#8282)

* Fix using empty string as the namespace prefix

Fixes influxdata#8256

* Test using empty string as the namespace prefix
  • Loading branch information
simnv authored Oct 20, 2020
1 parent 589ed53 commit 8df781c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
21 changes: 21 additions & 0 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/influxdata/telegraf/plugins/inputs/http_listener_v2"
"github.com/influxdata/telegraf/plugins/inputs/memcached"
"github.com/influxdata/telegraf/plugins/inputs/procstat"
"github.com/influxdata/telegraf/plugins/outputs/azure_monitor"
httpOut "github.com/influxdata/telegraf/plugins/outputs/http"
"github.com/influxdata/telegraf/plugins/parsers"
"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -257,3 +258,23 @@ func TestConfig_BadOrdering(t *testing.T) {
require.Error(t, err, "bad ordering")
assert.Equal(t, "Error loading config file ./testdata/non_slice_slice.toml: Error parsing http array, line 4: cannot unmarshal TOML array into string (need slice)", err.Error())
}

func TestConfig_AzureMonitorNamespacePrefix(t *testing.T) {
// #8256 Cannot use empty string as the namespace prefix
c := NewConfig()
defaultPrefixConfig := `[[outputs.azure_monitor]]`
err := c.LoadConfigData([]byte(defaultPrefixConfig))
assert.NoError(t, err)
azureMonitor, ok := c.Outputs[0].Output.(*azure_monitor.AzureMonitor)
assert.Equal(t, "Telegraf/", azureMonitor.NamespacePrefix)
assert.Equal(t, true, ok)

c = NewConfig()
customPrefixConfig := `[[outputs.azure_monitor]]
namespace_prefix = ""`
err = c.LoadConfigData([]byte(customPrefixConfig))
assert.NoError(t, err)
azureMonitor, ok = c.Outputs[0].Output.(*azure_monitor.AzureMonitor)
assert.Equal(t, "", azureMonitor.NamespacePrefix)
assert.Equal(t, true, ok)
}
7 changes: 2 additions & 5 deletions plugins/outputs/azure_monitor/azure_monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,10 +155,6 @@ func (a *AzureMonitor) Connect() error {
Timeout: a.Timeout.Duration,
}

if a.NamespacePrefix == "" {
a.NamespacePrefix = defaultNamespacePrefix
}

var err error
var region string
var resourceID string
Expand Down Expand Up @@ -646,7 +642,8 @@ func (a *AzureMonitor) Reset() {
func init() {
outputs.Add("azure_monitor", func() telegraf.Output {
return &AzureMonitor{
timeFunc: time.Now,
timeFunc: time.Now,
NamespacePrefix: defaultNamespacePrefix,
}
})
}

0 comments on commit 8df781c

Please sign in to comment.