@cryptotaxi247 / netdata-1 / commits / c0519e124

Enable services status (windows.plugin) (#20720)

thiagoftsm committed Jul 23, 2025 at 13:49 UTC c0519e124b6bbbb3a1fdc250303e78b561864eaf
4 files changed +14 -12
CMakeLists.txt
+1 -1
@@ -1945,6 +1945,7 @@ set(WINDOWS_PLUGIN_FILES
1945 src/collectors/windows.plugin/GetSystemRAM.c
1946 src/collectors/windows.plugin/GetSystemCPU.c
1947 src/collectors/windows.plugin/GetPowerSupply.c
1948 + src/collectors/windows.plugin/GetServicesStatus.c
1949 src/collectors/windows.plugin/perflib-adcs.c
1950 src/collectors/windows.plugin/perflib-adfs.c
1951 src/collectors/windows.plugin/perflib-rrd.c
@@ -1961,7 +1962,6 @@ set(WINDOWS_PLUGIN_FILES
1962 src/collectors/windows.plugin/perflib-memory.c
1963 src/collectors/windows.plugin/perflib-processes.c
1964 src/collectors/windows.plugin/perflib-web-service.c
1964 - src/collectors/windows.plugin/perflib-services.c
1965 src/collectors/windows.plugin/perflib-hyperv.c
1966 src/collectors/windows.plugin/perflib-exchange.c
1967 src/collectors/windows.plugin/perflib-numa.c
src/collectors/windows.plugin/GetServicesStatus.c renamed
+3 -1
@@ -6,6 +6,7 @@
6 // Service data
7 struct win_service {
8 char *service_name;
9 + DWORD pid;
10
11 RRDSET *st_service_state;
12 RRDDIM *rd_service_state_running;
@@ -105,6 +106,7 @@ static BOOL fill_dictionary_with_content()
106 continue;
107
108 p->ServiceState.current.Data = service->ServiceStatusProcess.dwCurrentState;
109 + p->pid = service->ServiceStatusProcess.dwProcessId;
110 }
111
112 ret = TRUE;
@@ -204,7 +206,7 @@ dict_win_services_charts_cb(const DICTIONARY_ITEM *item __maybe_unused, void *va
206 return 1;
207 }
208
207 -int do_PerflibServices(int update_every, usec_t dt __maybe_unused)
209 +int do_GetServicesStatus(int update_every, usec_t dt __maybe_unused)
210 {
211 #define NETDATA_SERVICE_MAX_TRY (5)
212 static int limit = 0;
src/collectors/windows.plugin/windows_plugin.c
+9 -9
@@ -30,6 +30,11 @@ static struct proc_module {
30 .enabled = CONFIG_BOOLEAN_YES,
31 .update_every = UPDATE_EVERY_MIN,
32 .func = do_GetPowerSupply},
33 + {.name = "PerflibServices",
34 + .dim = "PerflibServices",
35 + .enabled = CONFIG_BOOLEAN_YES,
36 + .update_every = 30 * UPDATE_EVERY_MIN,
37 + .func = do_GetServicesStatus},
38
39 // the same is provided by PerflibProcessor, with more detailed analysis
40 //{.name = "GetSystemCPU", .dim = "GetSystemCPU", .enabled = CONFIG_BOOLEAN_YES,
@@ -74,7 +79,7 @@ static struct proc_module {
79 {.name = "PerflibThermalZone",
80 .dim = "PerflibThermalZone",
81 .enabled = CONFIG_BOOLEAN_NO,
77 - .update_every = 5*UPDATE_EVERY_MIN,
82 + .update_every = 5 * UPDATE_EVERY_MIN,
83 .func = do_PerflibThermalZone},
84
85 {.name = "PerflibWebService",
@@ -111,12 +116,6 @@ static struct proc_module {
116 .update_every = 10 * UPDATE_EVERY_MIN,
117 .func = do_PerflibADFS},
118
114 - {.name = "PerflibServices",
115 - .dim = "PerflibServices",
116 - .enabled = CONFIG_BOOLEAN_NO,
117 - .update_every = 30 * UPDATE_EVERY_MIN,
118 - .func = do_PerflibServices},
119 -
119 {.name = "PerflibExchange",
120 .dim = "PerflibExchange",
121 .enabled = CONFIG_BOOLEAN_YES,
@@ -136,7 +135,7 @@ static struct proc_module {
135 .update_every = UPDATE_EVERY_MIN,
136 .func = do_PerflibASP},
137
139 - // the terminator of this array
138 + // the terminator of this array
139 {.name = NULL, .dim = NULL, .func = NULL}};
140
141 #if WORKER_UTILIZATION_MAX_JOB_TYPES < 36
@@ -214,7 +213,8 @@ void *win_plugin_main(void *ptr)
213 pm->enabled = inicfg_get_boolean(&netdata_config, "plugin:windows", pm->name, pm->enabled);
214 pm->rd = NULL;
215
217 - pm->update_every = (int)inicfg_get_duration_seconds(&netdata_config, buf, "update every", (update_every != pm->update_every)? pm->update_every: update_every);
216 + pm->update_every = (int)inicfg_get_duration_seconds(
217 + &netdata_config, buf, "update every", (update_every != pm->update_every) ? pm->update_every : update_every);
218
219 if (pm->enabled && unlikely(update_every != pm->update_every)) {
220 char tag_name[ND_THREAD_TAG_MAX];
src/collectors/windows.plugin/windows_plugin.h
+1 -1
@@ -24,6 +24,7 @@ int do_GetSystemUptime(int update_every, usec_t dt);
24 int do_GetSystemRAM(int update_every, usec_t dt);
25 int do_GetSystemCPU(int update_every, usec_t dt);
26 int do_GetPowerSupply(int update_every, usec_t dt);
27 +int do_GetServicesStatus(int update_every, usec_t dt);
28
29 // Perflib
30 int do_PerflibStorage(int update_every, usec_t dt);
@@ -40,7 +41,6 @@ int do_PerflibAD(int update_every, usec_t dt);
41 int do_PerflibADCS(int update_every, usec_t dt);
42 int do_PerflibADFS(int update_every, usec_t dt);
43 int do_PerflibHyperV(int update_every, usec_t dt);
43 -int do_PerflibServices(int update_every, usec_t dt);
44 int do_PerflibExchange(int update_every, usec_t dt __maybe_unused);
45 int do_PerflibNUMA(int update_every, usec_t dt __maybe_unused);
46 int do_PerflibASP(int update_every, usec_t dt __maybe_unused);