other plugins, its documentation has been moved to an own manpage,
L<collectd-snmp(5)>. Please see there for details.
+=head2 Plugin C<swap>
+
+The C<swap plugin> reports the number of bytes currently swapped out and the
+amount of swap space available. The precise metrics being exported depends on
+your operating system.
+
+Options:
+
+=over 4
+
+=item B<ReportBytes> B<false>|B<true>
+
+When enabled, the I<swap I/O> is reported in bytes. When disabled, the default,
+I<swap I/O> is reported in pages. This option is available under Linux only.
+
+=back
+
=head2 Plugin C<syslog>
=over 4
/**
* collectd - src/swap.c
- * Copyright (C) 2005-2009 Florian octo Forster
+ * Copyright (C) 2005-2012 Florian octo Forster
* Copyright (C) 2009 Stefan Völkel
* Copyright (C) 2009 Manuel Sanmartin
*
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#if KERNEL_LINUX
-/* No global variables */
+static derive_t pagesize;
+static _Bool report_bytes = 0;
/* #endif KERNEL_LINUX */
#elif HAVE_LIBKSTAT
# error "No applicable input method."
#endif /* HAVE_LIBSTATGRAB */
+static const char *config_keys[] =
+{
+ "ReportBytes"
+};
+static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
+
static int swap_init (void)
{
#if KERNEL_LINUX
- /* No init stuff */
+ pagesize = (derive_t) sysconf (_SC_PAGESIZE);
/* #endif KERNEL_LINUX */
#elif HAVE_LIBKSTAT
sstrerror (errno, errbuf, sizeof (errbuf)));
}
+ if (report_bytes)
+ {
+ swap_in *= pagesize;
+ swap_out *= pagesize;
+ }
+
swap_submit ("used", 1024 * swap_used, DS_TYPE_GAUGE);
swap_submit ("free", 1024 * swap_free, DS_TYPE_GAUGE);
swap_submit ("cached", 1024 * swap_cached, DS_TYPE_GAUGE);
return (0);
} /* int swap_read */
+static int swap_config (const char *key, const char *value)
+{
+ if (strcasecmp ("ReportBytes", key) == 0)
+ {
+#if KERNEL_LINUX
+ report_bytes = IS_TRUE (value) ? 1 : 0;
+#else
+ WARNING ("swap plugin: The \"ReportBytes\" option is only "
+ "valid under Linux. The option is going to "
+ "be ignored.");
+#endif
+ }
+ else
+ {
+ return (-1);
+ }
+
+ return (0);
+} /* int swap_config */
+
void module_register (void)
{
+ plugin_register_config ("swap", swap_config,
+ config_keys, config_keys_num);
plugin_register_init ("swap", swap_init);
plugin_register_read ("swap", swap_read);
} /* void module_register */