X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftape.c;h=5e01f0d8a963876549c47e56f3337b0b72888829;hb=d4a0ba8ef40bbdd52be4ad73d7064171aeed155e;hp=e0b8b51199bd0ff948764d29a283d65b5a9abb62;hpb=cb7fed8bf0af2646dfcb32844933398c28e39be5;p=collectd.git diff --git a/src/tape.c b/src/tape.c index e0b8b511..5e01f0d8 100644 --- a/src/tape.c +++ b/src/tape.c @@ -30,52 +30,6 @@ # define TAPE_HAVE_READ 0 #endif -/* 2^34 = 17179869184 = ~17.2GByte/s */ -static data_source_t octets_dsrc[2] = -{ - {"read", DS_TYPE_COUNTER, 0, 17179869183.0}, - {"write", DS_TYPE_COUNTER, 0, 17179869183.0} -}; - -static data_set_t octets_ds = -{ - "tape_octets", 2, octets_dsrc -}; - -static data_source_t operations_dsrc[2] = -{ - {"read", DS_TYPE_COUNTER, 0, 4294967295.0}, - {"write", DS_TYPE_COUNTER, 0, 4294967295.0} -}; - -static data_set_t operations_ds = -{ - "tape_ops", 2, operations_dsrc -}; - -static data_source_t merged_dsrc[2] = -{ - {"read", DS_TYPE_COUNTER, 0, 4294967295.0}, - {"write", DS_TYPE_COUNTER, 0, 4294967295.0} -}; - -static data_set_t merged_ds = -{ - "tape_merged", 2, merged_dsrc -}; - -/* max is 1000000us per second. */ -static data_source_t time_dsrc[2] = -{ - {"read", DS_TYPE_COUNTER, 0, 1000000.0}, - {"write", DS_TYPE_COUNTER, 0, 1000000.0} -}; - -static data_set_t time_ds = -{ - "tape_time", 2, time_dsrc -}; - #if TAPE_HAVE_READ #if defined(HAVE_LIBKSTAT) #define MAX_NUMTAPE 256 @@ -122,7 +76,7 @@ static void tape_submit (const char *plugin_instance, vl.values = values; vl.values_len = 2; vl.time = time (NULL); - strcpy (vl.host, hostname); + strcpy (vl.host, hostname_g); strcpy (vl.plugin, "tape"); strncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance)); @@ -134,6 +88,23 @@ static int tape_read (void) { #if defined(HAVE_LIBKSTAT) +# if HAVE_KSTAT_IO_T_WRITES && HAVE_KSTAT_IO_T_NWRITES && HAVE_KSTAT_IO_T_WTIME +# define KIO_ROCTETS reads +# define KIO_WOCTETS writes +# define KIO_ROPS nreads +# define KIO_WOPS nwrites +# define KIO_RTIME rtime +# define KIO_WTIME wtime +# elif HAVE_KSTAT_IO_T_NWRITTEN && HAVE_KSTAT_IO_T_WRITES && HAVE_KSTAT_IO_T_WTIME +# define KIO_ROCTETS nread +# define KIO_WOCTETS nwritten +# define KIO_ROPS reads +# define KIO_WOPS writes +# define KIO_RTIME rtime +# define KIO_WTIME wtime +# else +# error "kstat_io_t does not have the required members" +# endif static kstat_io_t kio; int i; @@ -150,10 +121,13 @@ static int tape_read (void) if (strncmp (ksp[i]->ks_class, "tape", 4) == 0) { - tape_submit (ksp[i]->ks_name, "tape_octets", kio.reads, kio.writes); - tape_submit (ksp[i]->ks_name, "tape_ops", kio.nreads, kio.nwrites); + tape_submit (ksp[i]->ks_name, "tape_octets", + kio.KIO_ROCTETS, kio.KIO_WOCTETS); + tape_submit (ksp[i]->ks_name, "tape_ops", + kio.KIO_ROPS, kio.KIO_WOPS); /* FIXME: Convert this to microseconds if necessary */ - tape_submit (ksp[i]->ks_name, "tape_time", kio.rtime, kio.wtime); + tape_submit (ksp[i]->ks_name, "tape_time", + kio.KIO_RTIME, kio.KIO_WTIME); } } #endif /* defined(HAVE_LIBKSTAT) */ @@ -164,11 +138,6 @@ static int tape_read (void) void module_register (void) { - plugin_register_data_set (&octets_ds); - plugin_register_data_set (&operations_ds); - plugin_register_data_set (&merged_ds); - plugin_register_data_set (&time_ds); - #if TAPE_HAVE_READ plugin_register_init ("tape", tape_init); plugin_register_read ("tape", tape_read);