We have a distributed application which should be monitored. There are some modules which collect external data (disk usage, free disk space, CPU utilization, memory utilization, etc) and some internal data (number of nodes online, number of files in storage systems, number if users online, etc).
The main contradictory point in this question is that to check if these modules are working we essentially need to create the modules for testing framework, which duplicate the functionality of the modules under test. There are some additional functions, for example, we can change some data to check if the collecting module reacts to that (create large file, get one node offline, etc), but in general it is the same functionality as the tested module plus more. It seems like a waste of resources to create tests which are more complex than the actual module itself and fully include its functionality.
So what is the best approach to testing such modules?