@cryptotaxi247 / netdata-1 / commits / 593026cb1

fix system.net when inside lxc (#16364)

Ilya Mashchenko committed Nov 9, 2023 at 11:57 UTC 593026cb136cf4b3e4b6b0b5a5e9f94b9a77aa47
1 file changed +11 -7
collectors/proc.plugin/proc_net_dev.c
+11 -7
@@ -1149,16 +1149,20 @@ int do_proc_net_dev(int update_every, usec_t dt) {
1149 d->enabled = !simple_pattern_matches(disabled_list, d->name);
1150
1151 char buffer[FILENAME_MAX + 1];
1152 -
1152 snprintfz(buffer, FILENAME_MAX, path_to_sys_devices_virtual_net, d->name);
1154 - if (likely(access(buffer, R_OK) == 0)) {
1155 - d->virtual = 1;
1156 - rrdlabels_add(d->chart_labels, "interface_type", "virtual", RRDLABEL_SRC_AUTO);
1157 - }
1158 - else {
1153 +
1154 + d->virtual = likely(access(buffer, 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
1158 + if (inside_lxc_container && d->virtual && strncmp(d->name, "eth", 3) == 0)
1159 d->virtual = 0;
1160 +
1161 + if (d->virtual)
1162 + rrdlabels_add(d->chart_labels, "interface_type", "virtual", RRDLABEL_SRC_AUTO);
1163 + else
1164 rrdlabels_add(d->chart_labels, "interface_type", "real", RRDLABEL_SRC_AUTO);
1161 - }
1165 +
1166 rrdlabels_add(d->chart_labels, "device", name, RRDLABEL_SRC_AUTO);
1167
1168 if(likely(!d->virtual)) {