Esempio n. 1
0
        public static AlarmLoaderAndGenerator CreateSystemUnderTest <T>(
            IResourceSource <T> source,
            IAlarmDimensionProvider <T> dimensionProvider,
            IResourceAttributesProvider <T> attributeProvider,
            Func <WatchmanConfiguration, WatchmanServiceConfiguration> mapper,
            IAlarmCreator creator,
            IConfigLoader loader
            ) where T : class
        {
            var fakeLogger = new Mock <IAlarmLogger>();

            var task = new ServiceAlarmTasks <T>(
                fakeLogger.Object,
                new ResourceNamePopulator <T>(fakeLogger.Object, source),
                new ServiceAlarmGenerator <T>(
                    creator,
                    new ServiceAlarmBuilder <T>(source, dimensionProvider, attributeProvider)),
                new OrphanResourcesReporter <T>(
                    new OrphanResourcesFinder <T>(source),
                    new OrphansLogger(fakeLogger.Object)),
                mapper
                );

            return(new AlarmLoaderAndGenerator(
                       fakeLogger.Object,
                       loader,
                       new Mock <IDynamoAlarmGenerator>().Object,
                       new Mock <IOrphanTablesReporter>().Object,
                       new Mock <ISqsAlarmGenerator>().Object,
                       new Mock <IOrphanQueuesReporter>().Object,
                       creator,
                       new[] { task }
                       ));
        }
 public SqsResourceAlarmGenerator(
     IAlarmDimensionProvider <QueueDataV2> dimensionProvider,
     IResourceAttributesProvider <QueueDataV2, SqsResourceConfig> attributeProvider, AlarmDefaults <QueueDataV2> defaultAlarms)
 {
     _dimensionProvider = dimensionProvider;
     _attributeProvider = attributeProvider;
     _defaultAlarms     = defaultAlarms;
 }
 public ResourceAlarmGenerator(
     IAlarmDimensionProvider <T> dimensionProvider,
     AlarmDefaults <T> defaultAlarms,
     IResourceAttributesProvider <T, TAlarmConfig> attributeProvider)
 {
     _dimensions        = dimensionProvider;
     _defaultAlarms     = defaultAlarms;
     _attributeProvider = attributeProvider;
 }
Esempio n. 4
0
 public ResourceAlarmGenerator(
     IResourceSource <T> tableSource,
     IAlarmDimensionProvider <T> dimensionProvider,
     IResourceAttributesProvider <T, TAlarmConfig> attributeProvider)
 {
     _tableSource = tableSource;
     _dimensions  = dimensionProvider;
     _builder     = new AlarmBuilder <T, TAlarmConfig>(attributeProvider);
 }
 public ServiceAlarmBuilder(
     IResourceSource <T> tableSource,
     IAlarmDimensionProvider <T> dimensionProvider,
     IResourceAttributesProvider <T, TAlarmConfig> attributeProvider)
 {
     _tableSource = tableSource;
     _dimensions  = dimensionProvider;
     _attributes  = attributeProvider;
 }
 public DynamoResourceAlarmGenerator(
     IResourceSource <TableDescription> tableSource,
     IAlarmDimensionProvider <TableDescription> dimensionProvider,
     IResourceAttributesProvider <TableDescription, ResourceConfig> attributeProvider)
 {
     _tableSource = tableSource;
     _dimensions  = dimensionProvider;
     _builder     = new AlarmBuilder <TableDescription, ResourceConfig>(attributeProvider);
 }
Esempio n. 7
0
 public DynamoResourceAlarmGenerator(
     IResourceSource <TableDescription> tableSource,
     IAlarmDimensionProvider <TableDescription> dimensionProvider,
     IResourceAttributesProvider <TableDescription, DynamoResourceConfig> attributeProvider,
     DynamoDbDefaults defaultAlarms)
 {
     _tableSource       = tableSource;
     _dimensions        = dimensionProvider;
     _attributeProvider = attributeProvider;
     _defaultAlarms     = defaultAlarms;
 }
Esempio n. 8
0
        public static AlarmLoaderAndGenerator CreateSystemUnderTest <T, TAlarmConfig>(
            IResourceSource <T> source,
            IAlarmDimensionProvider <T> dimensionProvider,
            IResourceAttributesProvider <T, TAlarmConfig> attributeProvider,
            Func <WatchmanConfiguration, WatchmanServiceConfiguration <TAlarmConfig> > mapper,
            IAlarmCreator creator,
            IConfigLoader loader
            )
            where T : class
            where TAlarmConfig : class, IServiceAlarmConfig <TAlarmConfig>, new()
        {
            var builder = new Builder(loader, creator);

            builder.AddService(source, dimensionProvider, attributeProvider, mapper);
            return(builder.Build());
        }
Esempio n. 9
0
        public void AddService <T, TAlarmConfig>(IResourceSource <T> source,
                                                 IAlarmDimensionProvider <T> dimensionProvider,
                                                 IResourceAttributesProvider <T, TAlarmConfig> attributeProvider,
                                                 Func <WatchmanConfiguration, WatchmanServiceConfiguration <TAlarmConfig> > mapper)
            where T : class
            where TAlarmConfig : class, IServiceAlarmConfig <TAlarmConfig>, new()
        {
            var task = new ServiceAlarmTasks <T, TAlarmConfig>(
                _logger,
                new ResourceNamePopulator <T, TAlarmConfig>(_logger, source),
                new OrphanResourcesReporter <T>(
                    new OrphanResourcesFinder <T>(source),
                    new OrphansLogger(_logger)),
                _creator,
                new ServiceAlarmBuilder <T, TAlarmConfig>(source, dimensionProvider, attributeProvider),
                mapper
                );

            _serviceAlarmTasks.Add(task);
        }
        public static async Task <Threshold> ExpandThreshold <T, TAlarmConfig>(
            IResourceAttributesProvider <T, TAlarmConfig> attributeProvider,
            T resource,
            TAlarmConfig config,
            Threshold threshold)
            where TAlarmConfig : class, IServiceAlarmConfig <TAlarmConfig>, new()
        {
            if (threshold.ThresholdType == ThresholdType.PercentageOf)
            {
                var fraction = threshold.Value / 100;
                var property = await attributeProvider.GetValue(resource, config, threshold.SourceAttribute);

                threshold = new Threshold
                {
                    ThresholdType = ThresholdType.Absolute,
                    Value         = fraction * (double)property
                };
            }

            return(threshold);
        }
Esempio n. 11
0
 public AlarmBuilder(IResourceAttributesProvider <T, TAlarmConfig> attributeProvider)
 {
     _attributeProvider = attributeProvider;
 }