proc_net_dev: don't create runtime device config by default (#16501)
Ilya Mashchenko committed
Nov 29, 2023 at 22:51 UTC
9682f0a43a2cd67996f9bf9143a1de6cedca378a
1 file changed
+56
-32
collectors/proc.plugin/proc_net_dev.c
+56
-32
@@ -366,10 +366,6 @@ static void netdev_free_chart_strings(struct netdev *d) {
366
}
367
368
static void netdev_free(struct netdev *d) {
369
- char buf[FILENAME_MAX + 1];
370
- snprintfz(buf, FILENAME_MAX, "plugin:proc:/proc/net/dev:%s", d->name);
371
- config_section_destroy(buf);
372
-
369
netdev_charts_release(d);
370
netdev_free_chart_strings(d);
371
rrdlabels_destroy(d->chart_labels);
@@ -1152,10 +1148,10 @@ int do_proc_net_dev(int update_every, usec_t dt) {
1148
if(d->enabled)
1149
d->enabled = !simple_pattern_matches(disabled_list, d->name);
1150
1155
- char buffer[FILENAME_MAX + 1];
1156
- snprintfz(buffer, FILENAME_MAX, path_to_sys_devices_virtual_net, d->name);
1151
+ char buf[FILENAME_MAX + 1];
1152
+ snprintfz(buf, FILENAME_MAX, path_to_sys_devices_virtual_net, d->name);
1153
1158
- d->virtual = likely(access(buffer, R_OK) == 0) ? 1 : 0;
1154
+ d->virtual = likely(access(buf, R_OK) == 0) ? 1 : 0;
1155
1156
// At least on Proxmox inside LXC: eth0 is virtual.
1157
// Virtual interfaces are not taken into account in system.net calculations
@@ -1171,41 +1167,69 @@ int do_proc_net_dev(int update_every, usec_t dt) {
1167
1168
if(likely(!d->virtual)) {
1169
// set the filename to get the interface speed
1174
- snprintfz(buffer, FILENAME_MAX, path_to_sys_class_net_speed, d->name);
1175
- d->filename_speed = strdupz(buffer);
1170
+ snprintfz(buf, FILENAME_MAX, path_to_sys_class_net_speed, d->name);
1171
+ d->filename_speed = strdupz(buf);
1172
1177
- snprintfz(buffer, FILENAME_MAX, path_to_sys_class_net_duplex, d->name);
1178
- d->filename_duplex = strdupz(buffer);
1173
+ snprintfz(buf, FILENAME_MAX, path_to_sys_class_net_duplex, d->name);
1174
+ d->filename_duplex = strdupz(buf);
1175
}
1176
1181
- snprintfz(buffer, FILENAME_MAX, path_to_sys_class_net_operstate, d->name);
1182
- d->filename_operstate = strdupz(buffer);
1177
+ snprintfz(buf, FILENAME_MAX, path_to_sys_class_net_operstate, d->name);
1178
+ d->filename_operstate = strdupz(buf);
1179
+
1180
+ snprintfz(buf, FILENAME_MAX, path_to_sys_class_net_carrier, d->name);
1181
+ d->filename_carrier = strdupz(buf);
1182
1184
- snprintfz(buffer, FILENAME_MAX, path_to_sys_class_net_carrier, d->name);
1185
- d->filename_carrier = strdupz(buffer);
1183
+ snprintfz(buf, FILENAME_MAX, path_to_sys_class_net_mtu, d->name);
1184
+ d->filename_mtu = strdupz(buf);
1185
1187
- snprintfz(buffer, FILENAME_MAX, path_to_sys_class_net_mtu, d->name);
1188
- d->filename_mtu = strdupz(buffer);
1186
+ snprintfz(buf, FILENAME_MAX, "plugin:proc:/proc/net/dev:%s", d->name);
1187
1190
- snprintfz(buffer, FILENAME_MAX, "plugin:proc:/proc/net/dev:%s", d->name);
1191
- d->enabled = config_get_boolean_ondemand(buffer, "enabled", d->enabled);
1192
- d->virtual = config_get_boolean(buffer, "virtual", d->virtual);
1188
+ if (config_exists(buf, "enabled"))
1189
+ d->enabled = config_get_boolean_ondemand(buf, "enabled", d->enabled);
1190
+ if (config_exists(buf, "virtual"))
1191
+ d->virtual = config_get_boolean(buf, "virtual", d->virtual);
1192
1193
if(d->enabled == CONFIG_BOOLEAN_NO)
1194
continue;
1195
1197
- d->do_bandwidth = config_get_boolean_ondemand(buffer, "bandwidth", do_bandwidth);
1198
- d->do_packets = config_get_boolean_ondemand(buffer, "packets", do_packets);
1199
- d->do_errors = config_get_boolean_ondemand(buffer, "errors", do_errors);
1200
- d->do_drops = config_get_boolean_ondemand(buffer, "drops", do_drops);
1201
- d->do_fifo = config_get_boolean_ondemand(buffer, "fifo", do_fifo);
1202
- d->do_compressed = config_get_boolean_ondemand(buffer, "compressed", do_compressed);
1203
- d->do_events = config_get_boolean_ondemand(buffer, "events", do_events);
1204
- d->do_speed = config_get_boolean_ondemand(buffer, "speed", do_speed);
1205
- d->do_duplex = config_get_boolean_ondemand(buffer, "duplex", do_duplex);
1206
- d->do_operstate = config_get_boolean_ondemand(buffer, "operstate", do_operstate);
1207
- d->do_carrier = config_get_boolean_ondemand(buffer, "carrier", do_carrier);
1208
- d->do_mtu = config_get_boolean_ondemand(buffer, "mtu", do_mtu);
1196
+ d->do_bandwidth = do_bandwidth;
1197
+ d->do_packets = do_packets;
1198
+ d->do_errors = do_errors;
1199
+ d->do_drops = do_drops;
1200
+ d->do_fifo = do_fifo;
1201
+ d->do_compressed = do_compressed;
1202
+ d->do_events = do_events;
1203
+ d->do_speed = do_speed;
1204
+ d->do_duplex = do_duplex;
1205
+ d->do_operstate = do_operstate;
1206
+ d->do_carrier = do_carrier;
1207
+ d->do_mtu = do_mtu;
1208
+
1209
+ if (config_exists(buf, "bandwidth"))
1210
+ d->do_bandwidth = config_get_boolean_ondemand(buf, "bandwidth", do_bandwidth);
1211
+ if (config_exists(buf, "packets"))
1212
+ d->do_packets = config_get_boolean_ondemand(buf, "packets", do_packets);
1213
+ if (config_exists(buf, "errors"))
1214
+ d->do_errors = config_get_boolean_ondemand(buf, "errors", do_errors);
1215
+ if (config_exists(buf, "drops"))
1216
+ d->do_drops = config_get_boolean_ondemand(buf, "drops", do_drops);
1217
+ if (config_exists(buf, "fifo"))
1218
+ d->do_fifo = config_get_boolean_ondemand(buf, "fifo", do_fifo);
1219
+ if (config_exists(buf, "compressed"))
1220
+ d->do_compressed = config_get_boolean_ondemand(buf, "compressed", do_compressed);
1221
+ if (config_exists(buf, "events"))
1222
+ d->do_events = config_get_boolean_ondemand(buf, "events", do_events);
1223
+ if (config_exists(buf, "speed"))
1224
+ d->do_speed = config_get_boolean_ondemand(buf, "speed", do_speed);
1225
+ if (config_exists(buf, "duplex"))
1226
+ d->do_duplex = config_get_boolean_ondemand(buf, "duplex", do_duplex);
1227
+ if (config_exists(buf, "operstate"))
1228
+ d->do_operstate = config_get_boolean_ondemand(buf, "operstate", do_operstate);
1229
+ if (config_exists(buf, "carrier"))
1230
+ d->do_carrier = config_get_boolean_ondemand(buf, "carrier", do_carrier);
1231
+ if (config_exists(buf, "mtu"))
1232
+ d->do_mtu = config_get_boolean_ondemand(buf, "mtu", do_mtu);
1233
}
1234
1235
if(unlikely(!d->enabled))