Core implementation of UE Profiler

Hey guys,

I am reading the source of UE and want to learn about how the Profiler of UE is implemented.
I easily found the sources of module ProfilerClientManager, module ProfilerServiceManager and so on. But unfortunately these modules only handle how profiler data are transmitted and shown, while how profiler data are collected is obvious in other modules.

My question is, where can I find the core implementation of how profiler data are collected? Providing source file names would be the best.

Many thanks.