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