eG Monitoring
 

Measures reported by AWSAmazonS3Test

Amazon Simple Storage Service is storage for the Internet. Amazon S3 has a simple web services interface that you can use to store and retrieve any amount of data, at any time, from anywhere on the web.

To upload data to the cloud, you first create a bucket in one of the AWS Regions. A bucket is a container for data stored in Amazon S3. Once a bucket is created, you can then upload any number of objects to the bucket. Objects are the fundamental entities stored in Amazon S3, and consist of object data and metadata. Every object is contained in a bucket. For example, if the object named photos/puppy.jpg is stored in the johnsmith bucket, then it is addressable using the URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg.

To create objects in a bucket and to manipulate these objects (say, to retrieve objects from a bucket or delete them), administrators often make Amazon S3 REST requests over HTTP - eg., HTTP GET, PUT, LIST, DELETE, etc. By monitoring the HTTP requests to Amazon S3 and their responses, operational issues can be quickly detected . This is exactly what administrators can achieve using the AWSAmazonS3Test test!

This test monitors the HTTP requests to each bucket, promptly captures error responses, and brings them to the notice of administrators. In addition, the test also measures the time taken by S3 to service the requests, and in the process, warns administrators of an impending processing slowdown.

Outputs of the test : One set of results for each bucket in each AWS region.

First-level descriptor: AWS Region

Second-level descriptor: Bucket name

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
All_request Indicates the total number of HTTP requests made to this bucket. Number This is a good indicator of the workload of a bucket.

Amazon S3 scales to support very high request rates. If your request rate grows steadily, Amazon S3 automatically partitions your buckets as needed to support higher request rates.
Get_request Indicates the number of HTTP GET requests made for objects in this bucket. Number Amazon S3 scales to support very high request rates. If your request rate grows steadily, Amazon S3 automatically partitions your buckets as needed to support higher request rates. However, if you expect a rapid increase in the request rate for a bucket to more than 300 PUT/LIST/DELETE requests per second or more than 800 GET requests per second, we recommend that you open a support case to prepare for the workload and avoid any temporary limits on your request rate.
Put_request Indicates the number of HTTP PUT requests made for objects in this bucket. Number
Delete_request Indicates the number of HTTP DELETE requests made for objects in this bucket. This also includes delete multiple objects requests. Number
List_request Indicates the number of HTTP requests this bucket that list the contents of the bucket. Number
Head_request Indicates the number of HTTP HEAD requests made to this bucket. Number  
Post_request Indicates the number of HTTP POST requests made to this bucket. Number  
Byte_download Indicates the amount of data downloaded from this bucket. KB  
Byte_upload Indicates the amount of data uploaded to this bucket. KB  
Fourxx_error Indicates the number of HTTP requests to this bucket that returned the HTTP 4XX client error status code. Number This class of status code is intended for situations in which the error seems to have been caused by the client.

Ideally, the value of this measure should be 0.
Fivexx_error Indicates the total number of HTTP 5xx server error status code requests made to this bucket. Number Response status codes beginning with the digit “5” indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request.

Ideally, the value of this measure should be 0.
Fstbyte_latency Indicates the time that elapsed between when this bucket receives a complete request and when it starts returning a response to it. Secs A low value is desired for this measure.
TotReq_latency/th> Indicates the time that elapsed from the first byte received to the last byte sent to this bucket. Secs This metric includes the time taken to receive the request body and send the response body, which is not included in First byte latency measure.

If the value of this measure is very high for a bucket, then you may want to follow the best practices guidelines discussed below to ensure low latency access to and better performance of Amazon S3. These guidelines vary with the type of workload - i.e., workload with mix of request tupes and a GET-intensive workload.

  • Workload with a mix of request tyes: If your requests are typically a mix of GET, PUT, DELETE, or GET Bucket (list objects), choosing appropriate key names for your objects will ensure better performance by providing low-latency access to the Amazon S3 index. It will also ensure scalability regardless of the number of requests you send per second.

  • Workloads that are GET-intensive: If the bulk of your workload consists of GET requests, we recommend using the Amazon CloudFront content delivery service.