Popular Searches

How To Enable And View Request Metrics for an AWS S3 Bucket in CloudWatch

AWS Logo

S3 comes with some basic analytics for bucket size and number of objects, which are free and calculated automatically. However, if you want to view more detailed analytics for S3 requests, you’ll need to turn on request metrics.

Enabling Metrics

In order to see request metrics, you’ll need to enable them for each bucket. These aren’t free like the default metrics — CloudWatch’s Paid Tier costs $0.30 per metric. Unfortunately, each S3 bucket can add up to 16 different request metrics, and they’re all on all the time. This brings the cost to $5 per bucket, potentially less depending on whether or not you use certain options.

To turn it on, head over to the Metrics tab for your bucket:

bucket metrics

You’ll see the default metrics, and at the bottom, there’s a “View Additional Charts” button:

view additional charts

Click “Create Filter” to make a filter that will turn on request metrics.


You can limit this to a specific subset of items, or just select “This filter applies to all objects in the bucket.”

create filter

Once that’s done, request metrics will start being shipped to CloudWatch. It may take a little bit, so grab a coffee and come back to it.

Using Metrics in CloudWatch

Head over to the CloudWatch Management Console to get started.

You’ll need to create a new Dashboard, and add a widget to it. You can choose any kind of graph, but for simple request metrics, line charts generally work best.

For the metrics, select S3:

And then “Request Metrics Per Filter.”

You’ll then see a list of metrics available to you from the buckets you have request metrics enabled on. Two of the most useful are BytesDownloaded and BytesUploaded, which track raw data usage. You can graph them over time, and add this graph to your dashboard.

By default, the graph shows the average data usage. You’re probably interested in the total data usage, so under “Graphed Metrics,” you can change the statistic to “Sum,” which will total up all requests for the given period. This works best when set to a long period, like an hour or day.

Of course, like all CloudWatch metrics, you can set up automated alarms for when usage gets unexpectedly high, and also use those alarms for other events in your account.

Anthony Heddings Anthony Heddings
Anthony Heddings is the resident cloud engineer for LifeSavvy Media, a technical writer, programmer, and an expert at Amazon's AWS platform. He's written hundreds of articles for How-To Geek and CloudSavvy IT that have been read millions of times. Read Full Bio »

The above article may contain affiliate links, which help support CloudSavvy IT.