@@ -22,6 +22,7 @@ import (
2222
2323 "github.com/elastic/elastic-agent-libs/mapstr"
2424 "github.com/elastic/elastic-agent/internal/pkg/agent/application/info"
25+ "github.com/elastic/elastic-agent/internal/pkg/config"
2526 monitoringcfg "github.com/elastic/elastic-agent/internal/pkg/core/monitoring/config"
2627 "github.com/elastic/elastic-agent/pkg/component"
2728)
@@ -1064,3 +1065,29 @@ type AddFields struct {
10641065 Fields Fields `json:"fields"`
10651066 Target string `json:"target"`
10661067}
1068+
1069+ // This test ensures if any field under [agent.monitoring] is unset,
1070+ // it falls back to the default value defined in monitoringCfg.DefaultConfig()
1071+ func TestMonitorReload (t * testing.T ) {
1072+ // set log and metric monitoring to false
1073+ monitorcfg := monitoringcfg .DefaultConfig ()
1074+ monitorcfg .MonitorLogs = false
1075+ monitorcfg .MonitorMetrics = false
1076+
1077+ beatsMonitor := New (true , "" , monitorcfg , nil )
1078+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , false )
1079+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , false )
1080+
1081+ // unset logs and metrics
1082+ agentConfig := `
1083+ agent.monitoring:
1084+ enabled: true
1085+ `
1086+ conf := config .MustNewConfigFrom (agentConfig )
1087+ // Reload will set unset fields to default
1088+ err := beatsMonitor .Reload (conf )
1089+ require .NoError (t , err )
1090+
1091+ assert .Equal (t , beatsMonitor .config .C .MonitorLogs , true )
1092+ assert .Equal (t , beatsMonitor .config .C .MonitorMetrics , true )
1093+ }
0 commit comments