public void GetCounters_ReturnsExpectedResult() { var mockEnvironment = new Mock <IEnvironment>(MockBehavior.Strict); string value = string.Empty; var logger = new TestLogger("Test"); mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteAppCountersName)).Returns(() => value); var options = new HostHealthMonitorOptions(); var performanceManager = new HostPerformanceManager(mockEnvironment.Object, new OptionsWrapper <HostHealthMonitorOptions>(options)); value = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"activeConnections\": 25,\"activeConnectionLimit\": 600,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"remoteDirMonitors\": 5,\"remoteDirMonitorLimit\": 500,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}"; var counters = performanceManager.GetPerformanceCounters(logger); Assert.Equal(counters.PageFaults, 131522); // verify garbage characters are trimmed value = value + "猅"; counters = performanceManager.GetPerformanceCounters(logger); Assert.Equal(counters.PageFaults, 131522); value = "{}"; counters = performanceManager.GetPerformanceCounters(logger); Assert.Equal(counters.PageFaults, 0); value = "this is not json"; counters = performanceManager.GetPerformanceCounters(logger); Assert.Null(counters); var error = logger.GetLogMessages().Last(); Assert.Equal("Failed to deserialize application performance counters. JSON Content: \"this is not json\"", error.FormattedMessage); }
public void GetCounters_ReturnsExpectedResult() { var mockSettings = new Mock <ScriptSettingsManager>(MockBehavior.Strict); string value = string.Empty; var traceWriter = new TestTraceWriter(TraceLevel.Verbose); mockSettings.Setup(p => p.GetSetting(EnvironmentSettingNames.AzureWebsiteAppCountersName)).Returns(() => value); var performanceManager = new HostPerformanceManager(mockSettings.Object, traceWriter); value = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}"; var counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 131522); value = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}猅"; counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 131522); value = "{}"; counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 0); value = "this is not json"; counters = performanceManager.GetPerformanceCounters(); Assert.Null(counters); var error = traceWriter.Traces.Last(); Assert.Equal("Failed to deserialize application performance counters. JSON Content: \"this is not json\"", error.Message); }
public static void GetCounters_ReturnsExpectedResult() { var mockSettings = new Mock <ScriptSettingsManager>(MockBehavior.Strict); string value = string.Empty; mockSettings.Setup(p => p.GetSetting(EnvironmentSettingNames.AzureWebsiteAppCountersName)).Returns(() => value); var performanceManager = new HostPerformanceManager(mockSettings.Object); value = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}"; var counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 131522); value = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}猅"; counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 131522); value = "{}"; counters = performanceManager.GetPerformanceCounters(); Assert.Equal(counters.PageFaults, 0); }
public void GetCounters_ReturnsExpectedResult() { _performanceCountersValue = "{\"userTime\": 30000000,\"kernelTime\": 16562500,\"pageFaults\": 131522,\"processes\": 1,\"processLimit\": 32,\"threads\": 32,\"threadLimit\": 512,\"connections\": 4,\"connectionLimit\": 300,\"activeConnections\": 25,\"activeConnectionLimit\": 600,\"sections\": 3,\"sectionLimit\": 256,\"namedPipes\": 0,\"namedPipeLimit\": 128,\"remoteDirMonitors\": 5,\"remoteDirMonitorLimit\": 500,\"readIoOperations\": 675,\"writeIoOperations\": 18,\"otherIoOperations\": 9721,\"readIoBytes\": 72585119,\"writeIoBytes\": 5446,\"otherIoBytes\": 393926,\"privateBytes\": 33759232,\"handles\": 987,\"contextSwitches\": 15535,\"remoteOpens\": 250}"; var counters = _performanceManager.GetPerformanceCounters(_logger); Assert.Equal(counters.PageFaults, 131522); // verify garbage characters are trimmed _performanceCountersValue += "猅"; counters = _performanceManager.GetPerformanceCounters(_logger); Assert.Equal(counters.PageFaults, 131522); _performanceCountersValue = "{}"; counters = _performanceManager.GetPerformanceCounters(_logger); Assert.Equal(counters.PageFaults, 0); _performanceCountersValue = "this is not json"; counters = _performanceManager.GetPerformanceCounters(_logger); Assert.Null(counters); var error = _logger.GetLogMessages().Last(); Assert.Equal("Failed to deserialize application performance counters. JSON Content: \"this is not json\"", error.FormattedMessage); }