module CloudWatchMetrics::Util
Constants
- MAX_METRIC_DATA_PER_PUT
docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html
Public Class Methods
accept_hash(option_parser)
click to toggle source
# File lib/cloud_watch_metrics/util.rb, line 13 def accept_hash(option_parser) option_parser.accept(Hash) do |s,| break s unless s s .split(',').reject(&:empty?) .map { |kv| kv.include?('=') ? kv.split('=', 2) : [kv, true] } .to_h end end
put_metric_data(namespace, metric_data, dryrun: false)
click to toggle source
@return [void]
# File lib/cloud_watch_metrics/util.rb, line 24 def put_metric_data(namespace, metric_data, dryrun: false) return dump_metric_data(namespace, metric_data) if dryrun metric_data.each_slice(MAX_METRIC_DATA_PER_PUT).map do |data| Thread.start(data, cloudwatch) do |data_, cloudwatch_| cloudwatch_.put_metric_data( namespace: namespace, metric_data: data_, ) end end.each(&:join) end
Private Class Methods
cloudwatch()
click to toggle source
# File lib/cloud_watch_metrics/util.rb, line 39 def cloudwatch @_cloudwatch ||= Aws::CloudWatch::Client.new end
dump_metric_data(namespace, metric_data)
click to toggle source
# File lib/cloud_watch_metrics/util.rb, line 43 def dump_metric_data(namespace, metric_data) json = { namespace: namespace, metric_data: metric_data }.to_json( indent: ' ' * 2, space: ' ', object_nl: "\n", array_nl: "\n", ) puts json end