/// <summary> /// Start System Usage Monitor with Diagnostic and Telemetry Recorder if Telemetry is enabled /// Otherwise Start System Usage Monitor with only Diagnostic Recorder /// </summary> private DiagnosticsHandlerHelper() { DiagnosticsHandlerHelper.isDiagnosticsMonitoringEnabled = false; // If the CPU monitor fails for some reason don't block the application try { DiagnosticsHandlerHelper.isTelemetryMonitoringEnabled = ClientTelemetryOptions.IsClientTelemetryEnabled(); List <SystemUsageRecorder> recorders = new List <SystemUsageRecorder>() { this.diagnosticSystemUsageRecorder, }; if (DiagnosticsHandlerHelper.isTelemetryMonitoringEnabled) { recorders.Add(this.telemetrySystemUsageRecorder); } this.systemUsageMonitor = SystemUsageMonitor.CreateAndStart(recorders); DiagnosticsHandlerHelper.isDiagnosticsMonitoringEnabled = true; } catch (Exception ex) { DefaultTrace.TraceError(ex.Message); DiagnosticsHandlerHelper.isDiagnosticsMonitoringEnabled = false; DiagnosticsHandlerHelper.isTelemetryMonitoringEnabled = false; } }
private static void ResetSystemUsageMonitor(bool isTelemetryEnabled) { ClientTelemetryTests.systemUsageMonitor?.Stop(); FieldInfo diagnosticsHandlerHelperInstance = typeof(DiagnosticsHandlerHelper) .GetField("isTelemetryMonitoringEnabled", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); diagnosticsHandlerHelperInstance.SetValue(null, isTelemetryEnabled); List <SystemUsageRecorder> recorders = new List <SystemUsageRecorder>() { (SystemUsageRecorder)typeof(DiagnosticsHandlerHelper) .GetField("diagnosticSystemUsageRecorder", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(DiagnosticsHandlerHelper.Instance) }; if (isTelemetryEnabled) { recorders.Add( (SystemUsageRecorder)typeof(DiagnosticsHandlerHelper) .GetField("telemetrySystemUsageRecorder", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(DiagnosticsHandlerHelper.Instance)); } ClientTelemetryTests.systemUsageMonitor = SystemUsageMonitor.CreateAndStart(recorders); }
public void SetUp() { mockSystemUsageCollector = new Mock <ISystemUsageCollector>(); mockSystemUsageBucket = new Mock <ISystemUsageBucket>(); scheduler = new TestScheduler(); instance = CreateInstance(); }
public static void ClassInitialize(TestContext context) { Environment.SetEnvironmentVariable(ClientTelemetryOptions.EnvPropsClientTelemetryEnabled, "true"); Environment.SetEnvironmentVariable(ClientTelemetryOptions.EnvPropsClientTelemetrySchedulingInSeconds, "1"); Environment.SetEnvironmentVariable(ClientTelemetryOptions.EnvPropsClientTelemetryEndpoint, telemetryEndpointUrl); SystemUsageMonitor oldSystemUsageMonitor = (SystemUsageMonitor)typeof(DiagnosticsHandlerHelper) .GetField("systemUsageMonitor", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(DiagnosticsHandlerHelper.Instance); oldSystemUsageMonitor.Stop(); ClientTelemetryTests.ResetSystemUsageMonitor(true); }
private DiagnosticsHandlerHelper() { this.isMonitoringEnabled = false; // If the CPU monitor fails for some reason don't block the application try { SystemUsageMonitor systemUsageMonitor = SystemUsageMonitor.CreateAndStart( new List <SystemUsageRecorder> { this.diagnosticSystemUsageRecorder, this.telemetrySystemUsageRecorder, }); this.isMonitoringEnabled = true; } catch (Exception ex) { DefaultTrace.TraceError(ex.Message); this.isMonitoringEnabled = false; } }