tc plugin simplify config (#17835)
Ilya Mashchenko committed
Jun 6, 2024 at 19:23 UTC
37b1df005ee9f32942a325268c77b28eae255b1a
1 file changed
+27
-14
src/collectors/tc.plugin/plugin_tc.c
+27
-14
@@ -206,41 +206,54 @@ static inline void tc_device_classes_cleanup(struct tc_device *d) {
206
}
207
208
static inline void tc_device_commit(struct tc_device *d) {
209
- static int enable_new_interfaces = -1, enable_bytes = -1, enable_packets = -1, enable_dropped = -1, enable_tokens = -1, enable_ctokens = -1, enabled_all_classes_qdiscs = -1;
209
+ static int enable_tokens = -1, enable_ctokens = -1, enabled_all_classes_qdiscs = -1;
210
211
- if(unlikely(enable_new_interfaces == -1)) {
212
- enable_new_interfaces = config_get_boolean_ondemand("plugin:tc", "enable new interfaces detected at runtime", CONFIG_BOOLEAN_YES);
213
- enable_bytes = config_get_boolean_ondemand("plugin:tc", "enable traffic charts for all interfaces", CONFIG_BOOLEAN_AUTO);
214
- enable_packets = config_get_boolean_ondemand("plugin:tc", "enable packets charts for all interfaces", CONFIG_BOOLEAN_AUTO);
215
- enable_dropped = config_get_boolean_ondemand("plugin:tc", "enable dropped charts for all interfaces", CONFIG_BOOLEAN_AUTO);
211
+ if(unlikely(enabled_all_classes_qdiscs == -1)) {
212
enable_tokens = config_get_boolean_ondemand("plugin:tc", "enable tokens charts for all interfaces", CONFIG_BOOLEAN_NO);
213
enable_ctokens = config_get_boolean_ondemand("plugin:tc", "enable ctokens charts for all interfaces", CONFIG_BOOLEAN_NO);
214
enabled_all_classes_qdiscs = config_get_boolean_ondemand("plugin:tc", "enable show all classes and qdiscs for all interfaces", CONFIG_BOOLEAN_NO);
215
}
216
217
if(unlikely(d->enabled == (char)-1)) {
218
+ d->enabled = CONFIG_BOOLEAN_YES;
219
+ d->enabled_bytes = CONFIG_BOOLEAN_YES;
220
+ d->enabled_packets = CONFIG_BOOLEAN_YES;
221
+ d->enabled_dropped = CONFIG_BOOLEAN_YES;
222
+ d->enabled_tokens = enable_tokens;
223
+ d->enabled_ctokens = enable_ctokens;
224
+ d->enabled_all_classes_qdiscs = enabled_all_classes_qdiscs;
225
+
226
+
227
char var_name[CONFIG_MAX_NAME + 1];
223
- snprintfz(var_name, CONFIG_MAX_NAME, "qos for %s", string2str(d->id));
228
225
- d->enabled = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_new_interfaces);
229
+ snprintfz(var_name, CONFIG_MAX_NAME, "qos for %s", string2str(d->id));
230
+ if (config_exists("plugin:tc", var_name))
231
+ d->enabled = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled);
232
233
snprintfz(var_name, CONFIG_MAX_NAME, "traffic chart for %s", string2str(d->id));
228
- d->enabled_bytes = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_bytes);
234
+ if (config_exists("plugin:tc", var_name))
235
+ d->enabled_bytes = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_bytes);
236
237
snprintfz(var_name, CONFIG_MAX_NAME, "packets chart for %s", string2str(d->id));
231
- d->enabled_packets = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_packets);
238
+ if (config_exists("plugin:tc", var_name))
239
+ d->enabled_packets = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_packets);
240
241
snprintfz(var_name, CONFIG_MAX_NAME, "dropped packets chart for %s", string2str(d->id));
234
- d->enabled_dropped = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_dropped);
242
+ if (config_exists("plugin:tc", var_name))
243
+ d->enabled_dropped = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_dropped);
244
245
snprintfz(var_name, CONFIG_MAX_NAME, "tokens chart for %s", string2str(d->id));
237
- d->enabled_tokens = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_tokens);
246
+ if (config_exists("plugin:tc", var_name))
247
+ d->enabled_tokens = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_tokens);
248
249
snprintfz(var_name, CONFIG_MAX_NAME, "ctokens chart for %s", string2str(d->id));
240
- d->enabled_ctokens = (char)config_get_boolean_ondemand("plugin:tc", var_name, enable_ctokens);
250
+ if (config_exists("plugin:tc", var_name))
251
+ d->enabled_ctokens = (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_ctokens);
252
253
snprintfz(var_name, CONFIG_MAX_NAME, "show all classes for %s", string2str(d->id));
243
- d->enabled_all_classes_qdiscs = (char)config_get_boolean_ondemand("plugin:tc", var_name, enabled_all_classes_qdiscs);
254
+ if (config_exists("plugin:tc", var_name))
255
+ d->enabled_all_classes_qdiscs =
256
+ (char)config_get_boolean_ondemand("plugin:tc", var_name, d->enabled_all_classes_qdiscs);
257
}
258
259
// we only need to add leaf classes