Class: Fog::AWS::CloudWatch::Real
- Inherits:
-
Object
- Object
- Fog::AWS::CloudWatch::Real
- Defined in:
- lib/fog/aws/cloud_watch.rb,
lib/fog/aws/requests/cloud_watch/list_metrics.rb,
lib/fog/aws/requests/cloud_watch/delete_alarms.rb,
lib/fog/aws/requests/cloud_watch/describe_alarms.rb,
lib/fog/aws/requests/cloud_watch/put_metric_data.rb,
lib/fog/aws/requests/cloud_watch/set_alarm_state.rb,
lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb,
lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb,
lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb,
lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb,
lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb,
lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb
Instance Method Summary collapse
-
#delete_alarms(alarm_names) ⇒ Object
Delete a list of alarms ==== Options * AlarmNames<~Array>: A list of alarms to be deleted.
-
#describe_alarm_history(options = {}) ⇒ Object
Retrieves history for the specified alarm ==== Options * AlarmName<~String>: The name of the alarm * EndDate<~DateTime>: The ending date to retrieve alarm history * HistoryItemType<~String>: The type of alarm histories to retrieve * MaxRecords<~Integer>: The maximum number of alarm history records to retrieve * NextToken<~String> The token returned by a previous call to indicate that there is more data available * StartData<~DateTime>: The starting date to retrieve alarm history.
-
#describe_alarms(options = {}) ⇒ Object
Retrieves alarms with the specified names ==== Options * ActionPrefix<~String>: The action name prefix * AlarmNamePrefix<~String>: The alarm name prefix.
-
#describe_alarms_for_metric(options) ⇒ Object
Retrieves all alarms for a single metric ==== Options * Dimensions<~Array>: a list of dimensions to filter against Name : The name of the dimension Value : The value to filter against * MetricName<~String>: The name of the metric * Namespace<~String>: The namespace of the metric * Period<~Integer>: The period in seconds over which the statistic is applied * Statistics<~String>: The statistic for the metric * Unit<~String> The unit for the metric.
-
#disable_alarm_actions(alarm_names) ⇒ Object
Disables actions for the specified alarms ==== Options * AlarmNames<~Array>: The names of the alarms to disable actions for.
-
#enable_alarm_actions(alarm_names) ⇒ Object
Enables actions for the specified alarms ==== Options * AlarmNames<~Array>: The names of the alarms to enable actions for.
-
#get_metric_statistics(options = {}) ⇒ Object
Fetch datapoints for a metric.
-
#initialize(options = {}) ⇒ Real
constructor
Initialize connection to Cloudwatch.
-
#list_metrics(options = {}) ⇒ Object
List availabe metrics.
-
#put_metric_alarm(options) ⇒ Object
Creates or updates an alarm and associates it with the specified Amazon CloudWatch metric ==== Options * ActionsEnabled<~Boolean>: Indicates whether or not actions should be executed during any changes to the alarm’s state * AlarmActions<~Array>: A list of actions to execute * AlarmDescription<~String>: The description for the alarm * AlarmName<~String> The unique name for the alarm * ComparisonOperator<~String>: The arithmetic operation to use for comparison * Dimensions<~Array>: a list of dimensions to filter against, Name : The name of the dimension Value : The value to filter against * EvaluationPeriods<~Integer>: The number of periods over which data is compared to the specified threshold * InsufficientDataActions<~Array>: A list of actions to execute * MetricName<~String>: The name for the alarm’s associated metric * Namespace<~String>: The namespace for the alarm’s associated metric * OKActions<~Array>: A list of actions to execute * Period<~Integer>: The period in seconds over which the specified statistic is applied * Statistic<~String>: The statistic to apply to the alarm’s associated metric * Threshold<~Double>: The value against which the specified statistic is compared * Unit<~String>: The unit for the alarm’s associated metric.
-
#put_metric_data(namespace, metric_data) ⇒ Object
Publishes one or more data points to CloudWatch.
- #reload ⇒ Object
-
#set_alarm_state(options) ⇒ Object
Temporarily sets the state of an alarm ==== Options * AlarmName<~String>: The names of the alarm * StateReason<~String>: The reason that this alarm is set to this specific state (in human-readable text format) * StateReasonData<~String>: The reason that this alarm is set to this specific state (in machine-readable JSON format) * StateValue<~String>: The value of the state.
Constructor Details
#initialize(options = {}) ⇒ Real
Initialize connection to Cloudwatch
Notes
options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection
Examples
elb = CloudWatch.new(
:aws_access_key_id => your_aws_access_key_id,
:aws_secret_access_key => your_aws_secret_access_key
)
Parameters
-
options<~Hash> - config arguments for connection. Defaults to {}.
-
region<~String> - optional region to use. For instance, ‘eu-west-1’, ‘us-east-1’, etc.
-
Returns
-
CloudWatch object with connection to AWS.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/fog/aws/cloud_watch.rb', line 64 def initialize(={}) @aws_access_key_id = [:aws_access_key_id] @aws_secret_access_key = [:aws_secret_access_key] @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key) @connection_options = [:connection_options] || {} [:region] ||= 'us-east-1' @host = [:host] || "monitoring.#{[:region]}.amazonaws.com" @path = [:path] || '/' @persistent = [:persistent] || false @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options) end |
Instance Method Details
#delete_alarms(alarm_names) ⇒ Object
Delete a list of alarms
Options
-
AlarmNames<~Array>: A list of alarms to be deleted
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/index.html?API_DeleteAlarms.html
19 20 21 22 23 24 25 26 |
# File 'lib/fog/aws/requests/cloud_watch/delete_alarms.rb', line 19 def delete_alarms(alarm_names) = {} .merge!(AWS.indexed_param('AlarmNames.member.%d', [*alarm_names])) request({ 'Action' => 'DeleteAlarms', :parser => Fog::Parsers::AWS::CloudWatch::DeleteAlarms.new }.merge()) end |
#describe_alarm_history(options = {}) ⇒ Object
Retrieves history for the specified alarm
Options
-
AlarmName<~String>: The name of the alarm
-
EndDate<~DateTime>: The ending date to retrieve alarm history
-
HistoryItemType<~String>: The type of alarm histories to retrieve
-
MaxRecords<~Integer>: The maximum number of alarm history records to retrieve
-
NextToken<~String> The token returned by a previous call to indicate that there is more data available
-
StartData<~DateTime>: The starting date to retrieve alarm history
Returns
-
response<~Excon::Response>:
See Also
24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb', line 24 def describe_alarm_history(={}) request({ 'Action' => 'DescribeAlarmHistory', :parser => Fog::Parsers::AWS::CloudWatch::DescribeAlarmHistory.new }.merge()) end |
#describe_alarms(options = {}) ⇒ Object
Retrieves alarms with the specified names
Options
-
ActionPrefix<~String>: The action name prefix
-
AlarmNamePrefix<~String>: The alarm name prefix.
AlarmNames cannot be specified if this parameter is specified
-
AlarmNames<~Array>: A list of alarm names to retrieve information for.
-
MaxRecords<~Integer>: The maximum number of alarm descriptions to retrieve
-
NextToken<~String>: The token returned by a previous call to indicate that there is more data available
-
NextToken<~String> The token returned by a previous call to indicate that there is more data available
-
StateValue<~String>: The state value to be used in matching alarms
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html
26 27 28 29 30 31 32 33 34 |
# File 'lib/fog/aws/requests/cloud_watch/describe_alarms.rb', line 26 def describe_alarms(={}) if alarm_names = .delete('AlarmNames') .merge!(AWS.indexed_param('AlarmNames.member.%d', [*alarm_names])) end request({ 'Action' => 'DescribeAlarms', :parser => Fog::Parsers::AWS::CloudWatch::DescribeAlarms.new }.merge()) end |
#describe_alarms_for_metric(options) ⇒ Object
Retrieves all alarms for a single metric
Options
-
Dimensions<~Array>: a list of dimensions to filter against
Name : The name of the dimension Value : The value to filter against
-
MetricName<~String>: The name of the metric
-
Namespace<~String>: The namespace of the metric
-
Period<~Integer>: The period in seconds over which the statistic is applied
-
Statistics<~String>: The statistic for the metric
-
Unit<~String> The unit for the metric
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb', line 26 def describe_alarms_for_metric() if dimensions = .delete('Dimensions') .merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']})) .merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']})) end request({ 'Action' => 'DescribeAlarmsForMetric', :parser => Fog::Parsers::AWS::CloudWatch::DescribeAlarmsForMetric.new }.merge()) end |
#disable_alarm_actions(alarm_names) ⇒ Object
Disables actions for the specified alarms
Options
-
AlarmNames<~Array>: The names of the alarms to disable actions for
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_DisableAlarmActions.html
19 20 21 22 23 24 25 26 |
# File 'lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb', line 19 def disable_alarm_actions(alarm_names) = {} .merge!(AWS.indexed_param('AlarmNames.member.%d', [*alarm_names])) request({ 'Action' => 'DisableAlarmActions', :parser => Fog::Parsers::AWS::CloudWatch::DisableAlarmActions.new }.merge()) end |
#enable_alarm_actions(alarm_names) ⇒ Object
Enables actions for the specified alarms
Options
-
AlarmNames<~Array>: The names of the alarms to enable actions for
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html
19 20 21 22 23 24 25 26 |
# File 'lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb', line 19 def enable_alarm_actions(alarm_names) = {} .merge!(AWS.indexed_param('AlarmNames.member.%d', [*alarm_names])) request({ 'Action' => 'EnableAlarmActions', :parser => Fog::Parsers::AWS::CloudWatch::EnableAlarmActions.new }.merge()) end |
#get_metric_statistics(options = {}) ⇒ Object
Fetch datapoints for a metric. At most 1440 datapoints will be returned, the most datapoints that can be queried is 50850 StartTime is capped to 2 weeks ago
Options
-
Namespace<~String>: the namespace of the metric
-
MetricName<~String>: the name of the metric
-
StartTime<~Datetime>: when to start fetching datapoints from (inclusive)
-
EndTime<~Datetime>: used to determine the last datapoint to fetch (exclusive)
-
Period<~Integer>: Granularity, in seconds of the returned datapoints. Must be a multiple of 60, and at least 60
-
Statistics<~Array>: An array of up to 5 strings, which name the statistics to return
-
Unit<~String>: The unit for the metric
-
Dimensions<~Array>: a list of dimensions to filter against (optional)
Name : The name of the dimension Value : The value to filter against
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb', line 27 def get_metric_statistics(={}) %w{Statistics StartTime EndTime Period MetricName Namespace}.each do |required_parameter| raise ArgumentError, "Must prodide #{required_parameter}" unless .has_key?(required_parameter) end statistics = .delete 'Statistics' .merge!(AWS.indexed_param('Statistics.member.%d', [*statistics])) if dimensions = .delete('Dimensions') .merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']})) .merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']})) end request({ 'Action' => 'GetMetricStatistics', :parser => Fog::Parsers::AWS::CloudWatch::GetMetricStatistics.new }.merge()) end |
#list_metrics(options = {}) ⇒ Object
List availabe metrics
Options
-
Dimensions<~Array>: a list of dimensions to filter against,
Name : The name of the dimension Value : The value to filter against
-
MetricName<~String>: The name of the metric to filter against
-
Namespace<~String>: The namespace to filter against
-
NextToken<~String> The token returned by a previous call to indicate that there is more data available
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fog/aws/requests/cloud_watch/list_metrics.rb', line 23 def list_metrics(={}) if dimensions = .delete('Dimensions') .merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']})) .merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']})) end request({ 'Action' => 'ListMetrics', :parser => Fog::Parsers::AWS::CloudWatch::ListMetrics.new }.merge()) end |
#put_metric_alarm(options) ⇒ Object
Creates or updates an alarm and associates it with the specified Amazon CloudWatch metric
Options
-
ActionsEnabled<~Boolean>: Indicates whether or not actions should be executed during any changes to the alarm’s state
-
AlarmActions<~Array>: A list of actions to execute
-
AlarmDescription<~String>: The description for the alarm
-
AlarmName<~String> The unique name for the alarm
-
ComparisonOperator<~String>: The arithmetic operation to use for comparison
-
Dimensions<~Array>: a list of dimensions to filter against,
Name : The name of the dimension Value : The value to filter against
-
EvaluationPeriods<~Integer>: The number of periods over which data is compared to the specified threshold
-
InsufficientDataActions<~Array>: A list of actions to execute
-
MetricName<~String>: The name for the alarm’s associated metric
-
Namespace<~String>: The namespace for the alarm’s associated metric
-
OKActions<~Array>: A list of actions to execute
-
Period<~Integer>: The period in seconds over which the specified statistic is applied
-
Statistic<~String>: The statistic to apply to the alarm’s associated metric
-
Threshold<~Double>: The value against which the specified statistic is compared
-
Unit<~String>: The unit for the alarm’s associated metric
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb', line 33 def put_metric_alarm() if dimensions = .delete('Dimensions') .merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']})) .merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']})) end if alarm_actions = .delete('AlarmActions') .merge!(AWS.indexed_param('AlarmActions.member.%d', [*alarm_actions])) end if insufficient_data_actions = .delete('InsufficientDataActions') .merge!(AWS.indexed_param('InsufficientDataActions.member.%d', [*insufficient_data_actions])) end if ok_actions = .delete('OKActions') .merge!(AWS.indexed_param('OKActions.member.%d', [*ok_actions])) end request({ 'Action' => 'PutMetricAlarm', :parser => Fog::Parsers::AWS::CloudWatch::PutMetricAlarm.new }.merge()) end |
#put_metric_data(namespace, metric_data) ⇒ Object
Publishes one or more data points to CloudWatch. A new metric is created if necessary
Options
-
Namespace<~String>: the namespace of the metric data
-
MetricData<~Array>: the datapoints to publish of the metric
* MetricName<~String>: the name of the metric * Timestamp<~String>: the timestamp for the data point. If omitted defaults to the time at which the data is received by CloudWatch * Unit<~String>: the unit * Value<~Double> the value for the metric * StatisticValues<~Hash>: * Maximum<~Double>: the maximum value of the sample set * Sum<~Double>: the sum of the values of the sample set * SampleCount<~Double>: the number of samples used for the statistic set * Minimum<~Double>: the minimum value of the sample set * Dimensions<~Array>: the dimensions for the metric. From 0 to 10 may be included * Name<~String> * Value<~String>
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fog/aws/requests/cloud_watch/put_metric_data.rb', line 31 def put_metric_data(namespace, metric_data) = {'Namespace' => namespace} #first index the dimensions for any of the datums that have dimensions metric_data.collect! do |metric_datum| if dimensions = metric_datum.delete('Dimensions') metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Name', dimensions.collect {|dimension| dimension['Name']})) metric_datum.merge!(AWS.indexed_param('Dimensions.member.%d.Value', dimensions.collect {|dimension| dimension['Value']})) end metric_datum end #then flatten out an hashes in the metric_data array metric_data.collect! { |metric_datum| flatten_hash(metric_datum) } #then index the metric_data array .merge!(AWS.indexed_param('MetricData.member.%d', [*metric_data])) #then finally flatten out an hashes in the overall options array = flatten_hash() request({ 'Action' => 'PutMetricData', :parser => Fog::Parsers::AWS::CloudWatch::PutMetricData.new }.merge()) end |
#reload ⇒ Object
79 80 81 |
# File 'lib/fog/aws/cloud_watch.rb', line 79 def reload @connection.reset end |
#set_alarm_state(options) ⇒ Object
Temporarily sets the state of an alarm
Options
-
AlarmName<~String>: The names of the alarm
-
StateReason<~String>: The reason that this alarm is set to this specific state (in human-readable text format)
-
StateReasonData<~String>: The reason that this alarm is set to this specific state (in machine-readable JSON format)
-
StateValue<~String>: The value of the state
Returns
-
response<~Excon::Response>:
See Also
docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_SetAlarmState.html
22 23 24 25 26 27 |
# File 'lib/fog/aws/requests/cloud_watch/set_alarm_state.rb', line 22 def set_alarm_state() request({ 'Action' => 'SetAlarmState', :parser => Fog::Parsers::AWS::CloudWatch::SetAlarmState.new }.merge()) end |