Aggregating data
To maintain a size-limited database management system (DBMS) while accumulating data over a period of years, the PingDataMetrics server aggregates data into four different levels.
The PingDataMetrics server aggregates data into four different levels. Each level contains data with less time granularity, but covering a larger period of time. Data is aggregated from a lower (greater time granularity) to a higher level as soon as enough data for aggregation is available. For example, the level 0 data has one second granularity, and the level 1 data has one minute granularity. After level 0 has collected one minute’s worth of data, the data from that minute can be aggregated to level 1.
To keep the data tables for each aggregation level at a constrained size, each aggregation level has a maximum age for the samples. When the samples are older than this age, they are deleted from the level. While aggregation occurs soon after the samples arrive in the level, pruning occurs only after all samples in a block have passed their age limit.
The PingDataMetrics server attempts to collect data from all configured servers as efficiently as possible. However, monitored server availability, DBMS backlog, and PingDataMetrics server load can all cause the data pipeline to slow down. The data aggregation system is designed to correctly handle gaps in the data.
The resolution of the aggregation levels cannot be changed, but the maximum age of each level can be configured. The following table lists the aggregation levels.
Level | Resolution | Default maximum age | Maximum age |
---|---|---|---|
0 |
1 second |
2 hours |
48 hours |
1 |
1 minute |
7 days |
34 days |
2 |
1 hour |
12 months |
5 years |
3 |
1 day |
20 years |
20 years |