Metrics for Object Storage

This guide provides details on the metrics and dimensions available for Object Storage through Akamai Cloud Pulse.

📘

Metrics for Object Storage is currently in limited availability and may not be accessible from your account. To gain access, please open a support ticket and request to join the limited availability program for this feature.

Metrics

Akamai Cloud Pulse metrics provide quantitative measurements for the performance of your Akamai Cloud services over a given period of time. These measurements are categorized or filtered through dimensions. For Object Storage, all metrics are available through the bucket and endpoint dimensions, though there are several other dimensions that map to specific metrics. Review the Dimensions table for more details.

Content metrics

MetricAPI referenceDescriptionUnitReporting Frequency
Content storedobj_bucket_sizeThe total combined size of all objects stored in a bucketBytes60 min
Number of objectsobj_bucket_num_objectsTotal number of objects stored in a bucketcount60 min

Content stored

The content stored (obj_bucket_size) metric is the total combined size (in bytes) of all objects that are in the given bucket. Each part of an incomplete multipart upload is also included in this total. If bucket versioning is enabled, this metric includes the size of each version of an object. For example, consider an object with 3 versions of varying sizes: 1KB, 2KB, and 1KB. This object (and all of its versions) contribute a combined 4 KB to the total.

For the total amount of data you can store across all buckets in a single endpoint, review the Default capacity per account, per endpoint quota in the Object Storage limits by endpoint type table.

Number of objects

The number of objects (obj_bucket_num_objects) metric is the total number of objects in the given bucket. Each part of an incomplete multipart upload is also included in this total. If bucket versioning is enabled, this metric includes each version of an object.

For the total number of objects you can store across all buckets in a single endpoint, review the Default number of objects per account, per endpoint quota in the Object Storage limits by endpoint type table.

Throughput metrics

MetricAPI referenceDescriptionUnitReporting Frequency
Bytes uploadedobj_bytes_uploadedAmount of data uploaded to the selected bucket or endpoint.Bytes1 min
Bytes downloadedobj_bytes_downloadedAmount of data downloaded from the selected bucket or endpoint.Bytes1 min
First byte latencyobj_ttfb_averagePer-request measure of the latency from the time a request is received until the first byte is sent to the requestor.Milliseconds (ms)15 mins
Egress throughputobj_egress_throughputAverage rate at which data is transferred out of a bucket or endpoint during the specified time periodBytes per second (Bps)1 min
Ingress throughputobj_ingress_throughputAverage rate at which data is transferred into a bucket or endpoint during the specified time periodBytes per second (Bps)1 min

Bytes uploaded and downloaded

The bytes uploaded (obj_bytes_uploaded) and bytes downloaded (obj_bytes_downloaded) metrics measure the bytes uploaded to or downloaded from a bucket. Only bytes from objects are included. From an HTTP perspective, these metrics capture the request body (uploads) and response body (downloads). They do not include any network overhead for any layers in the OSI model.

Egress and ingress throughput

The egress throughput per endpoint (obj_egress_throughput) and ingress throughput per endpoint (obj_ingress_throughput) metrics return the throughput (in bytes per second) of data uploaded or downloaded for a bucket in a given time period. This is similar to the bytes uploaded and downloaded metrics, though instead of describing the throughput as the number of bytes uploaded or downloaded, the egress and ingress metrics describe the throughput as the average bytes per second.

First byte latency

The first byte latency (obj_ttfb_average) metric is a per-request measure of the latency from the time a request is received until the first byte is sent to the requestor. This metric only includes successful GetObject requests and is an average of all responses over the period. This is intended to be used as an estimate of the backend latency for processing of successful get requests. By only including successful GetObject requests, this enables better consistency and avoids fluctuations driven by workload change. In this way, the metric has better correlates with the health of the backend.

Request metrics

MetricAPI referenceDescriptionUnitReporting Frequency
Total requestsobj_requests_numSummary count of all requests, of all types, made to a bucketcount1 min
HEAD requestsobj_requests_headNumber of HEAD requests used to retrieve object metadatacount1 min
GET requestsobj_requests_getNumber of GET requests used to read or retrieve objects from bucketscount1 min
PUT requestsobj_requests_putNumber of PUT requests used to upload new objects, including PUT requests used for multi-part uploadscount1 min
DELETE requestsobj_requests_deleteNumber of DELETE requests used to remove objects from bucketscount1 min
LIST requestsobj_requests_listNumber of LIST requests used to list objects within buckets. Each page request counts as an individual LIST call.count1 min
Other requestsobj_requests_otherThis group contains any request type other than GET, HEAD, PUT, LIST, DELETE and aligns with the all other operations group as defined as part of the per bucket rate limits.count1 min

Total requests

The total requests (obj_requests_num) metric is the total number of requests that were sent to the given bucket. All requests are counted, including those which have failed or were rate limited.

This metric has an additional label of request_type that enables differentiation between many types of requests (listed below). Each of these types is also accessible through its own metric, shown in the request metrics table above.

  • GET, HEAD operations for objects
  • PUT operations for objects, including multipart uploads
  • LIST operations for objects
  • DELETE operations for object
  • All other operations, including bucket-level operations

Since these request types are identical to the ones described in per bucket rate limits, this metric can be used to compare the total number of requests of a specific type to the rate limit of that type (for the specified bucket).

Response metrics

MetricAPI referenceDescriptionUnitReporting Frequency
Total responsesobj_responses_numSummary count of all responses, of all typescount1 min
2xx successful responsesobj_responses_2xxCount of 2xx successful responses during this periodcount1 min
4xx errorsobj_responses_4xxCount of 4xx responses during this period. This includes 403 returned due to quota exceeded failures. There is a separate metric for Quota exceeded to isolate any failures due to quota limits.count1 min
5xx errorsobj_responses_5xxCount of 5xx responses during this period. This includes 503 returned due to per bucket rate limits. There is a separate metric for Rate limited responses to isolate any failures due to per bucket rate limits.count1 min
Rate limited responsesobj_responses_rate_limited503 responses resulting from request rates higher than the per bucket rate limitscount1 min
Quota exceeded responsesobj_responses_quota_exceeds403 failures because an account quota has been exceeded, typically due to content stored or number of objects on the current endpointcount1 min

Total responses

The total responses (obj_responses_num) metric returns the total number of responses to all the requests sent to that bucket.

📘

The total requests count and the total responses count can differ for the following reasons:

  • Requests and responses can be counted at different times, which may lead to a situation when response will be counted in the next metrics batch than the request.
  • Responses 3xx and 1xx are not included.

This metric has an additional label of response_type that enables differentiation between different types of responses (listed below). Each of these types is also accessible through its own metric.

  • 2xx success responses
  • 4xx responses - includes all 4xx responses including those which are counted toward 403 “quota exceeded”
  • 5xx responses - includes all 5xx responses including those which are counted toward 503 “slow down”
  • Rate limited (503 “slow down”) - 503 responses resulting from request rates higher than the per bucket rate limits.
  • Quota exceeded (403 “quota exceeded”) - failures because an account quota has been exceeded, typically due to content stored size or number of objects on the current endpoint.

Dimensions

DimensionAPI referenceMetrics with this dimensionDescription
Bucketbucket_nameAllThe URL of the bucket, which includes the bucket name and S3 hostname
EndpointendpointAllThe S3 hostname of the Object Storage endpoint
Request typerequest_typeTotal RequestsType of request: HEAD, GET, PUT, DELETE, LIST, OTHER
Response typeresponse_typeTotal ResponsesType of response: 2xx, rate_limited, quota_exceeded, 4xx, 5xx

Expected differences between Cloud Pulse metrics and monthly billing invoice data

Cloud Pulse metrics are collected at different reporting intervals and are calculated differently than usage data captured for billing purposes. As a result of these fundamental differences, metrics reported in Cloud Pulse will not map directly to line items on your invoice related to Object Storage usage. This includes the invoice line items for the total storage used in Object Storage (GB) and the monthly network transfer overage (bytes). For more details on the calculation of billing amounts and network transfer usage costs, please refer to our Billing and Network transfer usage and costs doc.