Hi,
During my intense work on CoreCLR profiles, I’ve created yet another one analysis:
<stateProvider version="0" id="CoreCLR.GC.statistics">
<head>
<traceType id="org.eclipse.linuxtools.lttng2.ust.tracetype" />
<label value="CoreCLR.GC.statistics" />
</head>
<location id="CurrentRangeUsedLength">
<stateAttribute type="constant" value="Generations" />
<stateAttribute type="eventField" value="RangeUsedLength" />
</location>
<eventHandler eventName="DotNETRuntime:GCGenerationRange">
<stateChange>
<stateAttribute type="constant" value="Processes" />
<stateAttribute type="eventField" value="context._procname" />
<stateAttribute type="constant" value="Generations" />
<stateAttribute type="eventField" value="Generation" />
<stateValue type="eventField" value="RangeUsedLength" forcedType="long"/>
</stateChange>
</eventHandler>
</stateProvider>
And now I can draw all Generations from all Processes:
<xyView id="CoreCLR.GC.statistics.view">
<head>
<analysis id="CoreCLR.GC.statistics" />
<label value="CoreCLR.GC.statistics.view" />
</head>
<entry path="Processes/*/Generations/*">
<display type="self" />
</entry>
</xyView>
This makes three data series on a graph labelled 0, 1, 2 and 3 – as there so many generations in CoreCLR. How can create separate data series per process & generation pair, to have labels like dotnet/0, dotnet/1, dotnet/2, anotherprogram/0, … ?
This was easy in timeGraphView as it allows hierarchical entries, but in xyView I can only manipulate on the name level and after trying everything still not sure if it is possible..
Best,
Konrad Kokosa