Add Series/CounterType to CounterPayload and IncrementingCounterPayload (dotnet/corec...
authorSung Yoon Whang <suwhang@microsoft.com>
Thu, 2 May 2019 19:34:39 +0000 (12:34 -0700)
committerGitHub <noreply@github.com>
Thu, 2 May 2019 19:34:39 +0000 (12:34 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/ee8c00f18b0230fa92bed627ebd0dbe26d30b721

src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterPayload.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/DiagnosticCounter.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventCounter.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingEventCounter.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/IncrementingPollingCounter.cs
src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/PollingCounter.cs

index a9fa903..43dbd44 100644 (file)
@@ -182,7 +182,7 @@ namespace System.Diagnostics.Tracing
 
                     foreach (var counter in _counters)
                     {
-                        counter.WritePayload((float)elapsed.TotalSeconds);
+                        counter.WritePayload((float)elapsed.TotalSeconds, _pollingIntervalInMilliseconds);
                     }
                     _timeStampSinceCollectionStarted = now;
                 }
index bca7d3b..b44a856 100644 (file)
@@ -37,6 +37,10 @@ namespace System.Diagnostics.Tracing
 
         public float IntervalSec { get; internal set; }
 
+        public string? Series { get; set; }
+
+        public string? CounterType { get; set; }
+
         public string? Metadata { get; set; }
 
         #region Implementation of the IEnumerable interface
@@ -87,6 +91,10 @@ namespace System.Diagnostics.Tracing
 
         public string? Metadata { get; set; }
 
+        public string? Series { get; set; }
+
+        public string? CounterType { get; set; }
+
         #region Implementation of the IEnumerable interface
 
         public IEnumerator<KeyValuePair<string, object?>> GetEnumerator()
index 1d0bc54..c82ff34 100644 (file)
@@ -87,7 +87,7 @@ namespace System.Diagnostics.Tracing
         private CounterGroup _group;
         private Dictionary<string, string>? _metadata;
 
-        internal abstract void WritePayload(float intervalSec);
+        internal abstract void WritePayload(float intervalSec, int pollingIntervalMillisec);
 
         // arbitrarily we use name as the lock object.  
         internal object MyLock { get { return Name; } }
index 7c230a2..fae65ec 100644 (file)
@@ -84,7 +84,7 @@ namespace System.Diagnostics.Tracing
             _count++;
         }
 
-        internal override void WritePayload(float intervalSec)
+        internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
         {
             lock (MyLock)
             {
@@ -104,7 +104,8 @@ namespace System.Diagnostics.Tracing
                 }
                 payload.Min = _min;
                 payload.Max = _max;
-                
+                payload.Series = $"Interval={pollingIntervalMillisec}"; // TODO: This may need to change when we support multi-session
+                payload.CounterType = "Mean";
                 payload.Metadata = GetMetadataString();
                 payload.DisplayName = DisplayName;
                 payload.Name = Name;
index 24a9ea2..d4efae8 100644 (file)
@@ -56,7 +56,7 @@ namespace System.Diagnostics.Tracing
 
         public override string ToString() => $"IncrementingEventCounter '{Name}' Increment {_increment}";
 
-        internal override void WritePayload(float intervalSec)
+        internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
         {
             lock (MyLock)     // Lock the counter
             {
@@ -65,6 +65,8 @@ namespace System.Diagnostics.Tracing
                 payload.IntervalSec = intervalSec;
                 payload.DisplayName = DisplayName ?? "";
                 payload.DisplayRateTimeScale = (DisplayRateTimeScale == TimeSpan.Zero) ? "" : DisplayRateTimeScale.ToString("c");
+                payload.Series = $"Interval={pollingIntervalMillisec}"; // TODO: This may need to change when we support multi-session
+                payload.CounterType = "Sum";
                 payload.Metadata = GetMetadataString();
                 payload.Increment = _increment - _prevIncrement;
                 _prevIncrement = _increment;
index 44fd757..2c93943 100644 (file)
@@ -68,7 +68,7 @@ namespace System.Diagnostics.Tracing
             }
         }
 
-        internal override void WritePayload(float intervalSec)
+        internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
         {
             UpdateMetric();
             lock (MyLock)     // Lock the counter
@@ -78,6 +78,8 @@ namespace System.Diagnostics.Tracing
                 payload.DisplayName = DisplayName ?? "";
                 payload.DisplayRateTimeScale = (DisplayRateTimeScale == TimeSpan.Zero) ? "" : DisplayRateTimeScale.ToString("c");
                 payload.IntervalSec = intervalSec;
+                payload.Series = $"Interval={pollingIntervalMillisec}"; // TODO: This may need to change when we support multi-session
+                payload.CounterType = "Sum";
                 payload.Metadata = GetMetadataString();
                 payload.Increment = _increment - _prevIncrement;
                 _prevIncrement = _increment;
index ab69a1e..6a0d3c0 100644 (file)
@@ -46,7 +46,7 @@ namespace System.Diagnostics.Tracing
         private Func<double> _metricProvider;
         private double _lastVal;
 
-        internal override void WritePayload(float intervalSec)
+        internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
         {
             lock (MyLock)
             {
@@ -65,6 +65,8 @@ namespace System.Diagnostics.Tracing
                 payload.DisplayName = DisplayName ?? "";
                 payload.Count = 1; // NOTE: These dumb-looking statistics is intentional
                 payload.IntervalSec = intervalSec;
+                payload.Series = $"Interval={pollingIntervalMillisec}";  // TODO: This may need to change when we support multi-session
+                payload.CounterType = "Mean";
                 payload.Mean = value;
                 payload.Max = value;
                 payload.Min = value;