Example #1
0
        private async Task GenerateAlarmsFor(AlertingGroup alertingGroup, bool dryRun)
        {
            if (alertingGroup.DynamoDb?.Tables == null || alertingGroup.DynamoDb.Tables.Count == 0)
            {
                return;
            }

            await _populator.PopulateDynamoTableNames(alertingGroup);

            var snsTopic = await _snsCreator.EnsureSnsTopic(alertingGroup, dryRun);

            var readAlarms = AlarmTablesHelper.FilterForRead(alertingGroup);

            readAlarms.SnsTopicArn         = snsTopic;
            readAlarms.DryRun              = dryRun;
            readAlarms.ThrottlingThreshold = alertingGroup.DynamoDb.ThrottlingThreshold ?? AwsConstants.ThrottlingThreshold;

            await EnsureReadAlarms(readAlarms);

            var writeAlarms = AlarmTablesHelper.FilterForWrite(alertingGroup);

            writeAlarms.SnsTopicArn         = snsTopic;
            writeAlarms.DryRun              = dryRun;
            writeAlarms.ThrottlingThreshold = alertingGroup.DynamoDb.ThrottlingThreshold ?? AwsConstants.ThrottlingThreshold;

            await EnsureWriteAlarms(writeAlarms);
        }
Example #2
0
        private async Task GenerateAlarmsFor(AlertingGroup alertingGroup, bool dryRun)
        {
            if (alertingGroup.Sqs?.Queues == null || alertingGroup.Sqs.Queues.Count == 0)
            {
                return;
            }

            SetErrorDefaults(alertingGroup);

            await _queueNamePopulator.PopulateSqsNames(alertingGroup);

            var snsTopic = await _snsCreator.EnsureSnsTopic(alertingGroup, dryRun);

            var queueResourceNames = await _queueSource.GetResourceNamesAsync();

            await EnsureAllQueueAlarms(alertingGroup, queueResourceNames, snsTopic, dryRun);
        }