@@ -20,6 +20,7 @@ import (
2020
2121 "github.com/elastic/elastic-agent-libs/mapstr"
2222 "github.com/elastic/elastic-agent/internal/pkg/agent/application/info"
23+ "github.com/elastic/elastic-agent/internal/pkg/config"
2324 monitoringcfg "github.com/elastic/elastic-agent/internal/pkg/core/monitoring/config"
2425 "github.com/elastic/elastic-agent/pkg/component"
2526)
@@ -851,3 +852,29 @@ type AddFields struct {
851852 Fields Fields `json:"fields"`
852853 Target string `json:"target"`
853854}
855+
856+ // This test ensures if any field under [agent.monitoring] is unset,
857+ // it falls back to the default value defined in monitoringCfg.DefaultConfig()
858+ func TestMonitorReload (t * testing.T ) {
859+ // set log and metric monitoring to false
860+ monitorcfg := monitoringcfg .DefaultConfig ()
861+ monitorcfg .MonitorLogs = false
862+ monitorcfg .MonitorMetrics = false
863+
864+ beatsMonitor := New (true , "" , monitorcfg , nil )
865+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , false )
866+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , false )
867+
868+ // unset logs and metrics
869+ agentConfig := `
870+ agent.monitoring:
871+ enabled: true
872+ `
873+ conf := config .MustNewConfigFrom (agentConfig )
874+ // Reload will set unset fields to default
875+ err := beatsMonitor .Reload (conf )
876+ require .NoError (t , err )
877+
878+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , true )
879+ assert .Equal (t , beatsMonitor .config .C .MonitorMetrics , true )
880+ }
0 commit comments