A system comprising: an application host configured to execute at least one instance of at least one application; a memory area including a set of at least one sample memory buffers ; a compressed sample file store ; a timestamp index ; a file position index ; at least one computer process associated with each instance of each application; and a monitoring sampler associated with each application; wherein the monitoring sampler for a respective application, is configured to, for each respective computer process of the application: store a received sample of monitored attributes of the computer process in a sample memory buffer for the computer process that includes other stored samples ; determine that the sample memory buffer for the computer process is full; compress the sample memory buffer for the computer process; determine a starting position in the compressed sample file store at which to store the compressed sample memory buffer ; store the compressed sample memory buffer at the determined starting position in the compressed sample file store ; store the starting position of the stored compressed sample memory buffer at a particular location in the file position index ; and store a collection timestamp for the sample in the timestamp index at a timestamp index location that matches the particular location in the file position index , wherein the timestamp index and the file location index are parallel arrays. an application host configured to execute at least one instance of at least one application; a memory area including a set of at least one sample memory buffers ; a compressed sample file store ; a timestamp index ; a file position index ; at least one computer process associated with each instance of each application; and a monitoring sampler associated with each application; wherein the monitoring sampler for a respective application, is configured to, for each respective computer process of the application: store a received sample of monitored attributes of the computer process in a sample memory buffer for the computer process that includes other stored samples ; determine that the sample memory buffer for the computer process is full; compress the sample memory buffer for the computer process; determine a starting position in the compressed sample file store at which to store the compressed sample memory buffer ; store the compressed sample memory buffer at the determined starting position in the compressed sample file store ; store the starting position of the stored compressed sample memory buffer at a particular location in the file position index ; and store a collection timestamp for the sample in the timestamp index at a timestamp index location that matches the particular location in the file position index , store a received sample of monitored attributes of the computer process in a sample memory buffer for the computer process that includes other stored samples ; determine that the sample memory buffer for the computer process is full; compress the sample memory buffer for the computer process; determine a starting position in the compressed sample file store at which to store the compressed sample memory buffer ; store the compressed sample memory buffer at the determined starting position in the compressed sample file store ; store the starting position of the stored compressed sample memory buffer at a particular location in the file position index ; and store a collection timestamp for the sample in the timestamp index at a timestamp index location that matches the particular location in the file position index , wherein the timestamp index and the file location index are parallel arrays. <EOS>