After we launched Amazon CloudWatch again in 2009 (New Features for Amazon EC2: Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch), it tracked efficiency metrics (CPU load, Disk I/O, and community I/O) for EC2 situations, rolled them up at one-minute intervals, and saved them for 2 weeks. At the moment it was used to observe occasion well being and to drive Auto Scaling. Right now, CloudWatch is a much more complete and complex service. Among the most up-to-date additions embody metrics with 1-minute granularity for all EBS volume types, CloudWatch Lambda Insights, and the Metrics Explorer.

AWS Companions have used the CloudWatch metrics to create all kinds of monitoring, alerting, and price administration instruments. So as to entry the metrics the companions created polling fleets that known as the ListMetrics and GetMetricDatafeatures for every of their prospects.

These fleets should scale in proportion to the variety of AWS sources created by every of the companions’ prospects and the variety of CloudWatch metrics which can be retrieved for every useful resource. This polling is just undifferentiated heavy lifting that every associate should do. It provides no worth, and takes valuable time that might be higher invested in different methods.

New Metric Streams
CloudWatch Side Menu (Dashboards, Alarms, Metrics, and more)So as to make it simpler for AWS Companions and others to achieve entry to CloudWatch metrics sooner and at scale, we’re launching CloudWatch Metric Streams. As a substitute of polling (which can lead to 5 to 10 minutes of latency), metrics are delivered to a Kinesis Data Firehose stream. That is extremely scalable and much more environment friendly, and helps two vital use circumstances:

Associate Providers – You possibly can stream metrics to a Kinesis Information Firehose that writes knowledge to an endpoint owned by an AWS Associate. This permits companions to scale down their polling fleets considerably, and lets them construct instruments that may reply extra shortly when key price or efficiency metrics change in sudden methods.

Information Lake – You possibly can stream metrics to a Kinesis Information Firehose of your personal. From there you’ll be able to apply any desired knowledge transformations, after which push the metrics into Amazon Simple Storage Service (S3) or Amazon Redshift. You then have the total array of AWS analytics instruments at your disposal: S3 Select, Amazon SageMaker, Amazon EMR, Amazon Athena, Amazon Kinesis Data Analytics, and extra. Our prospects do that to mix billing and efficiency knowledge with a view to measure & enhance price optimization, useful resource efficiency, and useful resource utilization.

CloudWatch Metric Streams are absolutely managed and really simple to arrange. Streams can scale to deal with any quantity of metrics, with supply to the vacation spot inside two or three minutes. You possibly can select to ship all accessible metrics to every stream that you simply create, or you’ll be able to opt-in to any of the accessible AWS (EC2, S3, and so forth) or customized namespaces.

As soon as a stream has been arrange, metrics begin to move inside a minute or two. The move may be stopped and restarted later if essential, which may be useful for testing and debugging. Whenever you arrange a stream you select between the binary Open Telemetry 0.7 format, and the human-readable JSON format.

Every Metric Stream resides in a specific AWS area and delivers metrics to a single vacation spot. If you wish to ship metrics to a number of companions, you’ll need to create a Metric Stream for every one. In case you are making a centralized knowledge lake that spans a number of AWS accounts and/or areas, you’ll need to arrange some IAM roles (see Controlling Access with Amazon Kinesis Data Firehose for extra data).

Making a Metric Stream
Let’s check out two methods to make use of a Metric Stream. First, I’ll use the Fast S3 setup choice to ship knowledge to a Kinesis Information Firehose and from there to S3. Second, I’ll use a Firehose that writes to an endpoint at AWS Associate New Relic.

I open the CloudWatch Console, choose the specified area, and click on Streams within the left-side navigation. I evaluation the web page, and click on Create stream to proceed:

CloudWatch Metric Streams Home Page in Console

I select the metrics to stream. I can choose All metrics after which exclude people who I don’t want, or I can click on Chosen namespaces and embody people who I would like. I’ll go for All, however exclude Firehose:

Create a Metric Stream - Part 1, All or Selected

I choose Fast S3 setup, and go away the opposite configuration settings on this part unchanged (I expanded it in order that you could possibly see all the choices which can be accessible to you):

Create a Metric Stream - Options for S3 bucket and IAM roles

Then I enter a reputation (MyMetrics-US-East-1A) for my stream, affirm that I perceive the sources that will probably be created, and click on Create metric stream:

Set name for Metric Stream and confirm resources to be created

My stream is created and lively inside seconds:

Metric Stream is Active

Objects start to look within the S3 bucket inside a minute or two:

Objects appear in S3 Bucket

I can analyze my metrics utilizing any of the instruments that I listed above, or I can merely take a look at the uncooked knowledge:

A single Metrics object, shown in NotePad++, JSON format

Every Metric Stream generates its personal set of CloudWatch metrics:

Metrics for the metrics stream

I can cease a working stream:

How to stop a running stream

After which begin it:

How to start a stopped stream

I may create a Metric Stream utilizing a CloudFormation template. Right here’s an excerpt:

AWSTemplateFormatVersion: 2010-09-09
    Sort: 'AWS::CloudWatch::MetricStream'
      OutputFormat: json
      RoleArn: !GetAtt
        - MetricStreamToFirehoseRole
        - Arn
      FirehoseArn: !GetAtt
        - FirehoseToS3Bucket
        - Arn

Now let’s check out the Associate-style use case! The staff at New Relic set me up with a CloudFormation template that created the mandatory IAM roles and the Metric Stream. I merely entered my API key and an S3 bucket title and the template did all the heavy lifting. Right here’s what I noticed:

Metrics displayed in the New Relic UI

Issues to Know
And that’s about it! Listed here are a few issues to remember:

Areas – Metric Streams are actually accessible in all business AWS Areas, excluding the AWS China (Beijing) Area and the AWS China (Ningxia) Area. As famous earlier, you’ll need to create a Metric Stream in every desired account and area (it is a nice use case for CloudFormation Stacksets).

Pricing – You pay $0.003 for each 1000 metric updates, and for any expenses related to the Kinesis Information Firehose. To study extra, try the pricing page.

Metrics – CloudWatch Metric Streams is appropriate with all CloudWatch metrics, however doesn’t ship metrics which have a timestamp that’s greater than two hours previous. This contains S3 every day storage metrics and a few of the billing metrics.

Associate Providers
We designed this function with the purpose of creating it simpler & extra environment friendly for AWS Companions together with Datadog, Dynatrace, New Relic, Splunk, and Sumo Logic to get entry to metrics in order that the companions can construct even higher instruments. We’ve been working with these companions to assist them get began with CloudWatch Metric Streams. Listed here are a few of the weblog posts that they wrote with a view to share their experiences. (I’m updating this text with hyperlinks as they’re revealed.)

Now Out there
CloudWatch Metric Streams is offered now and you should use it to stream metrics to a Kinesis Information Firehose of your personal or an AWS Companions. For extra data, try the documentation and ship suggestions to the AWS forum for Amazon CloudWatch.


Leave a Reply

Your email address will not be published. Required fields are marked *