cfn-guardian 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbe63daad265c8b1868992f73fbb38fd68a65833745264f2a276ea1cbe9a4cda
4
- data.tar.gz: d3bb8f9a33a80d6e56b8040b712ffcfca3b0d5c958e22cc7d6983c204cbd65d4
3
+ metadata.gz: 7998606f2ce8404ce0b55dddb9e5d1f4936cd5529364e0b909b1ea3133163ac8
4
+ data.tar.gz: 82f582858ae75993fc77966e2ae42d9142a1b16a428f74f67f5c1afb2b74854e
5
5
  SHA512:
6
- metadata.gz: 3135ca24580cbdbf1d361f3c4ada2e0fcf5b401d3a9a1aaf01d0ac366e51375d6de4251d41254cdfe5153f190ec339c7f79e5d79917cc31a502a9d216a8bee33
7
- data.tar.gz: f8f9b8a6846747ff1e5cb2ae38c07302d2ef10ee0c5b8d617461c958f68316e36d93f2a8fb7cec4308023861ef70b48d26e212248f96b53e0988589e6d57fb41
6
+ metadata.gz: f3bda3d2c3c6665749843206c10f3260a5862d87b9f8e066c17eb2b52b996a2911dd619435a16f52336c6aa534a2a0cc39caa03859f1f5f32f6b31182736b44c
7
+ data.tar.gz: '0665209c6f4e74710383cf37be0a63446e38ed1b89fe6072b8efd030b0b4a010e31f7b54bfed456ea0bd866929b8d769b77506de2e4b5199357bd91fc8ae6213'
data/README.md CHANGED
@@ -23,7 +23,7 @@ CfnGuardian is a AWS monitoring tool with a few capabilities:
23
23
 
24
24
  **Supported AWS Resources**
25
25
 
26
- - AmazonMq
26
+ - AmazonMq(RabbitMQ and ActiveMQ)
27
27
  - ApiGateway
28
28
  - Application Targetgroups
29
29
  - Network TargetGroups
data/lib/cfnguardian.rb CHANGED
@@ -50,7 +50,7 @@ module CfnGuardian
50
50
  compiler = CfnGuardian::Compile.new(options[:config])
51
51
  compiler.get_resources
52
52
  compiler.compile_templates(s3.bucket,s3.path)
53
- logger.info "Clouformation templates compiled successfully in out/ directory"
53
+ logger.info "Cloudformation templates compiled successfully in out/ directory"
54
54
  if options[:validate]
55
55
  s3.create_bucket_if_not_exists()
56
56
  validator = CfnGuardian::Validate.new(s3.bucket)
@@ -58,7 +58,7 @@ module CfnGuardian
58
58
  logger.error("One or more templates failed to validate")
59
59
  exit(1)
60
60
  else
61
- logger.info "Clouformation templates were validated successfully"
61
+ logger.info "Cloudformation templates were validated successfully"
62
62
  end
63
63
  end
64
64
  logger.warn "AWS cloudwatch alarms defined in the templates will cost roughly $#{'%.2f' % compiler.cost} per month"
@@ -96,7 +96,7 @@ module CfnGuardian
96
96
  compiler.get_resources
97
97
  compiler.compile_templates(s3.bucket,s3.path)
98
98
  parameters = compiler.load_parameters(options)
99
- logger.info "Clouformation templates compiled successfully in out/ directory"
99
+ logger.info "Cloudformation templates compiled successfully in out/ directory"
100
100
 
101
101
  s3.create_bucket_if_not_exists
102
102
  validator = CfnGuardian::Validate.new(s3.bucket)
@@ -104,7 +104,7 @@ module CfnGuardian
104
104
  logger.error("One or more templates failed to validate")
105
105
  exit(1)
106
106
  else
107
- logger.info "Clouformation templates were validated successfully"
107
+ logger.info "Cloudformation templates were validated successfully"
108
108
  end
109
109
 
110
110
  deployer = CfnGuardian::Deploy.new(options,s3.bucket,parameters)
@@ -36,6 +36,7 @@ require 'cfnguardian/resources/sftp'
36
36
  require 'cfnguardian/resources/internal_sftp'
37
37
  require 'cfnguardian/resources/tls'
38
38
  require 'cfnguardian/resources/azure_file'
39
+ require 'cfnguardian/resources/amazonmq_rabbitmq'
39
40
  require 'cfnguardian/version'
40
41
  require 'cfnguardian/error'
41
42
 
@@ -1,6 +1,15 @@
1
1
  Resources:
2
2
  AmazonMQBroker:
3
3
  - Id: Default
4
+ AmazonMQRabbitMQBroker:
5
+ - Id: Default
6
+ AmazonMQRabbitMQNode:
7
+ - Id: Default
8
+ Node: Default
9
+ AmazonMQRabbitMQQueue:
10
+ - Id: Default
11
+ Queue: Default
12
+ Vhost: Default
4
13
  ApiGateway:
5
14
  - Id: Default
6
15
  ApplicationTargetGroup:
@@ -94,6 +94,40 @@ module CfnGuardian
94
94
  @dimensions = { Broker: resource['Id'] }
95
95
  end
96
96
  end
97
+
98
+ class AmazonMQRabbitMQBrokerAlarm < BaseAlarm
99
+ def initialize(resource)
100
+ super(resource)
101
+ @group = 'AmazonMQRabbitMQBroker'
102
+ @namespace = 'AWS/AmazonMQ'
103
+ @dimensions = { Broker: resource['Id'] }
104
+ end
105
+ end
106
+
107
+ class AmazonMQRabbitMQNodeAlarm < BaseAlarm
108
+ def initialize(resource)
109
+ super(resource)
110
+ @group = 'AmazonMQRabbitMQNode'
111
+ @namespace = 'AWS/AmazonMQ'
112
+ @dimensions = {
113
+ Broker: resource['Id'],
114
+ Node: resource['Node']
115
+ }
116
+ end
117
+ end
118
+
119
+ class AmazonMQRabbitMQQueueAlarm < BaseAlarm
120
+ def initialize(resource)
121
+ super(resource)
122
+ @group = 'AmazonMQRabbitMQQueue'
123
+ @namespace = 'AWS/AmazonMQ'
124
+ @dimensions = {
125
+ Broker: resource['Id'],
126
+ Queue: resource['Queue'],
127
+ VirtualHost: resource['Vhost']
128
+ }
129
+ end
130
+ end
97
131
 
98
132
  class CloudFrontDistributionAlarm < BaseAlarm
99
133
  def initialize(resource)
@@ -0,0 +1,136 @@
1
+ module CfnGuardian::Resource
2
+ class AmazonMQRabbitMQBroker < Base
3
+
4
+ def default_alarms
5
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQBrokerAlarm.new(@resource)
6
+ alarm.name = 'ConnectionCountCritical'
7
+ alarm.metric_name = 'ConnectionCount'
8
+ alarm.comparison_operator = 'GreaterThanThreshold'
9
+ alarm.statistic = 'Maximum'
10
+ alarm.threshold = 50
11
+ alarm.evaluation_periods = 5
12
+ alarm.treat_missing_data = 'notBreaching'
13
+ @alarms.push(alarm)
14
+
15
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQBrokerAlarm.new(@resource)
16
+ alarm.name = 'ConnectionCountWarn'
17
+ alarm.metric_name = 'ConnectionCount'
18
+ alarm.comparison_operator = 'GreaterThanThreshold'
19
+ alarm.statistic = 'Maximum'
20
+ alarm.threshold = 25
21
+ alarm.evaluation_periods = 5
22
+ alarm.treat_missing_data = 'notBreaching'
23
+ alarm.alarm_action = 'Warning'
24
+ @alarms.push(alarm)
25
+
26
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQBrokerAlarm.new(@resource)
27
+ alarm.name = 'MessageCountCritical'
28
+ alarm.metric_name = 'MessageCount'
29
+ alarm.comparison_operator = 'GreaterThanThreshold'
30
+ alarm.statistic = 'Maximum'
31
+ alarm.threshold = 500
32
+ alarm.evaluation_periods = 5
33
+ alarm.treat_missing_data = 'notBreaching'
34
+ @alarms.push(alarm)
35
+
36
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQBrokerAlarm.new(@resource)
37
+ alarm.name = 'MessageCountWarn'
38
+ alarm.metric_name = 'MessageCount'
39
+ alarm.comparison_operator = 'GreaterThanThreshold'
40
+ alarm.statistic = 'Maximum'
41
+ alarm.threshold = 250
42
+ alarm.evaluation_periods = 5
43
+ alarm.treat_missing_data = 'notBreaching'
44
+ alarm.alarm_action = 'Warning'
45
+ @alarms.push(alarm)
46
+
47
+ end
48
+ end
49
+
50
+ class AmazonMQRabbitMQQueue < Base
51
+
52
+ def default_alarms
53
+
54
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQQueueAlarm.new(@resource)
55
+ alarm.name = 'MessageCountHighWarn'
56
+ alarm.metric_name = 'MessageCount'
57
+ alarm.comparison_operator = 'GreaterThanThreshold'
58
+ alarm.statistic = 'Maximum'
59
+ alarm.threshold = 100
60
+ alarm.evaluation_periods = 5
61
+ alarm.treat_missing_data = 'notBreaching'
62
+ alarm.alarm_action = 'Warning'
63
+ @alarms.push(alarm)
64
+
65
+ end
66
+ end
67
+
68
+ class AmazonMQRabbitMQNode < Base
69
+
70
+ def default_alarms
71
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
72
+ alarm.name = 'SystemCpuUtilizationCritical'
73
+ alarm.metric_name = 'SystemCpuUtilization'
74
+ alarm.comparison_operator = 'GreaterThanThreshold'
75
+ alarm.statistic = 'Maximum'
76
+ alarm.threshold = 95
77
+ alarm.evaluation_periods = 10
78
+ alarm.treat_missing_data = 'notBreaching'
79
+ @alarms.push(alarm)
80
+
81
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
82
+ alarm.name = 'SystemCpuUtilizationHighBase'
83
+ alarm.metric_name = 'SystemCpuUtilization'
84
+ alarm.comparison_operator = 'GreaterThanThreshold'
85
+ alarm.statistic = 'Maximum'
86
+ alarm.threshold = 75
87
+ alarm.evaluation_periods = 30
88
+ alarm.treat_missing_data = 'notBreaching'
89
+ alarm.alarm_action = 'Warning'
90
+ @alarms.push(alarm)
91
+
92
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
93
+ alarm.name = 'RabbitMQMemUsedCritical'
94
+ alarm.metric_name = 'RabbitMQMemUsed'
95
+ alarm.comparison_operator = 'GreaterThanThreshold'
96
+ alarm.statistic = 'Maximum'
97
+ alarm.threshold = 390000000
98
+ alarm.evaluation_periods = 5
99
+ alarm.treat_missing_data = 'notBreaching'
100
+ @alarms.push(alarm)
101
+
102
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
103
+ alarm.name = 'RabbitMQMemUsedWarn'
104
+ alarm.metric_name = 'RabbitMQMemUsed'
105
+ alarm.comparison_operator = 'GreaterThanThreshold'
106
+ alarm.statistic = 'Maximum'
107
+ alarm.threshold = 350000000
108
+ alarm.evaluation_periods = 5
109
+ alarm.treat_missing_data = 'notBreaching'
110
+ alarm.alarm_action = 'Warning'
111
+ @alarms.push(alarm)
112
+
113
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
114
+ alarm.name = 'RabbitMQDiskFreeLimitCritical'
115
+ alarm.metric_name = 'RabbitMQDiskFreeLimit'
116
+ alarm.comparison_operator = 'LessThanThreshold'
117
+ alarm.statistic = 'Maximum'
118
+ alarm.threshold = 1200000000
119
+ alarm.evaluation_periods = 5
120
+ alarm.treat_missing_data = 'notBreaching'
121
+ @alarms.push(alarm)
122
+
123
+ alarm = CfnGuardian::Models::AmazonMQRabbitMQNodeAlarm.new(@resource)
124
+ alarm.name = 'RabbitMQDiskFreeLimitWarn'
125
+ alarm.metric_name = 'RabbitMQDiskFreeLimit'
126
+ alarm.comparison_operator = 'LessThanThreshold'
127
+ alarm.statistic = 'Maximum'
128
+ alarm.threshold = 1200000000
129
+ alarm.evaluation_periods = 5
130
+ alarm.treat_missing_data = 'notBreaching'
131
+ alarm.alarm_action = 'Warning'
132
+ @alarms.push(alarm)
133
+
134
+ end
135
+ end
136
+ end
@@ -20,9 +20,9 @@ module CfnGuardian::Resource
20
20
  alarm = CfnGuardian::Models::RedshiftClusterAlarm.new(@resource)
21
21
  alarm.name = 'UnHealthyCluster'
22
22
  alarm.metric_name = 'HealthStatus'
23
- alarm.threshold = 0
23
+ alarm.comparison_operator = 'LessThanThreshold'
24
+ alarm.threshold = 1
24
25
  alarm.evaluation_periods = 10
25
- alarm.treat_missing_data = 'notBreaching'
26
26
  @alarms.push(alarm)
27
27
  end
28
28
 
@@ -1,4 +1,4 @@
1
1
  module CfnGuardian
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  CHANGE_SET_VERSION = VERSION.gsub('.', '-').freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-guardian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guslington
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-04 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -271,6 +271,7 @@ files:
271
271
  - lib/cfnguardian/models/event_subscription.rb
272
272
  - lib/cfnguardian/models/metric_filter.rb
273
273
  - lib/cfnguardian/resources/amazonmq_broker.rb
274
+ - lib/cfnguardian/resources/amazonmq_rabbitmq.rb
274
275
  - lib/cfnguardian/resources/apigateway.rb
275
276
  - lib/cfnguardian/resources/application_targetgroup.rb
276
277
  - lib/cfnguardian/resources/autoscaling_group.rb