Filter event counter payloads using CounterType payload (#261)
authorSung Yoon Whang <suwhang@microsoft.com>
Fri, 10 May 2019 00:24:20 +0000 (17:24 -0700)
committerGitHub <noreply@github.com>
Fri, 10 May 2019 00:24:20 +0000 (17:24 -0700)
src/Tools/dotnet-counters/CounterMonitor.cs

index ffc35eaa403ea75ef3f59cece5e0ef3008a39e2e..d88809fee568cf7724e706290e3fbe4100736c4f 100644 (file)
@@ -54,7 +54,15 @@ namespace Microsoft.Diagnostics.Tools.Counters
                 // There really isn't a great way to tell whether an EventCounter payload is an instance of 
                 // IncrementingCounterPayload or CounterPayload, so here we check the number of fields 
                 // to distinguish the two.
-                ICounterPayload payload = payloadFields.Count == 6 ? (ICounterPayload)new IncrementingCounterPayload(payloadFields) : (ICounterPayload)new CounterPayload(payloadFields);
+                ICounterPayload payload;
+                if (payloadFields.ContainsKey("CounterType"))
+                {
+                    payload = payloadFields["CounterType"].Equals("Sum") ? (ICounterPayload)new IncrementingCounterPayload(payloadFields) : (ICounterPayload)new CounterPayload(payloadFields);
+                }
+                else
+                {
+                    payload = payloadFields.Count == 6 ? (ICounterPayload)new IncrementingCounterPayload(payloadFields) : (ICounterPayload)new CounterPayload(payloadFields);
+                }
                 writer.Update(obj.ProviderName, payload);
             }
         }