Aggregation of DefaultData(s) on the agent
The CoreService contains several getXXX() methods (XXX is the placeholder for subclasses of DefaultData like MethodSensorData) which provide DefaultData instances stored within the ConcurrentHashMap (current Agent Queue Realisation). This allows aggregation of DefaultData which is gathered during the time between sending intervals (currently 5 seconds).
With installation of the Disruptor Framework, the aggregation will most likely be removed competely. However, it is unknown if the aggregation can be removed complete or if special cases still need to be handled with aggregation on the agent. Below the aggregation points on the Agent are summarized in order to decide if the aggregation can be removed or needs to be retained.
Method | Calling Method | Calling Classes | What is aggregated | Remarks | Decision |
---|---|---|---|---|---|
getMethodSensorData | secondAfterBody | AverageTimerHook | TimerData | Ivan told that the AverageTimerHook is currently not available anymore | delete whole class |
PreparedStatementHook | SqlStatementData | no aggregation anymore should be done | |||
StatementHook | SqlStatementData | no aggregation anymore should be done | |||
getPlatformSensorData | update | ClassLoadingInformation | ClassLoadingInformationData | Do we really need 1 second granularity? Currently this means that 5 measurements are aggregated. Correct? Why not measure each 5 seconds and send the one value. Exceptions might be CPU and Memory | First of all, we don't store temporary data centrally anymore but per sensor which cares about updating and aggregation. there will be an update and a retrieveData method which will trigger the aggregation process and the retrieve will implicitely delete the current available data object so that it starts over. |
CompilationInformation | CompilationInformationData | ||||
CpuInformation | CpuInformationData | ||||
MemoryInformation | MemoryInformationData | ||||
RuntimeInformation | RuntimeInformationData | ||||
ThreadInformation | ThreadInformationData | ||||
getExceptionSensorData | - | - | - | (no aggregation here) | |
getObjectStorage | secondAfterBody | TimerHook | TimerRawVO -> AggregateTimerStorage TimerData -> OptimizedTimerStorage TimerRawVO -> PlainTimerStorage | no aggregation anymore should be done (remove all classes that are not needed anymore) |