public WinFormsUnhandledExceptionsReporter(ITelemetryCollector telemetryCollector) : base(telemetryCollector) { Application.ThreadException += (sender, e) => { telemetryCollector.ReportException(e.Exception, "Application.ThreadException"); }; }
public static void Setup(ITelemetryCollector telemetryCollector) { Application.ThreadException += (sender, e) => { telemetryCollector.ReportException(e.Exception, "Application.ThreadException"); }; }
public static void Setup(ITelemetryCollector telemetryCollector, IShutdown shutdown) { void unhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e) { if (e.ExceptionObject is Exception ex) { telemetryCollector.ReportException(ex, "Domain.UnhandledException"); } else { telemetryCollector.ReportException( new Exception(e.ExceptionObject != null ? e.ExceptionObject.GetType().ToString() : "null exception object"), "Domain.UnhandledException (custom exception)"); } } AppDomain.CurrentDomain.UnhandledException += unhandledExceptionEventHandler; void unobservedTaskExceptionEventHandler(object sender, UnobservedTaskExceptionEventArgs e) { telemetryCollector.ReportException(e.Exception, "TaskScheduler.UnobservedTaskException"); } TaskScheduler.UnobservedTaskException += unobservedTaskExceptionEventHandler; shutdown.Phase2Cleanup += (s, e) => { AppDomain.CurrentDomain.UnhandledException -= unhandledExceptionEventHandler; TaskScheduler.UnobservedTaskException -= unobservedTaskExceptionEventHandler; }; }
/// <summary> /// Initializes a new instance of the <see cref="Fruit"/> class. /// </summary> public Fruit() { // Get instance which stores telemetry data across all modules. ITelemetryCollector fruitTelemetryCollector = TelemetryCollector.Instance; // Register telemetry. fruitTelemetryCollector.RegisterTelemetry("FruitTelemetry", new FruitTelemetry()); }
public WebHookService(IMessageBus messageBus, IOptions <AppSettings> options, ITelemetryCollector telemetryCollector) { _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); _options = options ?? throw new ArgumentNullException(nameof(options)); _telemetryCollector = telemetryCollector ?? throw new ArgumentNullException(nameof(telemetryCollector)); _webHooks = new ConcurrentQueue <WebHookRecord>(); _webHooksInfo = new ConcurrentDictionary <int, WebHookInfo>(); }
public void BeforeEach() { storage = Substitute.For <Persistence.IStorageManager>(); uploader = Substitute.For <ITelemetryUploader>(); instancesCounter = Substitute.For <MultiInstance.IInstancesCounter>(); shutdown = Substitute.For <IShutdown>(); traceAccess = Substitute.For <IMemBufferTraceAccess>(); collector = new TelemetryCollector( storage, uploader, new SerialSynchronizationContext(), instancesCounter, shutdown, traceAccess, new TraceSourceFactory() ); uploader.IsIssuesReportingConfigured.Returns(true); }
/// <summary> /// Sell specified number of fruits. /// </summary> /// <param name="soldQuantity">Number of fruits to be sold.</param> public void SellFruit(int soldQuantity) { if (soldQuantity < 0) { throw new ArgumentException(); } // This is the intended functionality of this method. Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "{0} fruits sold.", soldQuantity)); // Get instance which stores telemetry data across all modules. ITelemetryCollector fruitTelemetryCollector = TelemetryCollector.Instance; // Extract your telemetry data from the collector. FruitTelemetry fruitTelemetry = (FruitTelemetry)fruitTelemetryCollector.GetTelemetryObject("FruitTelemetry"); // Here, use whatever method you have created to update telemetry information. // Finally, telemetry data should be stored in the dataCapture property. // Everything else is flexible. fruitTelemetry.Calculate(soldQuantity); }
public UnhandledExceptionsReporter(ITelemetryCollector telemetryCollector) { AppDomain.CurrentDomain.UnhandledException += (sender, e) => { var ex = e.ExceptionObject as Exception; if (ex != null) { telemetryCollector.ReportException(ex, "Domain.UnhandledException"); } else { telemetryCollector.ReportException( new Exception(e.ExceptionObject != null ? e.ExceptionObject.GetType().ToString() : "null exception object"), "Domain.UnhandledException (custom exception)"); } }; TaskScheduler.UnobservedTaskException += (sender, e) => { telemetryCollector.ReportException(e.Exception, "TaskScheduler.UnobservedTaskException"); }; }
public TelemetryClient(ITelemetryCollector telemetryCollector, IScheduler scheduler, Func <string, ITelemetryProcessor> processorFactory) { _telemetryCollector = telemetryCollector; _processorFactory = processorFactory; _scheduler = scheduler; }
public ResourcesService(IResourcesRepository repository, IMessageBus messageBus, ITelemetryCollector telemetryCollector) { _repository = repository ?? throw new ArgumentNullException(nameof(repository)); _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); _telemetryCollector = telemetryCollector ?? throw new ArgumentNullException(nameof(telemetryCollector)); }
public PerfomanceMonitor(ITelemetryCollector telemetryCollector) { _telemetryCollector = telemetryCollector ?? throw new ArgumentNullException(nameof(telemetryCollector)); }
public ResourcesController(IResourceService service, ITelemetryCollector telemetryCollector) { _service = service ?? throw new ArgumentNullException(nameof(service)); _telemetryCollector = telemetryCollector ?? throw new ArgumentNullException(nameof(telemetryCollector)); }