One test that we have found very useful in this area is CPU testing. By logging every 5 minutes we have been able to create some long term charts that give us a very good baseline of CPU usage. We intend keeping three years data so we can monitor progress over time. Although usually we are only looking at charts for the last few weeks. Often we can spot when a process has hung.
The problem with all this however is that we end up with some very large log files. They are quite compressible so storage is not so much of an issue, however once they are large they take a very long time to process.
What would be ideal would be to execute a program that went through a specified log file and based on some parameters could do things such as the following:-
For all data more than 12 weeks old, then replace all logs for each week with the average for that week. (Set time for represenative average as 12 noon Monday).
For all data more than 90 days old, then for each day keep only the peak value for that day and purge other entries.
For all data more than 21 days old, then for each day keep only the first log entry after 4pm.
Such a tool would allow for log files to be stripped down to a more manageable size whilst preserving the historical trends or baselines required.For all data more than 1000 days old then purge that data.
Note that in the examples given running a well designed "consolidator" more than once would not change anything the second time through. Assuming of course that the current date and the parameters have not changed. This would mean that progressive subsequent consolidations on later dates (using the same parameters) would not change anything. Of course for the first example this depends on carefully defining the start and finish boundary points for a week.
The "consolidator" would also want to be able to filter on things such as test type or test name. For instance you may only want to average old CPU tests, but not old ping tests.
And for scripting it should all be executable from a command line with the parameters passed as command line switches.
eg:-
CONSOLIDATE /l=C:\log3.log /t=CPU /c=weeklyaverage /a=12w /r=Mo1200
logfile /l=C:\log3.log
test type /t=CPU
consolidation type /c=weeklyaverage
consolidate only data over a given age /a=12w
representative time /r=Mo1200