From f701ddca7e98e7c4abc653be551cc4a88ac4ce4e Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 22 Nov 2022 15:37:51 -0500 Subject: [PATCH 1/2] Change MetricSpec.TryParse to be Parse It was always creating a MetricSpec and returning true. --- .../Diagnostics/Metrics/MetricsEventSource.cs | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs index 458d1c9d34e5a4..b4f18c4639319c 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs @@ -386,24 +386,19 @@ private void ParseSpecs(string? metricsSpecs) { return; } + string[] specStrings = metricsSpecs.Split(s_instrumentSeparators, StringSplitOptions.RemoveEmptyEntries); foreach (string specString in specStrings) { - if (!MetricSpec.TryParse(specString, out MetricSpec spec)) + MetricSpec spec = MetricSpec.Parse(specString); + Parent.Message($"Parsed metric: {spec}"); + if (spec.InstrumentName != null) { - Parent.Message($"Failed to parse metric spec: {specString}"); + _aggregationManager!.Include(spec.MeterName, spec.InstrumentName); } else { - Parent.Message($"Parsed metric: {spec}"); - if (spec.InstrumentName != null) - { - _aggregationManager!.Include(spec.MeterName, spec.InstrumentName); - } - else - { - _aggregationManager!.Include(spec.MeterName); - } + _aggregationManager!.Include(spec.MeterName); } } } @@ -467,20 +462,18 @@ public MetricSpec(string meterName, string? instrumentName) InstrumentName = instrumentName; } - public static bool TryParse(string text, out MetricSpec spec) + public static MetricSpec Parse(string text) { int slashIdx = text.IndexOf(MeterInstrumentSeparator); - if (slashIdx == -1) + if (slashIdx < 0) { - spec = new MetricSpec(text.Trim(), null); - return true; + return new MetricSpec(text.Trim(), null); } else { string meterName = text.Substring(0, slashIdx).Trim(); string? instrumentName = text.Substring(slashIdx + 1).Trim(); - spec = new MetricSpec(meterName, instrumentName); - return true; + return new MetricSpec(meterName, instrumentName); } } From ad5a289aff844b62fef34cb27b54645c27024fd0 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 24 Nov 2022 12:35:04 -0500 Subject: [PATCH 2/2] Update src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs Co-authored-by: Theodore Tsirpanis --- .../src/System/Diagnostics/Metrics/MetricsEventSource.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs index b4f18c4639319c..163cc031a2e673 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/MetricsEventSource.cs @@ -471,8 +471,8 @@ public static MetricSpec Parse(string text) } else { - string meterName = text.Substring(0, slashIdx).Trim(); - string? instrumentName = text.Substring(slashIdx + 1).Trim(); + string meterName = text.AsSpan(0, slashIdx).Trim().ToString(); + string? instrumentName = text.AsSpan(slashIdx + 1).Trim().ToString(); return new MetricSpec(meterName, instrumentName); } }