@@ -64,18 +64,17 @@ def check(self, instance):
64
64
self ._process_services (wmi_sampler , services , tags )
65
65
66
66
def _process_services (self , wmi_sampler , services , tags ):
67
- expected_services = set ( services )
67
+ collected_services_by_names = { sc [ 'Name' ]. lower (): sc for sc in wmi_sampler }
68
68
69
- for wmi_obj in wmi_sampler :
70
- service = wmi_obj ['Name' ]
71
- if service not in services :
72
- continue
69
+ for service in services :
70
+ service_lower = service .lower ()
71
+ if service_lower in collected_services_by_names :
72
+ wmi_obj = collected_services_by_names [service_lower ]
73
+ sc_name = wmi_obj ['Name' ]
74
+ status = self .STATE_TO_VALUE .get (wmi_obj ["state" ], AgentCheck .UNKNOWN )
75
+ self .service_check ("windows_service.state" , status ,
76
+ tags = tags + ['service:{0}' .format (sc_name )])
73
77
74
- status = self .STATE_TO_VALUE .get (wmi_obj ["state" ], AgentCheck .UNKNOWN )
75
- self .service_check ("windows_service.state" , status ,
76
- tags = tags + ['service:{0}' .format (service )])
77
- expected_services .remove (service )
78
-
79
- for service in expected_services :
80
- self .service_check ("windows_service.state" , AgentCheck .CRITICAL ,
78
+ else :
79
+ self .service_check ("windows_service.state" , AgentCheck .CRITICAL ,
81
80
tags = tags + ['service:{0}' .format (service )])
0 commit comments