예제 #1
0
        public override MonitorWorkItem Start(ITaskExecutionContext context)
        {
            MonitorConfiguration monitorConfiguration = this._configuration.Get <MonitorConfiguration>();

            monitorConfiguration.Assert();
            return((new MonitorWorkItem(monitorConfiguration)).AddIgnoreFilter(new MessageContainsText(monitorConfiguration.IgnoreErrorsWithMessagesContaining)).AddTargetRedirect(new RedirectForMonitorTargets(monitorConfiguration.Targets)).AddMessageGroupingPatterns(monitorConfiguration.MessageGroupingPatterns));
        }
예제 #2
0
        public override bool IsDisabled(ITaskExecutionContext context)
        {
            MonitorConfiguration configuration = _configuration.Get <MonitorConfiguration>();

            context.TypedBag(ConfigurationName, configuration);

            return(configuration.Disabled);
        }
예제 #3
0
        public override MonitorWorkItem Start(ITaskExecutionContext context)
        {
            MonitorConfiguration configuration = context.TypedBag <MonitorConfiguration>(ConfigurationName);

            configuration.Assert();

            return(new MonitorWorkItem(configuration)
                   .AddIgnoreFilter(new MessageContainsText(configuration.IgnoreErrorsWithMessagesContaining))
                   .AddTargetRedirect(new RedirectForMonitorTargets(configuration.Targets))
                   .AddMessageGroupingPatterns(configuration.MessageGroupingPatterns));
        }
예제 #4
0
        public MonitorWorkItem(MonitorConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            DateTimeOffset utcNow = Time.UtcNow;

            if (configuration.LastRun > utcNow)
            {
                utcNow = configuration.LastRun;
            }
            this._checkRange      = new Range <DateTimeOffset>(configuration.LastRun, utcNow);
            this._entries         = new List <Tuple <Target, MonitorEntry> >();
            this._ignore          = new List <ISpecification <MonitorEntry> >();
            this._redirects       = ChainOfResponsibility.Empty <MonitorEntry, Target[]>();
            this._messageGrouping = new List <Regex>();
            this.Configuration    = configuration;
        }
예제 #5
0
        public MonitorWorkItem(MonitorConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            DateTimeOffset upperBound = Time.UtcNow;

            if (configuration.LastRun > upperBound)
            {
                upperBound = configuration.LastRun;
            }

            CheckRange       = new Range <DateTimeOffset>(configuration.LastRun, upperBound);
            _entries         = new List <Tuple <Target, MonitorEntry> >();
            _ignore          = new List <ISpecification <MonitorEntry> >();
            _redirects       = ChainOfResponsibility.Empty <MonitorEntry, Target[]>();
            _messageGrouping = new List <Regex>();

            Configuration = configuration;
        }