8
const char *name;
9
const char *dim;
10
int enabled;
11
+ int update_every;
12
int (*func)(int update_every, usec_t dt);
13
RRDDIM *rd;
14
} win_modules[] = {
15
16
// system metrics
16
- {.name = "GetSystemUptime", .dim = "GetSystemUptime", .enabled = CONFIG_BOOLEAN_YES, .func = do_GetSystemUptime},
17
- {.name = "GetSystemRAM", .dim = "GetSystemRAM", .enabled = CONFIG_BOOLEAN_YES, .func = do_GetSystemRAM},
17
+ {.name = "GetSystemUptime",
18
+ .dim = "GetSystemUptime",
19
+ .enabled = CONFIG_BOOLEAN_YES,
20
+ .update_every = UPDATE_EVERY_MIN,
21
+ .func = do_GetSystemUptime},
22
+ {.name = "GetSystemRAM",
23
+ .dim = "GetSystemRAM",
24
+ .enabled = CONFIG_BOOLEAN_YES,
25
+ .update_every = UPDATE_EVERY_MIN,
26
+ .func = do_GetSystemRAM},
27
28
// the same is provided by PerflibProcessor, with more detailed analysis
20
- //{.name = "GetSystemCPU", .dim = "GetSystemCPU", .enabled = CONFIG_BOOLEAN_YES, .func = do_GetSystemCPU},
29
+ //{.name = "GetSystemCPU", .dim = "GetSystemCPU", .enabled = CONFIG_BOOLEAN_YES,
30
+ // .update_every = UPDATE_EVERY_MIN, .func = do_GetSystemCPU},
31
22
- {.name = "PerflibProcesses", .dim = "PerflibProcesses", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibProcesses},
23
- {.name = "PerflibProcessor", .dim = "PerflibProcessor", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibProcessor},
24
- {.name = "PerflibMemory", .dim = "PerflibMemory", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibMemory},
25
- {.name = "PerflibStorage", .dim = "PerflibStorage", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibStorage},
26
- {.name = "PerflibNetwork", .dim = "PerflibNetwork", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibNetwork},
27
- {.name = "PerflibObjects", .dim = "PerflibObjects", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibObjects},
28
- {.name = "PerflibHyperV", .dim = "PerflibHyperV", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibHyperV},
32
+ {.name = "PerflibProcesses",
33
+ .dim = "PerflibProcesses",
34
+ .enabled = CONFIG_BOOLEAN_YES,
35
+ .update_every = UPDATE_EVERY_MIN,
36
+ .func = do_PerflibProcesses},
37
+ {.name = "PerflibProcessor",
38
+ .dim = "PerflibProcessor",
39
+ .enabled = CONFIG_BOOLEAN_YES,
40
+ .update_every = UPDATE_EVERY_MIN,
41
+ .func = do_PerflibProcessor},
42
+ {.name = "PerflibMemory",
43
+ .dim = "PerflibMemory",
44
+ .enabled = CONFIG_BOOLEAN_YES,
45
+ .update_every = UPDATE_EVERY_MIN,
46
+ .func = do_PerflibMemory},
47
+ {.name = "PerflibStorage",
48
+ .dim = "PerflibStorage",
49
+ .enabled = CONFIG_BOOLEAN_YES,
50
+ .update_every = UPDATE_EVERY_MIN,
51
+ .func = do_PerflibStorage},
52
+ {.name = "PerflibNetwork",
53
+ .dim = "PerflibNetwork",
54
+ .enabled = CONFIG_BOOLEAN_YES,
55
+ .update_every = UPDATE_EVERY_MIN,
56
+ .func = do_PerflibNetwork},
57
+ {.name = "PerflibObjects",
58
+ .dim = "PerflibObjects",
59
+ .enabled = CONFIG_BOOLEAN_YES,
60
+ .update_every = UPDATE_EVERY_MIN,
61
+ .func = do_PerflibObjects},
62
+ {.name = "PerflibHyperV",
63
+ .dim = "PerflibHyperV",
64
+ .enabled = CONFIG_BOOLEAN_YES,
65
+ .update_every = UPDATE_EVERY_MIN,
66
+ .func = do_PerflibHyperV},
67
68
{.name = "PerflibThermalZone",
69
.dim = "PerflibThermalZone",
70
.enabled = CONFIG_BOOLEAN_NO,
71
+ .update_every = UPDATE_EVERY_MIN,
72
.func = do_PerflibThermalZone},
73
74
{.name = "PerflibWebService",
75
.dim = "PerflibWebService",
76
.enabled = CONFIG_BOOLEAN_YES,
77
+ .update_every = UPDATE_EVERY_MIN,
78
.func = do_PerflibWebService},
79
{.name = "PerflibMSSQL", .dim = "PerflibMSSQL", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibMSSQL},
80
81
{.name = "PerflibNetFramework",
82
.dim = "PerflibNetFramework",
83
.enabled = CONFIG_BOOLEAN_YES,
84
+ .update_every = UPDATE_EVERY_MIN,
85
.func = do_PerflibNetFramework},
45
- {.name = "PerflibAD", .dim = "PerflibAD", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibAD},
86
+ {.name = "PerflibAD",
87
+ .dim = "PerflibAD",
88
+ .enabled = CONFIG_BOOLEAN_YES,
89
+ .update_every = UPDATE_EVERY_MIN,
90
+ .func = do_PerflibAD},
91
+
92
+ {.name = "PerflibADCS",
93
+ .dim = "PerflibADCS",
94
+ .enabled = CONFIG_BOOLEAN_YES,
95
+ .update_every = UPDATE_EVERY_MIN,
96
+ .func = do_PerflibADCS},
97
47
- {.name = "PerflibADCS", .dim = "PerflibADCS", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibADCS},
98
+ {.name = "PerflibADFS",
99
+ .dim = "PerflibADFS",
100
+ .enabled = CONFIG_BOOLEAN_YES,
101
+ .update_every = UPDATE_EVERY_MIN,
102
+ .func = do_PerflibADFS},
103
49
- {.name = "PerflibADFS", .dim = "PerflibADFS", .enabled = CONFIG_BOOLEAN_YES, .func = do_PerflibADFS},
104
+ {.name = "PerflibServices",
105
+ .dim = "PerflibServices",
106
+ .enabled = CONFIG_BOOLEAN_NO,
107
+ .update_every = 30 * UPDATE_EVERY_MIN,
108
+ .func = do_PerflibServices},
109
110
// the terminator of this array
111
{.name = NULL, .dim = NULL, .func = NULL}};
145
146
// check the enabled status for each module
147
int i;
148
+ char buf[CONFIG_MAX_NAME + 1];
149
for (i = 0; win_modules[i].name; i++) {
150
struct proc_module *pm = &win_modules[i];
151
152
+ snprintfz(buf, CONFIG_MAX_NAME, "plugin:windows:%s", pm->name);
153
+
154
pm->enabled = inicfg_get_boolean(&netdata_config, "plugin:windows", pm->name, pm->enabled);
155
pm->rd = NULL;
156
157
+ pm->update_every =
158
+ (int)inicfg_get_duration_seconds(&netdata_config, buf, "update every", localhost->rrd_update_every);
159
+
160
worker_register_job_name(i, win_modules[i].dim);
161
}
162
190
191
worker_is_busy(i);
192
lgs[LGS_MODULE_ID] = ND_LOG_FIELD_CB(NDF_MODULE, log_windows_module, pm);
128
- pm->enabled = !pm->func(localhost->rrd_update_every, hb_dt);
193
+ pm->enabled = !pm->func(pm->update_every, hb_dt);
194
lgs[LGS_MODULE_ID] = ND_LOG_FIELD_TXT(NDF_MODULE, PLUGIN_WINDOWS_NAME);
195
}
196
}