Skip to content

Commit 874edae

Browse files
committed
Add windows event filters usage to Agent metrics
1 parent 94fcd20 commit 874edae

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

extension/agenthealth/handler/useragent/useragent.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package useragent
66
import (
77
"fmt"
88
"os"
9+
"reflect"
910
"sort"
1011
"strings"
1112
"sync"
@@ -33,6 +34,9 @@ const (
3334
flagEnhancedContainerInsights = "enhanced_container_insights"
3435
flagSELinux = "selinux"
3536
flagROSA = "rosa"
37+
flagWindowsEventIDs = "windows_event_ids"
38+
flagWindowsEventFilters = "windows_event_filters"
39+
flagWindowsEventLevels = "windows_event_levels"
3640
separator = " "
3741

3842
typeInputs = "inputs"
@@ -74,6 +78,35 @@ var _ UserAgent = (*userAgent)(nil)
7478
func (ua *userAgent) SetComponents(otelCfg *otelcol.Config, telegrafCfg *telegraf.Config) {
7579
for _, input := range telegrafCfg.Inputs {
7680
ua.inputs.Add(input.Config.Name)
81+
82+
if input.Config.Name == "windows_event_log" {
83+
pluginValue := reflect.ValueOf(input.Input)
84+
if pluginValue.Kind() == reflect.Ptr {
85+
pluginValue = pluginValue.Elem()
86+
}
87+
88+
eventsField := pluginValue.FieldByName("Events")
89+
if eventsField.IsValid() && eventsField.Kind() == reflect.Slice {
90+
for i := 0; i < eventsField.Len(); i++ {
91+
eventConfig := eventsField.Index(i)
92+
93+
// Add event_ids status
94+
if eventIDsField := eventConfig.FieldByName("EventIDs"); eventIDsField.IsValid() && eventIDsField.Len() > 0 {
95+
ua.inputs.Add(flagWindowsEventIDs)
96+
}
97+
98+
// Add filters status
99+
if filtersField := eventConfig.FieldByName("Filters"); filtersField.IsValid() && filtersField.Len() > 0 {
100+
ua.inputs.Add(flagWindowsEventFilters)
101+
}
102+
103+
// Add event levesls status
104+
if levelsField := eventConfig.FieldByName("Levels"); levelsField.IsValid() && levelsField.Len() > 0 {
105+
ua.inputs.Add(flagWindowsEventLevels)
106+
}
107+
}
108+
}
109+
}
77110
}
78111
for _, output := range telegrafCfg.Outputs {
79112
ua.outputs.Add(output.Config.Name)

0 commit comments

Comments
 (0)