1. A computer-implemented method for determining characteristics of data blocks stored in a storage system, the method comprising: receiving an input/output (IO) request for accessing a first data block of a first file stored in a storage system, the first file being one of a plurality of files stored in the storage system, each of the files containing a plurality of data blocks; in response to the request, accessing, by a block-based monitor executed in a memory by a processor, a set of monitoring rules to determine whether the first file should be monitored, wherein the set of monitoring rules represents a set of monitoring parameters in a rule database; in response to determining that the first file should be monitored, capturing, at a data block level by the block-based monitor, statistics data associated with the first data block, including determining at least in part a time of access of the first data block, a percentage of block change within a period of time, a level of block-based activities, and a changed block list (CBL) associated with the first data block as the statistics data, and capturing a timestamp of the first data block being accessed; storing the statistics data of the first data block in a statistics database maintained in a persistent storage device, wherein the statistics database stores statistics data of a plurality of data blocks of a plurality of files monitored and captured based on the set of monitoring rules; analyzing, by an analysis module executed by the processor, the statistics data stored in the statistics database, including determining accessing patterns of data blocks of the files at the data block level, to generate an analysis result; and transmitting the analysis result to a remote analytics system over a network, wherein the remote analytics system analyzes analysis results of data blocks being accessed at a plurality of storage systems.