class Meteorlog::Wrapper::MetricFilter
Constants
- DEFAULT_VALUES
Public Class Methods
new(cloud_watch_logs, metric_filter, log_group, options = {})
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 11 def initialize(cloud_watch_logs, metric_filter, log_group, options = {}) @cloud_watch_logs = cloud_watch_logs @metric_filter = metric_filter @log_group = log_group @options = options end
Public Instance Methods
delete()
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 36 def delete log(:info, 'Delete MetricFilter', :red, "#{self.log_group_name} > #{self.filter_name}") unless @options[:dry_run] @cloud_watch_logs.delete_metric_filter( :log_group_name => self.log_group_name, :filter_name => self.filter_name) @options[:modified] = true end end
eql?(dsl)
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 18 def eql?(dsl) diff(dsl).empty? end
update(dsl)
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 22 def update(dsl) delta = diff(dsl) log(:info, 'Update MetricFilter', :green, "#{self.log_group_name} > #{self.filter_name}: #{format_delta(delta)}") unless @options[:dry_run] @cloud_watch_logs.put_metric_filter( :log_group_name => self.log_group_name, :filter_name => self.filter_name, :filter_pattern => dsl[:filter_pattern] || '', :metric_transformations => dsl[:metric_transformations]) @options[:modified] = true end end
Private Instance Methods
diff(dsl)
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 49 def diff(dsl) delta = {} [ [:filter_pattern, self.filter_pattern, dsl[:filter_pattern]], [:metric_transformations, self.metric_transformations.map {|i| i.to_h }, dsl[:metric_transformations]], ].each do |name, self_value, dsl_value| if normalize(name, self_value) != normalize(name, dsl_value) delta[name] = {:old => self_value, :new => dsl_value} end end return delta end
format_delta(delta)
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 65 def format_delta(delta) delta.map {|name, values| "#{name}(#{values[:old].inspect} --> #{values[:new].inspect})" }.join(', ') end
normalize(name, value)
click to toggle source
# File lib/meteorlog/wrapper/metric_filter.rb, line 71 def normalize(name, value) if [Array, Hash].any? {|c| value.kind_of?(c) } value.sort_by {|i| i.to_s } elsif DEFAULT_VALUES.has_key?(name) and value.nil? DEFAULT_VALUES[name] else value end end