Skip to content

Instantly share code, notes, and snippets.

@itn3000
Last active October 18, 2021 16:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itn3000/eadf67d5e1eed0d36890014c1645f5d7 to your computer and use it in GitHub Desktop.
Save itn3000/eadf67d5e1eed0d36890014c1645f5d7 to your computer and use it in GitHub Desktop.
MetricsEventSource testing(`dotnet-trace collect` outputs)
using System.Diagnostics.Metrics;
{
Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().Id);
using var meter = new Meter("appmeter");
int obscnt = 1;
var counter = meter.CreateCounter<int>("counter1", "unit", "desc");
var histo = meter.CreateHistogram<int>("histogram1", "unit", "desc");
var gauge = meter.CreateObservableGauge<int>("gauge1", () => 2, "unit2", "desc2");
var obscounter = meter.CreateObservableCounter<int>("obscounter1", () => { obscnt+=2;return obscnt; }, "unit2", "desc2");
async Task CounterTask(CancellationToken ct)
{
int count = 2;
int tagval = 1;
while(!ct.IsCancellationRequested)
{
await Task.Delay(500).ConfigureAwait(false);
if(counter.Enabled)
{
counter.Add(count,
new KeyValuePair<string, object?>("tag1", tagval)
);
}
if(histo.Enabled)
{
histo.Record(count, new KeyValuePair<string, object?>("tag2", tagval));
}
tagval = tagval ^ 3;
}
}
using var cts = new CancellationTokenSource();
await Task.WhenAll(CounterTask(cts.Token), Task.Run(() =>
{
Console.ReadLine();
cts.Cancel();
}));
}

System.Diagnostics.Metrics/CounterRateValuePublished

  • Counterのrateは、RefreshIntervalの間に起こったCounter.Addの合計値
  • ObservableCounterのrateは、[最新の値]-[ひとつ前の値]の値

System.Diagnostics.Metrics/HistogramValuePublished

  • 得られる値はRefreshIntervalの間に起こったHistogram.Recordの下記三つの値
    • 50%ile
    • 95%ile
    • 99%ile

System.Diagnostics.Metrics/GaugeValuePublished

  • 最後に記録された値をそのまま表示
Event Name Time MSec Process Name Rest
System.Diagnostics.Metrics/CounterRateValuePublished 2029.873 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="obscounter1" unit="unit2" tags="" rate=""
System.Diagnostics.Metrics/CounterRateValuePublished 2029.932 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=1" rate="4"
System.Diagnostics.Metrics/CounterRateValuePublished 2029.939 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=2" rate="4"
System.Diagnostics.Metrics/CounterRateValuePublished 4019.756 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="obscounter1" unit="unit2" tags="" rate="2"
System.Diagnostics.Metrics/CounterRateValuePublished 4019.779 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=1" rate="4"
System.Diagnostics.Metrics/CounterRateValuePublished 4019.793 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=2" rate="4"
System.Diagnostics.Metrics/CounterRateValuePublished 6025.631 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="obscounter1" unit="unit2" tags="" rate="2"
System.Diagnostics.Metrics/CounterRateValuePublished 6025.658 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=1" rate="4"
System.Diagnostics.Metrics/CounterRateValuePublished 6025.679 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="counter1" unit="unit" tags="tag1=2" rate="4"
Event Name Time MSec Process Name Rest
System.Diagnostics.Metrics/GaugeValuePublished 2029.968 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="gauge1" unit="unit2" tags="" lastValue="2"
System.Diagnostics.Metrics/GaugeValuePublished 4019.812 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="gauge1" unit="unit2" tags="" lastValue="2"
System.Diagnostics.Metrics/GaugeValuePublished 6025.699 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="gauge1" unit="unit2" tags="" lastValue="2"
Event Name Time MSec Process Name Rest
System.Diagnostics.Metrics/HistogramValuePublished 2029.743 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=1" quantiles="0.5=2;0.95=2;0.99=2"
System.Diagnostics.Metrics/HistogramValuePublished 2029.809 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=2" quantiles="0.5=2;0.95=2;0.99=2"
System.Diagnostics.Metrics/HistogramValuePublished 4019.665 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=1" quantiles="0.5=2;0.95=2;0.99=2"
System.Diagnostics.Metrics/HistogramValuePublished 4019.736 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=2" quantiles="0.5=2;0.95=2;0.99=2"
System.Diagnostics.Metrics/HistogramValuePublished 6025.520 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=1" quantiles="0.5=2;0.95=2;0.99=2"
System.Diagnostics.Metrics/HistogramValuePublished 6025.607 Process(6560) (6560) HasStack="True" ThreadID="5,728" ProcessorNumber="0" sessionId="b4dabb67-0fab-4d82-b4e5-67349009a1bf" meterName="appmeter" meterVersion="" instrumentName="histogram1" unit="unit" tags="tag2=2" quantiles="0.5=2;0.95=2;0.99=2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment