class PassengerMetrics::Cloudwatch
Constants
- DEFAULT_DIMENSION_NAME
- DEFAULT_DIMENSION_VALUE
- DEFAULT_METRIC_NAME
- DEFAULT_NAMESPACE
- METRIC_UNITS
Attributes
metric[RW]
Public Class Methods
new(metric = nil)
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 17 def initialize(metric = nil) self.metric = metric end
Public Instance Methods
put()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 21 def put client.put_metric_data(put_metric_data_payload) end
Private Instance Methods
client()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 79 def client @client ||= ::Aws::CloudWatch::Client.new region: 'us-east-1' end
default_dimensions()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 63 def default_dimensions [{:name => dimension_name, :value => dimension_value}] end
dimension_name()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 51 def dimension_name ENV["AWS_CLOUDWATCH_DIMENSION_NAME"] || DEFAULT_DIMENSION_NAME end
dimension_value()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 55 def dimension_value ENV["AWS_CLOUDWATCH_DIMENSION_VALUE"] || instance_id || DEFAULT_DIMENSION_VALUE end
dimensions()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 59 def dimensions (ENV["AWS_CLOUDWATCH_DIMENSIONS"] && JSON.parse(ENV["AWS_CLOUDWATCH_DIMENSIONS"])) || default_dimensions end
instance_id()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 83 def instance_id PassengerMetrics.instance_id end
metric_data()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 31 def metric_data [ { :metric_name => metric_name, :dimensions => dimensions, :timestamp => timestamp, :value => value, :unit => unit } ] end
metric_name()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 47 def metric_name metric.metric_name || ENV["AWS_CLOUDWATCH_METRIC_NAME"] || DEFAULT_METRIC_NAME end
namespace()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 43 def namespace ENV["AWS_CLOUDWATCH_NAMESPACE"] || DEFAULT_NAMESPACE end
put_metric_data_payload()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 27 def put_metric_data_payload {:namespace => namespace, :metric_data => metric_data} end
timestamp()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 67 def timestamp Time.now end
unit()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 75 def unit METRIC_UNITS[metric.unit] end
value()
click to toggle source
# File lib/passenger-metrics/cloudwatch.rb, line 71 def value metric.value end