From: Yoga Ramalingam Date: Fri, 4 Dec 2015 21:08:54 +0000 (-0500) Subject: interface plugin: Fix duplicate interface metrics for Solaris. X-Git-Tag: collectd-5.6.0~517 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=2b9c9acf48c81dba1ea69c84bc282b5a926759a0;p=collectd.git interface plugin: Fix duplicate interface metrics for Solaris. Issue: #1416 --- diff --git a/src/interface.c b/src/interface.c index e17711e3..c3f5d40a 100644 --- a/src/interface.c +++ b/src/interface.c @@ -285,6 +285,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); @@ -294,6 +295,8 @@ static int interface_read (void) if (kstat_read (kc, ksp[i], NULL) == -1) continue; + snprintf(iname, sizeof(iname), "%s_%d_%s", ksp[i]->ks_module, ksp[i]->ks_instance, ksp[i]->ks_name); + /* try to get 64bit counters */ rx = get_kstat_value (ksp[i], "rbytes64"); tx = get_kstat_value (ksp[i], "obytes64"); @@ -303,7 +306,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"); @@ -314,13 +317,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 */