Skip to content

Commit

Permalink
This release adds high resolution features to CloudWatch, with suppor…
Browse files Browse the repository at this point in the history
…t for Custom Metrics down to 1 second and Alarms down to 10 seconds.
  • Loading branch information
sstevenkang committed Jul 26, 2017
1 parent dab8478 commit b5f3ac8
Show file tree
Hide file tree
Showing 10 changed files with 341 additions and 157 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,11 @@ namespace Amazon.CloudWatch.Model
///
///
/// <para>
/// Amazon CloudWatch retains metric data as follows:
/// </para>
/// <ul> <li>
/// <para>
/// Data points with a period of 60 seconds (1-minute) are available for 15 days
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 300 seconds (5-minute) are available for 63 days
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 3600 seconds (1 hour) are available for 455 days (15
/// months)
/// </para>
/// </li> </ul>
/// <para>
/// CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.
/// </para>
///
/// <para>
/// The maximum number of data points returned from a single call is 1,440. If you request
/// more than 1,440 data points, CloudWatch returns an error. To reduce the number of
/// data points, you can narrow the specified time range and make multiple requests across
/// adjacent time ranges, or you can increase the specified period. A period can be as
/// short as one minute (60 seconds). Data points are not returned in chronological order.
/// adjacent time ranges, or you can increase the specified period. Data points are not
/// returned in chronological order.
/// </para>
///
/// <para>
Expand All @@ -84,7 +63,44 @@ namespace Amazon.CloudWatch.Model
/// </para>
/// </li> </ul>
/// <para>
/// For a list of metrics and dimensions supported by AWS services, see the <a href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html">Amazon
/// Amazon CloudWatch retains metric data as follows:
/// </para>
/// <ul> <li>
/// <para>
/// Data points with a period of less than 60 seconds are available for 3 hours. These
/// data points are high-resolution metrics and are available only for custom metrics
/// that have been defined with a <code>StorageResolution</code> of 1.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 60 seconds (1-minute) are available for 15 days.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 300 seconds (5-minute) are available for 63 days.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 3600 seconds (1 hour) are available for 455 days (15
/// months).
/// </para>
/// </li> </ul>
/// <para>
/// Data points that are initially published with a shorter period are aggregated together
/// for long-term storage. For example, if you collect data using a period of 1 minute,
/// the data remains available for 15 days with 1-minute resolution. After 15 days, this
/// data is still available, but is aggregated and retrievable only with a resolution
/// of 5 minutes. After 63 days, the data is further aggregated and is available with
/// a resolution of 1 hour.
/// </para>
///
/// <para>
/// CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.
/// </para>
///
/// <para>
/// For information about metrics and dimensions supported by AWS services, see the <a
/// href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html">Amazon
/// CloudWatch Metrics and Dimensions Reference</a> in the <i>Amazon CloudWatch User Guide</i>.
/// </para>
/// </summary>
Expand Down Expand Up @@ -207,17 +223,25 @@ internal bool IsSetNamespace()
/// <summary>
/// Gets and sets the property Period.
/// <para>
/// The granularity, in seconds, of the returned data points. A period can be as short
/// as one minute (60 seconds) and must be a multiple of 60.
/// The granularity, in seconds, of the returned data points. For metrics with regular
/// resolution, a period can be as short as one minute (60 seconds) and must be a multiple
/// of 60. For high-resolution metrics that are collected at intervals of less than one
/// minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution
/// metrics are those metrics stored by a <code>PutMetricData</code> call that includes
/// a <code>StorageResolution</code> of 1 second.
/// </para>
///
/// <para>
/// If the <code>StartTime</code> parameter specifies a time stamp that is greater than
/// 15 days ago, you must specify the period as follows or no data points in that time
/// 3 hours ago, you must specify the period as follows or no data points in that time
/// range is returned:
/// </para>
/// <ul> <li>
/// <para>
/// Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).
/// </para>
/// </li> <li>
/// <para>
/// Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).
/// </para>
/// </li> <li>
Expand Down Expand Up @@ -268,7 +292,16 @@ internal bool IsSetPeriod()
/// Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval.
/// For example, 12:32:34 is rounded down to 12:00:00.
/// </para>
/// </li> </ul>
/// </li> </ul>
/// <para>
/// If you set <code>Period</code> to 5, 10, or 30, the start time of your request is
/// rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions
/// of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous
/// 10-second period, the start time of your request is rounded down and you receive data
/// from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes
/// of data, using a period of 5 seconds, you receive data timestamped between 15:02:15
/// and 15:07:15.
/// </para>
/// </summary>
public DateTime StartTime
{
Expand Down
4 changes: 2 additions & 2 deletions sdk/src/Services/CloudWatch/Generated/Model/MetricAlarm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ internal bool IsSetDimensions()
/// <para>
/// Used only for alarms based on percentiles. If <code>ignore</code>, the alarm state
/// does not change during periods with too few data points to be statistically significant.
/// If <code>evaluate</code> or this parameter is not used, the alarm will always be evaluated
/// and possibly change state no matter how many data points are available.
/// If <code>evaluate</code> or this parameter is not used, the alarm is always evaluated
/// and possibly changes state no matter how many data points are available.
/// </para>
/// </summary>
public string EvaluateLowSampleCountPercentile
Expand Down
15 changes: 14 additions & 1 deletion sdk/src/Services/CloudWatch/Generated/Model/MetricDatum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,20 @@ internal bool IsSetStatisticValues()
}

/// <summary>
/// Gets and sets the property StorageResolution.
/// Gets and sets the property StorageResolution.
/// <para>
/// Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution
/// metric, so that CloudWatch stores the metric with sub-minute resolution down to one
/// second. Setting this to 60 specifies this metric as a regular-resolution metric, which
/// CloudWatch stores at 1-minute resolution. Currently, high resolution is available
/// only for custom metrics. For more information about high-resolution metrics, see <a
/// href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics">High-Resolution
/// Metrics</a> in the <i>Amazon CloudWatch User Guide</i>.
/// </para>
///
/// <para>
/// This field is optional, if you do not specify it the default of 60 is used.
/// </para>
/// </summary>
public int StorageResolution
{
Expand Down
21 changes: 16 additions & 5 deletions sdk/src/Services/CloudWatch/Generated/Model/PutDashboardRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,20 @@ namespace Amazon.CloudWatch.Model
/// </para>
///
/// <para>
/// To copy an existing dashboard, use <code>GetDashboard</code>, and then use the data
/// returned within <code>DashboardBody</code> as the template for the new dashboard when
/// you call <code>PutDashboard</code> to create the copy.
/// A simple way to create a dashboard using <code>PutDashboard</code> is to copy an existing
/// dashboard. To copy an existing dashboard using the console, you can load the dashboard
/// and then use the View/edit source command in the Actions menu to display the JSON
/// block for that dashboard. Another way to copy a dashboard is to use <code>GetDashboard</code>,
/// and then use the data returned within <code>DashboardBody</code> as the template for
/// the new dashboard when you call <code>PutDashboard</code>.
/// </para>
///
/// <para>
/// When you create a dashboard with <code>PutDashboard</code>, a good practice is to
/// add a text widget at the top of the dashboard with a message that the dashboard was
/// created by script and should not be changed in the console. This message could also
/// point console users to the location of the <code>DashboardBody</code> script or the
/// CloudFormation template used to create the dashboard.
/// </para>
/// </summary>
public partial class PutDashboardRequest : AmazonCloudWatchRequest
Expand Down Expand Up @@ -78,8 +89,8 @@ internal bool IsSetDashboardBody()
/// <para>
/// The name of the dashboard. If a dashboard with this name already exists, this call
/// modifies that dashboard, replacing its current contents. Otherwise, a new dashboard
/// is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".",
/// "-", and "_".
/// is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, "-",
/// and "_".
/// </para>
/// </summary>
public string DashboardName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ internal bool IsSetEvaluateLowSampleCountPercentile()
/// <para>
/// The number of periods over which data is compared to the specified threshold. An alarm's
/// total current evaluation period can be no longer than one day, so this number multiplied
/// by <code>Period</code> must be 86,400 or less.
/// by <code>Period</code> cannot be more than 86,400 seconds.
/// </para>
/// </summary>
public int EvaluationPeriods
Expand Down Expand Up @@ -399,9 +399,25 @@ internal bool IsSetOKActions()
/// <summary>
/// Gets and sets the property Period.
/// <para>
/// The period, in seconds, over which the specified statistic is applied. An alarm's
/// total current evaluation period can be no longer than one day, so this number multiplied
/// by <code>EvaluationPeriods</code> must be 86,400 or less.
/// The period, in seconds, over which the specified statistic is applied. Valid values
/// are 10, 30, and any multiple of 60.
/// </para>
///
/// <para>
/// Be sure to specify 10 or 30 only for metrics that are stored by a <code>PutMetricData</code>
/// call with a <code>StorageResolution</code> of 1. If you specify a Period of 10 or
/// 30 for a metric that does not have sub-minute resolution, the alarm still attempts
/// to gather data at the period rate that you specify. In this case, it does not receive
/// data for the attempts that do not correspond to a one-minute data resolution, and
/// the alarm may often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets
/// this alarm as a high-resolution alarm, which has a higher charge than other alarms.
/// For more information about pricing, see <a href="https://aws.amazon.com/cloudwatch/pricing/">Amazon
/// CloudWatch Pricing</a>.
/// </para>
///
/// <para>
/// An alarm's total current evaluation period can be no longer than one day, so <code>Period</code>
/// multiplied by <code>EvaluationPeriods</code> cannot be more than 86,400 seconds.
/// </para>
/// </summary>
public int Period
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -754,32 +754,11 @@ public GetDashboardResponse EndGetDashboard(IAsyncResult asyncResult)
///
///
/// <para>
/// Amazon CloudWatch retains metric data as follows:
/// </para>
/// <ul> <li>
/// <para>
/// Data points with a period of 60 seconds (1-minute) are available for 15 days
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 300 seconds (5-minute) are available for 63 days
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 3600 seconds (1 hour) are available for 455 days (15
/// months)
/// </para>
/// </li> </ul>
/// <para>
/// CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.
/// </para>
///
/// <para>
/// The maximum number of data points returned from a single call is 1,440. If you request
/// more than 1,440 data points, CloudWatch returns an error. To reduce the number of
/// data points, you can narrow the specified time range and make multiple requests across
/// adjacent time ranges, or you can increase the specified period. A period can be as
/// short as one minute (60 seconds). Data points are not returned in chronological order.
/// adjacent time ranges, or you can increase the specified period. Data points are not
/// returned in chronological order.
/// </para>
///
/// <para>
Expand All @@ -805,7 +784,44 @@ public GetDashboardResponse EndGetDashboard(IAsyncResult asyncResult)
/// </para>
/// </li> </ul>
/// <para>
/// For a list of metrics and dimensions supported by AWS services, see the <a href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html">Amazon
/// Amazon CloudWatch retains metric data as follows:
/// </para>
/// <ul> <li>
/// <para>
/// Data points with a period of less than 60 seconds are available for 3 hours. These
/// data points are high-resolution metrics and are available only for custom metrics
/// that have been defined with a <code>StorageResolution</code> of 1.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 60 seconds (1-minute) are available for 15 days.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 300 seconds (5-minute) are available for 63 days.
/// </para>
/// </li> <li>
/// <para>
/// Data points with a period of 3600 seconds (1 hour) are available for 455 days (15
/// months).
/// </para>
/// </li> </ul>
/// <para>
/// Data points that are initially published with a shorter period are aggregated together
/// for long-term storage. For example, if you collect data using a period of 1 minute,
/// the data remains available for 15 days with 1-minute resolution. After 15 days, this
/// data is still available, but is aggregated and retrievable only with a resolution
/// of 5 minutes. After 63 days, the data is further aggregated and is available with
/// a resolution of 1 hour.
/// </para>
///
/// <para>
/// CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016.
/// </para>
///
/// <para>
/// For information about metrics and dimensions supported by AWS services, see the <a
/// href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html">Amazon
/// CloudWatch Metrics and Dimensions Reference</a> in the <i>Amazon CloudWatch User Guide</i>.
/// </para>
/// </summary>
Expand Down Expand Up @@ -1044,9 +1060,20 @@ public ListMetricsResponse EndListMetrics(IAsyncResult asyncResult)
/// </para>
///
/// <para>
/// To copy an existing dashboard, use <code>GetDashboard</code>, and then use the data
/// returned within <code>DashboardBody</code> as the template for the new dashboard when
/// you call <code>PutDashboard</code> to create the copy.
/// A simple way to create a dashboard using <code>PutDashboard</code> is to copy an existing
/// dashboard. To copy an existing dashboard using the console, you can load the dashboard
/// and then use the View/edit source command in the Actions menu to display the JSON
/// block for that dashboard. Another way to copy a dashboard is to use <code>GetDashboard</code>,
/// and then use the data returned within <code>DashboardBody</code> as the template for
/// the new dashboard when you call <code>PutDashboard</code>.
/// </para>
///
/// <para>
/// When you create a dashboard with <code>PutDashboard</code>, a good practice is to
/// add a text widget at the top of the dashboard with a message that the dashboard was
/// created by script and should not be changed in the console. This message could also
/// point console users to the location of the <code>DashboardBody</code> script or the
/// CloudFormation template used to create the dashboard.
/// </para>
/// </summary>
/// <param name="request">Container for the necessary parameters to execute the PutDashboard service method.</param>
Expand Down
Loading

0 comments on commit b5f3ac8

Please sign in to comment.