예제 #1
0
        public void Send([NotNull] HealthCheckResult result)
        {
            Guard.AgainstNull(nameof(result), result);

            result.Finalize(result.CheckId, r => r.Level >= _settings.Threshold);
            if (result.Level >= _settings.Threshold)
            {
                _writeLine(_formatter.Format(result));
            }
        }
예제 #2
0
        public void Send([NotNull] HealthCheckResult result)
        {
            Guard.AgainstNull(nameof(result), result);

            SendHeartbeat();

            result.Finalize(result.CheckId, r => r.Level >= _settings.Threshold);
            if (result.Level >= _settings.Threshold)
            {
                NotifyFailureResult(result);
            }
        }
예제 #3
0
        public void Send([NotNull] HealthCheckResult result)
        {
            Guard.AgainstNull(nameof(result), result);

            if (_settings.DebounceTimeInSecs > 0 && DateTime.Now < _dontAlertBefore)
            {
                return;
            }

            result.Finalize(result.CheckId, r => r.Level >= _settings.Threshold);
            if (result.Level >= _settings.Threshold)
            {
                var message = new SlackMessage(result, _formatter);

                if (_settings.DebounceTimeInSecs > 0)
                {
                    _dontAlertBefore = DateTime.Now.AddSeconds(_settings.DebounceTimeInSecs);
                    message.AddAttachment("Debouncing messages until at least *" + _dontAlertBefore.ToString("yyyy-MM-dd, HH:mm:ss") + "*, even if more problems arise.");
                }

                SimpleRestUtils.PostToRestApi(_settings.Url, message);
            }
        }