Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Tools/dotnet-counters/CounterMonitor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ private void HandleCounterRate(TraceEvent obj)
CounterPayload payload = new RatePayload(meterName, instrumentName, null, unit, tags, rate, _interval, obj.TimeStamp);
_renderer.CounterPayloadReceived(payload, _pauseCmdSet);
}

}

private void HandleGauge(TraceEvent obj)
Expand All @@ -192,6 +193,12 @@ private void HandleGauge(TraceEvent obj)
CounterPayload payload = new GaugePayload(meterName, instrumentName, null, unit, tags, lastValue, obj.TimeStamp);
_renderer.CounterPayloadReceived(payload, _pauseCmdSet);
}
else
{
// for observable instruments we assume the lack of data is meaningful and remove it from the UI
CounterPayload payload = new RatePayload(meterName, instrumentName, null, unit, tags, 0, _interval, obj.TimeStamp);
_renderer.CounterStopped(payload);
}
}

private void HandleHistogram(TraceEvent obj)
Expand Down
2 changes: 2 additions & 0 deletions src/Tools/dotnet-counters/Exporters/CSVExporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public void CounterPayloadReceived(CounterPayload payload, bool _)
}
}

public void CounterStopped(CounterPayload payload) { }

public void Stop()
{
string outputString;
Expand Down
42 changes: 42 additions & 0 deletions src/Tools/dotnet-counters/Exporters/ConsoleWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,48 @@ public void CounterPayloadReceived(CounterPayload payload, bool pauseCmdSet)
}
}

public void CounterStopped(CounterPayload payload)
{
lock (_lock)
{
string providerName = payload.ProviderName;
string counterName = payload.Name;
string tags = payload.Tags;

if (!providers.TryGetValue(providerName, out ObservedProvider provider))
{
return;
}

if (!provider.Counters.TryGetValue(counterName, out ObservedCounter counter))
{
return;
}

ObservedTagSet tagSet = null;
if (tags != null)
{
if (!counter.TagSets.TryGetValue(tags, out tagSet))
{
return;
}
else
{
counter.TagSets.Remove(tags);
if(counter.TagSets.Count == 0)
{
provider.Counters.Remove(counterName);
}
}
}
else
{
provider.Counters.Remove(counterName);
}
AssignRowsAndInitializeDisplay();
}
}

private static int GetLineWrappedLines(string text)
{
string[] lines = text.Split(Environment.NewLine);
Expand Down
1 change: 1 addition & 0 deletions src/Tools/dotnet-counters/Exporters/ICounterRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public interface ICounterRenderer
void EventPipeSourceConnected();
void ToggleStatus(bool paused);
void CounterPayloadReceived(CounterPayload payload, bool paused);
void CounterStopped(CounterPayload payload);
void SetErrorText(string errorText);
void Stop();
}
Expand Down
2 changes: 2 additions & 0 deletions src/Tools/dotnet-counters/Exporters/JSONExporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ public void CounterPayloadReceived(CounterPayload payload, bool _)
}
}

public void CounterStopped(CounterPayload payload) { }

public void Stop()
{
lock (_lock)
Expand Down