Skip to content

Commit 1696cca

Browse files
authored
Fix using empty string as the namespace prefix in azure_monitor output plugin (#8282)
* Fix using empty string as the namespace prefix Fixes #8256 * Test using empty string as the namespace prefix
1 parent e3aa6eb commit 1696cca

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

config/config_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/influxdata/telegraf/plugins/inputs/http_listener_v2"
1313
"github.com/influxdata/telegraf/plugins/inputs/memcached"
1414
"github.com/influxdata/telegraf/plugins/inputs/procstat"
15+
"github.com/influxdata/telegraf/plugins/outputs/azure_monitor"
1516
httpOut "github.com/influxdata/telegraf/plugins/outputs/http"
1617
"github.com/influxdata/telegraf/plugins/parsers"
1718
"github.com/stretchr/testify/assert"
@@ -257,3 +258,23 @@ func TestConfig_BadOrdering(t *testing.T) {
257258
require.Error(t, err, "bad ordering")
258259
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())
259260
}
261+
262+
func TestConfig_AzureMonitorNamespacePrefix(t *testing.T) {
263+
// #8256 Cannot use empty string as the namespace prefix
264+
c := NewConfig()
265+
defaultPrefixConfig := `[[outputs.azure_monitor]]`
266+
err := c.LoadConfigData([]byte(defaultPrefixConfig))
267+
assert.NoError(t, err)
268+
azureMonitor, ok := c.Outputs[0].Output.(*azure_monitor.AzureMonitor)
269+
assert.Equal(t, "Telegraf/", azureMonitor.NamespacePrefix)
270+
assert.Equal(t, true, ok)
271+
272+
c = NewConfig()
273+
customPrefixConfig := `[[outputs.azure_monitor]]
274+
namespace_prefix = ""`
275+
err = c.LoadConfigData([]byte(customPrefixConfig))
276+
assert.NoError(t, err)
277+
azureMonitor, ok = c.Outputs[0].Output.(*azure_monitor.AzureMonitor)
278+
assert.Equal(t, "", azureMonitor.NamespacePrefix)
279+
assert.Equal(t, true, ok)
280+
}

plugins/outputs/azure_monitor/azure_monitor.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,6 @@ func (a *AzureMonitor) Connect() error {
155155
Timeout: a.Timeout.Duration,
156156
}
157157

158-
if a.NamespacePrefix == "" {
159-
a.NamespacePrefix = defaultNamespacePrefix
160-
}
161-
162158
var err error
163159
var region string
164160
var resourceID string
@@ -646,7 +642,8 @@ func (a *AzureMonitor) Reset() {
646642
func init() {
647643
outputs.Add("azure_monitor", func() telegraf.Output {
648644
return &AzureMonitor{
649-
timeFunc: time.Now,
645+
timeFunc: time.Now,
646+
NamespacePrefix: defaultNamespacePrefix,
650647
}
651648
})
652649
}

0 commit comments

Comments
 (0)