Exemplo n.º 1
0
        public void TestInitialize()
        {
            this.throttleAllContainer = new DiagnoisticsEventThrottlingMock(
                throttleAll: true,
                signalJustExceeded: true,
                sampleCounters: new Dictionary <int, DiagnoisticsEventCounters>());

            this.notThrottleContainer = new DiagnoisticsEventThrottlingMock(
                throttleAll: false,
                signalJustExceeded: false,
                sampleCounters: new Dictionary <int, DiagnoisticsEventCounters>());

            this.scheduler = new DiagnoisticsEventThrottlingSchedulerMock();

            this.sender = new DiagnosticsEventCollectingMock();

            this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>(
                this.throttleAllContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.notThrottleManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>(
                this.notThrottleContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.listener = new DiagnosticsListener(new List <IDiagnosticsSender> {
                this.sender
            });

            this.listener.LogLevel = EventLevel.Verbose;
        }
        public void TestListenerWithDifferentSeverity()
        {
            var senderMock = new F5DiagnosticsSenderMock();
            var senders = new List<IDiagnosticsSender> { senderMock };
            using (var listener = new DiagnosticsListener(senders))
            {
#if SILVERLIGHT
                CoreEventSource.Log.EnableEventListener(listener);
#endif
                listener.LogLevel = EventLevel.Informational;

                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(0, senderMock.Messages.Count);

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                listener.LogLevel = EventLevel.Verbose;
                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();
                
                listener.LogLevel = EventLevel.Error;
                CoreEventSource.Log.LogError("Logging an error");
                Assert.AreEqual(1, senderMock.Messages.Count);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class.
        /// </summary>
        public DiagnosticsTelemetryModule()
        {
            // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called
            this.Senders.Add(new PortalDiagnosticsQueueSender());

            this.EventListener = new DiagnosticsListener(this.Senders);
        }
        public void TestListenerWithDifferentSeverity()
        {
            var senderMock = new DiagnosticsSenderMock();
            var senders    = new List <IDiagnosticsSender> {
                senderMock
            };

            using (var listener = new DiagnosticsListener(senders))
            {
                listener.LogLevel = EventLevel.Informational;

                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(0, senderMock.Messages.Count);

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                listener.LogLevel = EventLevel.Verbose;
                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                listener.LogLevel = EventLevel.Error;
                CoreEventSource.Log.LogError("Logging an error");
                Assert.AreEqual(1, senderMock.Messages.Count);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class. 
        /// </summary>
        public DiagnosticsTelemetryModule()
        {
            // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called
            this.Senders.Add(new PortalDiagnosticsQueueSender());

            this.Senders.Add(new F5DiagnosticsSender());
            this.EventListener = new DiagnosticsListener(this.Senders);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class.
        /// </summary>
        public DiagnosticsTelemetryModule()
        {
            // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called
            this.Senders.Add(new PortalDiagnosticsQueueSender());

            this.EventListener = new DiagnosticsListener(this.Senders);

            this.heartbeatInterval = Tracing.HeartbeatProvider.DefaultHeartbeatInterval;

            this.HeartbeatProvider = new HeartbeatProvider();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class.
        /// </summary>
        public DiagnosticsTelemetryModule()
        {
            // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called
            this.Senders.Add(new PortalDiagnosticsQueueSender());

            this.Senders.Add(new F5DiagnosticsSender());
            this.EventListener = new DiagnosticsListener(this.Senders);

#if Wp80
            CoreEventSource.Log.EnableEventListener(this.EventListener);
#endif
        }
        public void TestEventSending()
        {
            var senderMock = new F5DiagnosticsSenderMock();
            var senders = new List<IDiagnosticsSender> { senderMock };
            using (var listener = new DiagnosticsListener(senders))
            {
                listener.LogLevel = EventLevel.Verbose;
                CoreEventSource.Log.LogVerbose("failure");
            }

            Assert.AreEqual(1, senderMock.Messages.Count);
            Assert.AreEqual("[msg=Log verbose];[msg=failure]", senderMock.Messages[0]);
        }
        public void TestEventSending()
        {
            var senderMock = new DiagnosticsSenderMock();
            var senders    = new List <IDiagnosticsSender> {
                senderMock
            };

            using (var listener = new DiagnosticsListener(senders))
            {
                listener.LogLevel = EventLevel.Verbose;
                CoreEventSource.Log.LogVerbose("failure");
            }

            Assert.AreEqual(1, senderMock.Messages.Count);
            Assert.AreEqual("[msg=Log verbose];[msg=failure]", senderMock.Messages[0]);
        }
        public DiagnoisticsEventThrottlingManagerTest()
        {
            this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager<DiagnoisticsEventThrottlingMock>(
                this.throttleAllContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.notThrottleManager = new DiagnoisticsEventThrottlingManager<DiagnoisticsEventThrottlingMock>(
                this.notThrottleContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.listener = new DiagnosticsListener(new List<IDiagnosticsSender> { this.sender });

            this.listener.LogLevel = EventLevel.Verbose;
        }
        public void TestConstructorThrowsArgumentException()
        {
            bool failedWithExpectedException = false;
            try
            {
                using (var listener = new DiagnosticsListener(null))
                {
                    // nop
                }
            }
            catch (ArgumentNullException)
            {
                failedWithExpectedException = true;
            }

            Assert.IsTrue(failedWithExpectedException);
        }
Exemplo n.º 12
0
        public DiagnosticsEventListener(DiagnosticsListener listener, EventLevel logLevel)
        {
            this.listener = listener;
            this.logLevel = logLevel;

            List <EventSource> eventSources;

            lock (this.eventSourcesDuringConstruction)
            {
                eventSources = this.eventSourcesDuringConstruction;
                this.eventSourcesDuringConstruction = null;
            }

            foreach (var eventSource in eventSources)
            {
                this.EnableEvents(eventSource, this.logLevel, (EventKeywords)AllKeyword);
            }
        }
        public DiagnoisticsEventThrottlingManagerTest()
        {
            this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>(
                this.throttleAllContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.notThrottleManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>(
                this.notThrottleContainer,
                this.scheduler,
                SampleIntervalInMinutes);

            this.listener = new DiagnosticsListener(new List <IDiagnosticsSender> {
                this.sender
            });

            this.listener.LogLevel = EventLevel.Verbose;
        }
        public void TestConstructorThrowsArgumentException()
        {
            bool failedWithExpectedException = false;

            try
            {
                using (var listener = new DiagnosticsListener(null))
                {
                    // nop
                }
            }
            catch (ArgumentNullException)
            {
                failedWithExpectedException = true;
            }

            Assert.IsTrue(failedWithExpectedException);
        }
        public void TestEventSourceLogLevelWhenEventSourceIsAlreadyCreated()
        {
            using (var testEventSource = new TestEventSource())
            {
                var senderMock = new DiagnosticsSenderMock();
                var senders    = new List <IDiagnosticsSender> {
                    senderMock
                };
                using (var listener = new DiagnosticsListener(senders))
                {
                    const EventKeywords AllKeyword = (EventKeywords)(-1);
                    // The default level is EventLevel.Error
                    Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Error, AllKeyword));

                    // So Verbose should not be enabled
                    Assert.IsFalse(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword));

                    listener.LogLevel = EventLevel.Verbose;
                    Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword));
                }
            }
        }
Exemplo n.º 16
0
 public void EnableEventListener(DiagnosticsListener listener)
 {
     this.eventListener = listener;
 }
 public DiagnosticsEventListener(DiagnosticsListener listener, EventLevel logLevel)
 {
     this.listener = listener;
     this.logLevel = logLevel;
 }
        public void TestListenerWithDifferentSeverity()
        {
            // Ensure there are no left-over DiagnosticTelemetryModules
            // from previous tests that will mess up this one.
            TelemetryConfiguration.Active.Dispose();
            var modules = TelemetryModules.Instance.Modules;

            if (modules != null)
            {
                foreach (var module in modules)
                {
                    (module as IDisposable)?.Dispose();
                }

                modules.Clear();
            }

            var senderMock = new DiagnosticsSenderMock();
            var senders    = new List <IDiagnosticsSender> {
                senderMock
            };

            using (var listener = new DiagnosticsListener(senders))
            {
                const EventKeywords AllKeyword = (EventKeywords)(-1);
                Assert.IsTrue(CoreEventSource.Log.IsEnabled(), "Fail: eventSource should be enabled.");
                Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Error, AllKeyword), "Fail: Error is expected to be enabled by default");


                listener.LogLevel = EventLevel.Informational;
                Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Informational, AllKeyword), "Fail: Informational is expected to be enabled");

                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(0, senderMock.Messages.Count);

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                listener.LogLevel = EventLevel.Verbose;
                Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Verbose, AllKeyword), "Fail: Verbose is expected to be enabled");

                CoreEventSource.Log.LogVerbose("Some verbose tracing");
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1);
                Assert.AreEqual(1, senderMock.Messages.Count);

                senderMock.Messages.Clear();

                listener.LogLevel = EventLevel.Error;
                Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Error, AllKeyword), "Fail: Error is expected to be enabled");

                CoreEventSource.Log.LogError("Logging an error");

                // If you see the following assert fail, it's because another test has
                // leaked a DiagnosticsTelemetryModule (via TelemetryConfiguration.Active
                // for example). There will be a DiagnosticEventListener which forwards
                // error messages to a PortalDiagnosticsSender. That listener is still
                // getting events from EventSources. We send an Error event, which goes
                // not only to our listener here, but also to the leaked one. The event
                // gets forwarded to the PortalDiagnosticsSender. That turns the event
                // into TraceTelemetry and tries to transmit it. Since we set the event
                // level to verbose earlier, RichPayloadEventSource is is enabled and
                // it writes the TraceTelemetry to all listeners (including us).
                // Unfortuantely, the TraceTelemetry contains a nullable field which
                // triggers a known .NET Core 2.0 bug inside WriteEvent. The internal
                // exception gets reported as an error from WriteEvent resulting in another
                // event with EventLevel.Error being reported here.
                Assert.AreEqual(1, senderMock.Messages.Count);
            }
        }
 public void TestConstructorThrowsArgumentException()
 {
     var listener = new DiagnosticsListener(null);
 }
 public DiagnosticsEventListener(DiagnosticsListener listener, EventLevel logLevel)
 {
     this.listener = listener;
     this.logLevel = logLevel;
 }
 public void EnableEventListener(DiagnosticsListener listener)
 {
     this.eventListener = listener;
 }