Hello Lutz,
From what I can determine from a brief search, the MethodCPUTimer appears to rely solely under native calls made by the platform monitor. I have found this internal comment from a few years ago
"BlamedMethodCPUTimer is supported through platform monitors, that is supported though native methods (i.e. non-java code). If you look into introscopeWindowsIntelAmd64Stats.jar you can see that it uses these native methods to actually fetch platform CPU count - Fetching CPU time is not implemented for Windows)."
If you look at the documentation on tracers:
https://docops.ca.com/ca-apm/10-7/en/implementing-agents/lists-of-pbds-metric-data-types-and-tracer-types/tracer-types
Although it is possibly misleading (references to very old operating systems still, for which I have made a comment), the MethodNanoCPUTimer makes a reference to the JVM, this suggests that it would be possible for us to obtain the CPU information from the JVM and be platform-independent.
This would explain in some way why this tracer could be working where the other one isn't, as the documentation references (old versions of) AIX/Linux, but not Windows.
Thanks,
David
Thanks David,
it seems to me, it's a bad idea to switch from "MethodNanoCPUTimer" to "MethodCPUTimer".
The "MethodNanoCPUTimer" is based on Java only and available on all plattforms therefore.
The reason we try to use "MethodCPUTimer" is, some JVMs wast lots of cpu time and 30% of the cpu time is used by the agent. I thought, we are saving some cpu by using "ms" instead of "ns" timer.
I think we continue using the "MethodNanoCPUTimer" timer.
With regards,
Lutz