X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Finterface.c;h=d9a0db3a6aea532976cb6bf12406a50724577afd;hb=a4e8b6a17640e1eaec51801fd0f61aef4cd287d9;hp=df8ffb46c34522ee5696b22a3409a687c37161e4;hpb=24c2f247f6dc5c17b26d715346a380efababb08f;p=collectd.git diff --git a/src/interface.c b/src/interface.c index df8ffb46..d9a0db3a 100644 --- a/src/interface.c +++ b/src/interface.c @@ -31,9 +31,6 @@ #if HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_SOCKET_H -# include -#endif /* One cannot include both. This sucks. */ #if HAVE_LINUX_IF_H @@ -92,6 +89,7 @@ static const char *config_keys[] = static int config_keys_num = 2; static ignorelist_t *ignorelist = NULL; +static _Bool unique_name = 0; #ifdef HAVE_LIBKSTAT #define MAX_NUMIF 256 @@ -116,6 +114,11 @@ static int interface_config (const char *key, const char *value) invert = 0; ignorelist_set_invert (ignorelist, invert); } + else if (strcasecmp (key, "UniqueName") == 0) + { + if (IS_TRUE (value)) + unique_name = 1; + } else { return (-1); @@ -288,6 +291,7 @@ static int interface_read (void) int i; derive_t rx; derive_t tx; + char iname[DATA_MAX_NAME_LEN]; if (kc == NULL) return (-1); @@ -297,6 +301,11 @@ static int interface_read (void) if (kstat_read (kc, ksp[i], NULL) == -1) continue; + if (unique_name) + snprintf(iname, sizeof(iname), "%s_%d_%s", ksp[i]->ks_module, ksp[i]->ks_instance, ksp[i]->ks_name); + else + snprintf(iname, sizeof(iname), "%s", ksp[i]->ks_name); + /* try to get 64bit counters */ rx = get_kstat_value (ksp[i], "rbytes64"); tx = get_kstat_value (ksp[i], "obytes64"); @@ -306,7 +315,7 @@ static int interface_read (void) if (tx == -1LL) tx = get_kstat_value (ksp[i], "obytes"); if ((rx != -1LL) || (tx != -1LL)) - if_submit (ksp[i]->ks_name, "if_octets", rx, tx); + if_submit (iname, "if_octets", rx, tx); /* try to get 64bit counters */ rx = get_kstat_value (ksp[i], "ipackets64"); @@ -317,13 +326,13 @@ static int interface_read (void) if (tx == -1LL) tx = get_kstat_value (ksp[i], "opackets"); if ((rx != -1LL) || (tx != -1LL)) - if_submit (ksp[i]->ks_name, "if_packets", rx, tx); + if_submit (iname, "if_packets", rx, tx); /* no 64bit error counters yet */ rx = get_kstat_value (ksp[i], "ierrors"); tx = get_kstat_value (ksp[i], "oerrors"); if ((rx != -1LL) || (tx != -1LL)) - if_submit (ksp[i]->ks_name, "if_errors", rx, tx); + if_submit (iname, "if_errors", rx, tx); } /* #endif HAVE_LIBKSTAT */