public void PerformanceTest() { //first, lets get everything to flush so we have our best initial state. Log.EndFile("Preparing for Performance Test"); Log.Information(LogWriteMode.WaitForCommit, "Test.Agent.Metrics.Performance", "Preparing for Test", "Flushing queue"); SampledMetric.Register(typeof(UserSampledObject)); UserSampledObject sampledObject = new UserSampledObject(25, 100); //now that we know it's flushed everything, lets do our timed loop. DateTimeOffset startTime = DateTimeOffset.UtcNow; for (int curMessage = 0; curMessage < MessagesPerTest; curMessage++) { SampledMetricDefinition.Write(sampledObject); } DateTimeOffset messageEndTime = DateTimeOffset.UtcNow; //one wait for commit message to force the buffer to flush. Log.Information(LogWriteMode.WaitForCommit, "Test.Agent.Metrics.Performance", "Waiting for Samples to Commit", null); //and store off our time DateTimeOffset endTime = DateTimeOffset.UtcNow; TimeSpan duration = endTime - startTime; Trace.TraceInformation("Sampled Metrics by Attribute Test Completed in {0}ms . {1} messages were written at an average duration of {2}ms per message. The flush took {3}ms.", duration.TotalMilliseconds, MessagesPerTest, (duration.TotalMilliseconds) / MessagesPerTest, (endTime - messageEndTime).TotalMilliseconds); }
public void TestEventAttributeReflection() { SampledMetric.Register(typeof(UserSampledObject)); UserSampledObject sampledObject = new UserSampledObject(25, 100); SampledMetricDefinition.Write(sampledObject); SampledMetricDefinition sampledMetricDefinition; Assert.IsTrue(SampledMetricDefinition.TryGetValue(typeof(UserSampledObject), "IncrementalCount", out sampledMetricDefinition)); sampledObject.SetValue(35, 90); sampledMetricDefinition.WriteSample(sampledObject); }