Various plugins: Convert more plugins to use "derive" instead of "counter".
[collectd.git] / src / nfs.c
index d54c838..f3c636e 100644 (file)
--- a/src/nfs.c
+++ b/src/nfs.c
 #include "common.h"
 #include "plugin.h"
 
-#define MODULE_NAME "nfs"
-
-/* #if defined(KERNEL_LINUX) || defined(HAVE_LIBKSTAT) */
-#if KERNEL_LINUX
-# define NFS_HAVE_READ 1
-#else
-# define NFS_HAVE_READ 0
+#if !KERNEL_LINUX
+# error "No applicable input method."
 #endif
 
 /*
@@ -78,17 +73,6 @@ Number      Procedures  Procedures
 21                      commit
 */
 
-static data_source_t procedure_dsrc[1] =
-{
-       {"value", DS_TYPE_COUNTER, 0, 4294967295.0}
-};
-
-static data_set_t procedure_ds =
-{
-       "nfs_procedure", 1, procedure_dsrc
-};
-
-#if NFS_HAVE_READ
 static const char *nfs2_procedures_names[] =
 {
        "null",
@@ -203,25 +187,24 @@ static void nfs_procedures_submit (const char *plugin_instance,
 
        vl.values = values;
        vl.values_len = 1;
-       vl.time = time (NULL);
-       strcpy (vl.host, hostname_g);
-       strcpy (vl.plugin, "nfs");
-       strncpy (vl.plugin_instance, plugin_instance,
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+       sstrncpy (vl.plugin, "nfs", sizeof (vl.plugin));
+       sstrncpy (vl.plugin_instance, plugin_instance,
                        sizeof (vl.plugin_instance));
+       sstrncpy (vl.type, "nfs_procedure", sizeof (vl.type));
 
        for (i = 0; i < len; i++)
        {
-               values[0].counter = val[i];
-               strncpy (vl.type_instance, names[i],
+               values[0].derive = val[i];
+               sstrncpy (vl.type_instance, names[i],
                                sizeof (vl.type_instance));
                DEBUG ("%s-%s/nfs_procedure-%s = %llu",
                                vl.plugin, vl.plugin_instance,
                                vl.type_instance, val[i]);
-               plugin_dispatch_values ("nfs_procedure", &vl);
+               plugin_dispatch_values (&vl);
        }
 } /* void nfs_procedures_submit */
 
-#if KERNEL_LINUX
 static void nfs_read_stats_file (FILE *fh, char *inst)
 {
        char buffer[BUFSIZE];
@@ -257,9 +240,8 @@ static void nfs_read_stats_file (FILE *fh, char *inst)
                                continue;
                        }
 
-                       snprintf (plugin_instance, sizeof (plugin_instance),
+                       ssnprintf (plugin_instance, sizeof (plugin_instance),
                                        "v2%s", inst);
-                       plugin_instance[DATA_MAX_NAME_LEN - 1] = '\0';
 
                        values = (unsigned long long *) malloc (nfs2_procedures_names_num * sizeof (unsigned long long));
                        if (values == NULL)
@@ -294,9 +276,8 @@ static void nfs_read_stats_file (FILE *fh, char *inst)
                                continue;
                        }
 
-                       snprintf (plugin_instance, sizeof (plugin_instance),
+                       ssnprintf (plugin_instance, sizeof (plugin_instance),
                                        "v3%s", inst);
-                       plugin_instance[DATA_MAX_NAME_LEN - 1] = '\0';
 
                        values = (unsigned long long *) malloc (nfs3_procedures_names_num * sizeof (unsigned long long));
                        if (values == NULL)
@@ -319,7 +300,6 @@ static void nfs_read_stats_file (FILE *fh, char *inst)
                }
        } /* while (fgets (buffer, BUFSIZE, fh) != NULL) */
 } /* void nfs_read_stats_file */
-#endif /* defined(KERNEL_LINUX) */
 #undef BUFSIZE
 
 #if HAVE_LIBKSTAT && 0
@@ -352,7 +332,6 @@ static void nfs2_read_kstat (kstat_t *ksp, char *inst)
 
 static int nfs_read (void)
 {
-#if KERNEL_LINUX
        FILE *fh;
 
        if ((fh = fopen ("/proc/net/rpc/nfs", "r")) != NULL)
@@ -367,9 +346,7 @@ static int nfs_read (void)
                fclose (fh);
        }
 
-/* #endif defined(KERNEL_LINUX) */
-
-#elif HAVE_LIBKSTAT && 0
+#if HAVE_LIBKSTAT && 0
        if (nfs2_ksp_client != NULL)
                nfs2_read_kstat (nfs2_ksp_client, "client");
        if (nfs2_ksp_server != NULL)
@@ -378,15 +355,8 @@ static int nfs_read (void)
 
        return (0);
 }
-#endif /* NFS_HAVE_READ */
 
 void module_register (void)
 {
-       plugin_register_data_set (&procedure_ds);
-
-#if NFS_HAVE_READ
        plugin_register_read ("nfs", nfs_read);
-#endif
-}
-
-#undef MODULE_NAME
+} /* void module_register */