public void DisplayUnitsTest() { string fileName = "displayUnitsTest.json"; JSONExporter exporter = new JSONExporter(fileName, "myProcess.exe"); exporter.Initialize(); for (int i = 0; i < 20; i++) { exporter.CounterPayloadReceived("myProvider", TestHelpers.GenerateCounterPayload(false, "heapSize", (double)i, 0, "Heap Size", "MB"), false); } exporter.Stop(); Assert.True(File.Exists(fileName)); using (StreamReader r = new StreamReader(fileName)) { string json = r.ReadToEnd(); JSONCounterTrace counterTrace = JsonConvert.DeserializeObject <JSONCounterTrace>(json); Assert.Equal("myProcess.exe", counterTrace.targetProcess); Assert.Equal(20, counterTrace.events.Length); var i = 0; foreach (JSONCounterPayload payload in counterTrace.events) { Assert.Equal("myProvider", payload.provider); Assert.Equal("Heap Size (MB)", payload.name); Assert.Equal(i, payload.value); i += 1; } } }
public void ValidJSONFormatTest() { // Test if the produced JSON is a valid format. // Regression test for https://github.com/dotnet/diagnostics/issues/1020 string fileName = "validJSONFormatTest.json"; JSONExporter exporter = new JSONExporter(fileName, "myProcess.exe"); exporter.Initialize(); for (int i = 0; i < 20; i++) { exporter.CounterPayloadReceived("myProvider", TestHelpers.GenerateCounterPayload(false, "heapSize", 0, 0, "Heap Size", "MB"), false); } exporter.Stop(); Assert.True(File.Exists(fileName)); using (StreamReader r = new StreamReader(fileName)) { string json = r.ReadToEnd(); // first } from end of the last event payload // next ] from closing "Events" field // last } from closing the whole JSON Assert.EndsWith("0 }]}", json); } }
public void CounterTest() { string fileName = "CounterTest.json"; JSONExporter exporter = new JSONExporter(fileName, "myProcess.exe"); exporter.Initialize(); for (int i = 0; i < 10; i++) { exporter.CounterPayloadReceived("myProvider", TestHelpers.GenerateCounterPayload(false, "counterOne", 1.0, 1, "Counter One"), false); } exporter.Stop(); Assert.True(File.Exists(fileName)); using (StreamReader r = new StreamReader(fileName)) { string json = r.ReadToEnd(); JSONCounterTrace counterTrace = JsonConvert.DeserializeObject <JSONCounterTrace>(json); Assert.Equal("myProcess.exe", counterTrace.targetProcess); Assert.Equal(10, counterTrace.events.Length); foreach (JSONCounterPayload payload in counterTrace.events) { Assert.Equal("myProvider", payload.provider); Assert.Equal("Counter One", payload.name); Assert.Equal("Metric", payload.counterType); Assert.Equal(1.0, payload.value); } } }
public void PercentilesTest() { string fileName = "PercentilesTest.json"; JSONExporter exporter = new JSONExporter(fileName, "myProcess.exe"); exporter.Initialize(); DateTime start = DateTime.Now; for (int i = 0; i < 10; i++) { exporter.CounterPayloadReceived(new PercentilePayload("myProvider", "counterOne", "Counter One", "", "f=abc,Percentile=50", 1, start + TimeSpan.FromSeconds(i)), false); } exporter.Stop(); Assert.True(File.Exists(fileName)); using (StreamReader r = new StreamReader(fileName)) { string json = r.ReadToEnd(); JSONCounterTrace counterTrace = JsonConvert.DeserializeObject <JSONCounterTrace>(json); Assert.Equal("myProcess.exe", counterTrace.targetProcess); Assert.Equal(10, counterTrace.events.Length); foreach (JSONCounterPayload payload in counterTrace.events) { Assert.Equal("myProvider", payload.provider); Assert.Equal("Counter One", payload.name); Assert.Equal("Metric", payload.counterType); Assert.Equal(1.0, payload.value); Assert.Equal("f=abc,Percentile=50", payload.tags); } } }