Current metric implementation does not support span blocks, which means, we can not have block + scope information of things. This is a problem because we can not, for example, create a flamegraph of our systems / functions / whatever profiling we want to do (as in the image) and see hierarchy, filter levels, etc..
Proposed Solution
Remove CUBOS_PROFILE. A span will always be profiled.
CUBOS_[LEVEL]_SPAN where LEVEL is TRACE DEBUG INFO
Metrics will be part of a span
Logs should also be part of a span
Example:
static void simulateFrame(int ms)
{
CUBOS_INFO_SPAN(); // no name provided, will use __FUNCTION__
// ...
{
CUBOS_TRACE_SPAN("block");
CUBOS_METRIC("something", 2.0);
}
// ...
{
CUBOS_INFO_SPAN("lowlevel");
}
CUBOS_DEBUG_SPAN("anotherSpan");
}
Problem
Current metric implementation does not support span blocks, which means, we can not have block + scope information of things. This is a problem because we can not, for example, create a flamegraph of our systems / functions / whatever profiling we want to do (as in the image) and see hierarchy, filter levels, etc..
Proposed Solution
CUBOS_PROFILE
. A span will always be profiled.CUBOS_[LEVEL]_SPAN
where LEVEL isTRACE DEBUG INFO
Example:
provides a structure like