...
By monitoring the relationship between response times and actual traffic pushed through Akamai over time, you can better understand your environment and more easily troubleshoot problems as they arise.
View
...
Overview
...
Akamai Integration Features
Introduction
Akamai is one of the world’s largest content delivery networks (CDN). Apica is an Akamai Partner and offers full API Integration for CDN Traffic information from Akamai - Luna Control.
There is also support for enabling Akamai pragma headers for Synthetic Monitoring checks, meaning tracing and troubleshooting sites that use Akamai is even easier.
This allows you to dive deeper into the results of each request, determine if URLs are being cached and pinpoint the root cause of poor response times.
View
Sample views:
Integration Dashboard
...
Check Results
...
Setting up Akamai
Setup
Setting the Akamai integration up for your Synthetic Monitoring account requires Akamai account credentials.
View
...
Item | Description |
---|---|
Username | Akamai username. |
Password | Akamai password. |
Available Akamai Services | Akamai Services that are enabled for the account. |
Buttons
Button | Action | Description |
---|---|---|
Save | Store the changes. | |
Cancel | Stop editing and ignore all changes. | |
Dashboard | Open the Akamai Dashboard. |
Step-by-Step Akamai Integration
Akamai Setup
Setting up the Akamai integration is mostly a matter of allowing Synthetic Monitorings to access your Akamai account.
Note: Using Akamai integration requires an active Akamai account.
Setup
To set up the Akamai integration:
...
Click Setup Akamai
...
Enter your User name (email)
...
Enter your Password
Click Save
The integration is set up.
...
Akamai Dashboard
Akamai Dashboard
The Akamai Dashboard shows information about data collected from the Akamai account.
...
Each available service is shown in a separate tab.
For details about the provided data, see the https://www.akamai.com documentation for the services you are using.
Debugging With Akamai Headers
Headers
Akamai provides debug data for content hosted by their CDN service. This data is useful when trying to assess issues with Akamai services.
View
When provided with the appropriate request headers through a check, Akamai servers can provide debug information about objects through the HTTP response headers.
...
The debug headers are displayed in the expanded Waterfall view.
Akamai Pragma Request Headers
Request
The response headers are displayed on the left in the expanded Waterfall view.
Request Headers
...
Header | Description |
---|---|
akama-xi-get-extracted-values | |
akamai-x--meta-trace | |
akamai-x-cache-on | Returns information about how the response was served. |
akamai-x-cache-remote-on | Returns information about how the parent served its response. |
akamai-x-check-cacheable | Returns |
akamai-x-get-cache-key | Returns the cache key used for the request. (Deprecated.) |
akamai-x-get-extracted-values | Returns the values extracted from the request into variables. |
akamai-x-get-nonces | |
akamai-x-get-request-id | Returns |
akamai-x-get-ssl-client-session-id | |
akamai-x-get-true-cache-key | |
akamai-x-request-trace | |
akamai-x-serial-no | Returns |
Enable Akamai Pragma Headers
Enable
In order to retrieve the debug data, checks must provide the correct pragma headers.
View
The settings for retrieving debug data are available in the check configuration, in the sections Integrations and Browser Data.
Find the Integrations section
...
Check Enable Akamai Pragma Headers
Find the Browser Data section
...
Check Store Request & Response Headers
The pragma headers are enabled for the check.
Headers Example
Code Block |
---|
akamai-x-cache-on
akamai-x-cache-remote-on
akamai-x-check-cacheable
akamai-x-get-cache-key
akamai-x-get-extracted-values
akamai-x-get-nonces
akamai-x-get-ssl-client-session-id
akamai-x-get-true-cache-key
akamai-x-serial-no
|
Response Example
Code Block |
---|
HTTP/1.x 200 OK
Content-Type: text/html
Etag: W/"26100-124692218130400"
Cache-Control: max-age=120
Date: Tue, 14 Jul 2009 18:01:27 GMT
X-Cache: TCP_MEM_HIT from a69-174-50-208 (AkamaiGHost/5.7.2-5726413) (-)
X-Cache-Key: S/L/2649/75069/6h/www.example.com/common/global.html
X-True-Cache-Key: /L/www.example.com/common/global.html
X-Serial: 2649
Connection: keep-alive
Vary: Accept-Encoding
X-Check-Cacheable: YES |
Akamai Responses to Pragma Headers
Response
The response headers are displayed on the right in the expanded Waterfall view.
Response Headers
...
Header | Description | |
---|---|---|
X-Check-Cacheable | Shows if the URL can be cached on Akamai. | |
X-Akamai-Request-ID | Request ID provides a unique request identifier on the Akamai network. Value of this header can be used to trace a request on the Akamai network by a support representative. | |
X-Cache-Key | The value used to store content. | |
X-Cache | Cache information. |
X-Check-Cacheable HTTP Response Header
The X-Check-Cacheable HTTP header may be inaccurate depending on what metadata is applied to the request and how the TTL is set up (configuration vs response headers).
The most accurate way to determine cache-ability of an object is to run multiple requests and check the status of the response on the X-Cache header.
More information is available at https://control.akamai.com/search/kb/5396 in the Akamai knowledgebase.
X-Cache-Key HTTP Response Header
The X-Cache-Key
response header is deprecated. If used, it will return the Cache Key-value used to store content on Akamai network.
Example:
Code Block |
---|
X-Cache-Key: /L/9/12345/1d/www.example.com/ index.html
|
The value before the URL (1d
in the example) indicates the time setting for the cache (number and unit):
Value | Meaning | Description | |
---|---|---|---|
000 | Non-cacheable. | ||
0s | 0-second cache. | Serve from cache but revalidate on every request. | |
10s | 10 seconds. | ||
45m | 45 minutes. | ||
8h | 8 hours. | ||
1d | 1 day. | 24 hours. |
X-Cache HTTP Response Header
The X-Cache HTTP response header is returned for requests using Pragma: akamai-x-cache-on
.
Response | Meaning |
---|---|
| The object was fresh in cache and object from the disk cache. |
| The object was not in the cache, the server fetched the object from origin. |
| The object was stale in the cache and we successfully refreshed with the origin on an If-Modified-Since request. |
| The object was stale in the cache and refresh obtained a new object from the origin in response to our IF-Modified Since request. |
| The object was stale in the cache and we failed on refresh (couldn't reach origin) so we served the stale object. |
| IF-Modified-Since request from client and object was fresh in the cache and served. |
| Object previously returned a “not found” (or any other negatively cacheable response) and that cached response was a hit for this new request. |
| The object was on disk and in the memory cache. Server served it without hitting the disk. |
| Denied access to the client. |
| Denied access on cookie authentication (if centralized or decentralized authorization feature is being used in a configuration). |