/**
* collectd - src/df.c
- * Copyright (C) 2005-2007 Florian octo Forster
+ * Copyright (C) 2005-2009 Florian octo Forster
* Copyright (C) 2009 Paul Sadauskas
*
* This program is free software; you can redistribute it and/or modify it
# include <sys/statvfs.h>
# endif
# define STATANYFS statvfs
+# define STATANYFS_STR "statvfs"
# define BLOCKSIZE(s) ((s).f_frsize ? (s).f_frsize : (s).f_bsize)
#elif HAVE_STATFS
# if HAVE_SYS_STATFS_H
# include <sys/statfs.h>
# endif
# define STATANYFS statfs
+# define STATANYFS_STR "statfs"
# define BLOCKSIZE(s) (s).f_bsize
#else
# error "No applicable input method."
"FSType",
"IgnoreSelected",
"ReportByDevice",
- "ReportReserved"
+ "ReportReserved",
+ "ReportInodes"
};
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
static _Bool by_device = false;
static _Bool report_reserved = false;
+static _Bool report_inodes = false;
static int df_init (void)
{
return (0);
}
+ else if (strcasecmp (key, "ReportInodes") == 0)
+ {
+ if (IS_TRUE (value))
+ report_inodes = true;
+ else
+ report_inodes = false;
+
+ return (0);
+ }
return (-1);
mnt_list = NULL;
if (cu_mount_getlist (&mnt_list) == NULL)
+ {
+ ERROR ("df plugin: cu_mount_getlist failed.");
return (-1);
+ }
for (mnt_ptr = mnt_list; mnt_ptr != NULL; mnt_ptr = mnt_ptr->next)
{
if (STATANYFS (mnt_ptr->dir, &statbuf) < 0)
{
char errbuf[1024];
- ERROR ("statv?fs failed: %s",
+ ERROR (STATANYFS_STR"(%s) failed: %s",
+ mnt_ptr->dir,
sstrerror (errno, errbuf,
sizeof (errbuf)));
continue;
}
/* inode handling */
+ if (report_inodes)
{
uint64_t inode_free;
uint64_t inode_reserved;