fix(inputs.mongodb): actually start plugin correctly (#11849)

This commit is contained in:
Joshua Powers 2022-09-21 13:05:01 -06:00 committed by GitHub
parent d091a59e66
commit f899eb5cde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 9 deletions

View File

@ -94,7 +94,7 @@ func (m *MongoDB) Init() error {
}
// Start runs after init and setup mongodb connections
func (m *MongoDB) Start() error {
func (m *MongoDB) Start(telegraf.Accumulator) error {
for _, connURL := range m.Servers {
if !strings.HasPrefix(connURL, "mongodb://") && !strings.HasPrefix(connURL, "mongodb+srv://") {
// Preserve backwards compatibility for hostnames without a
@ -144,6 +144,8 @@ func (m *MongoDB) Start() error {
return nil
}
func (m *MongoDB) Stop() {}
// Reads stats from all configured servers accumulates stats.
// Returns one of the errors encountered while gather stats (if any).
func (m *MongoDB) Gather(acc telegraf.Accumulator) error {

View File

@ -47,7 +47,8 @@ func TestGetDefaultTagsIntegration(t *testing.T) {
}
err := m.Init()
require.NoError(t, err)
err = m.Start()
var acc testutil.Accumulator
err = m.Start(&acc)
require.NoError(t, err)
server := m.clients[0]
@ -84,12 +85,12 @@ func TestAddDefaultStatsIntegration(t *testing.T) {
}
err := m.Init()
require.NoError(t, err)
err = m.Start()
var acc testutil.Accumulator
err = m.Start(&acc)
require.NoError(t, err)
server := m.clients[0]
var acc testutil.Accumulator
err = server.gatherData(&acc, false, true, true, true, []string{"local"})
require.NoError(t, err)
@ -115,10 +116,10 @@ func TestSkipBehaviorIntegration(t *testing.T) {
m.DisconnectedServersBehavior = "skip"
err := m.Init()
require.NoError(t, err)
err = m.Start()
var acc testutil.Accumulator
err = m.Start(&acc)
require.NoError(t, err)
var acc testutil.Accumulator
err = m.Gather(&acc)
require.NoError(t, err)
require.NotContains(t, m.Log.(*testutil.CaptureLogger).LastError, "failed to gather data: ")
@ -136,16 +137,16 @@ func TestErrorBehaviorIntegration(t *testing.T) {
err := m.Init()
require.NoError(t, err)
err = m.Start()
var acc testutil.Accumulator
err = m.Start(&acc)
require.Error(t, err)
// set to skip to bypass start error
m.DisconnectedServersBehavior = "skip"
err = m.Start()
err = m.Start(&acc)
require.NoError(t, err)
m.DisconnectedServersBehavior = "error"
var acc testutil.Accumulator
err = m.Gather(&acc)
require.NoError(t, err)
require.Contains(t, m.Log.(*testutil.CaptureLogger).LastError, "failed to gather data: ")