There are a couple enhancements that would be useful for making sure all measurements for a given service are always evenly spaced out time-wise.
- Currently, if a given collection interval is configured (say, 300s), the timer for the next collection service will start once the current collection service has completed. However, there is a non-zero amount of time between when the current collection service starts and ends, this can mean the interval between successive collections is greater than the configured interval. For example, if the collection service takes a second, we end up with 301s between collections. It would be useful to define a property that controls whether the interval is from the start of the current service or the end of the current service.
- Along those lines, the time currently used for measurements in the current collection is the time at which the data is being written. This might cause the measurement times to not always be 300s apart since each round of collection may not always take the exact same amount of time. It would be better in this case to set the collection time as the start of the collection rather than the end, since the former is better known, and since collection starts are always guaranteed to be 300s apart if the previous property is in use.