AWS CloudFront
Introduction
AWS CloudFront can speed up the delivery of your static content (for example, images, style sheets, JavaScript, and so on) to viewers across the globe. By using CloudFront, you can take advantage of the AWS backbone network and CloudFront edge servers to give your viewers a fast, safe, and reliable experience when they visit your website.
Getting Started
Compatibility
vuSmartMaps supports monitoring Distributions and Edge Functions in your AWS CloudFront
Data Collection Method
vuSmartMaps collects AWS CloudFront data using an internal data collector. This agent collects data based on the source configuration.
Prerequisites
Dependent Configuration
To configure this O11ySource, create a 'credential' of type 'aws' under the 'Definition' tab.
Inputs for Configuring Data Source
- Source Name: Data source name to uniquely identify the source.
- AWS Credential: AWS credential that provides Access key and Secret key to access Cloudwatch.
- Polling Frequency: Specifies the interval in minutes at which data is collected. The period should be between 1 to 60 minutes.
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
Source IP | Destination IP | Destination Port | Protocol | Direction |
---|---|---|---|---|
vuSmartMaps IP | AWS CloudWatch Endpoint | 443 | TCP | Outbound |
*Before providing the firewall requirements, please update the port based on the customer environment.
Configuring the Target
Health and Performance metrics of AWS CloudFront is collected through AWS CloudWatch service. So AWS CloudWatch services must be enabled in your AWS account.
An IAM role or user with the following permissions to access CloudWatch metrics.
- cloudwatch:GetMetricData
- cloudwatch:ListMetrics
Configuration Steps
- Enable the O11ySource.
- Select the Sources tab and press the + button to add a new AWS CloudFront for a Region to be monitored.
- Populate all the configurations.
- Click on Save to create the instance.
Metrics Collected
Name | Description | Data Type |
---|---|---|
Requests | The total number of requests made to CloudFront distributions. | UInt64 |
BytesDownloaded | The number of bytes downloaded by viewers for GET, HEAD, and OPTIONS. | UInt64 |
BytesUploaded | The number of bytes uploaded to your origin with PUT, POST, PATCH, or DELETE. | UInt64 |
4xxErrorRate | The percentage of all requests for which the response’s HTTP status code was 4xx. | Float64 |
401ErrorRate | The percentage of all requests for which the response’s HTTP status code was 401. | Float64 |
403ErrorRate | The percentage of all requests for which the response’s HTTP status code was 403. | Float64 |
404ErrorRate | The percentage of all requests for which the response’s HTTP status code was 404. | Float64 |
5xxErrorRate | The percentage of all requests for which the response’s HTTP status code was 5xx. | Float64 |
502ErrorRate | The percentage of all requests for which the response’s HTTP status code was 502. | Float64 |
503ErrorRate | The percentage of all requests for which the response’s HTTP status code was 503. | Float64 |
504ErrorRate | The percentage of all requests for which the response’s HTTP status code was 504. | Float64 |
TotalErrorRate | The percentage of all requests that resulted in an error (4xx and 5xx). | Float64 |
CacheHitRate | The percentage of all requests for which CloudFront served the requested object from its cache. | Float64 |
OriginLatency | The average time, in seconds, that CloudFront takes for forwarding requests to the origin and receiving the first byte of a response from the origin. | Float64 |
LambdaExecutionErrors | The number of errors generated by Lambda@Edge functions. | UInt64 |
LambdaExecutionThrottles | The number of times Lambda@Edge function executions were throttled. | UInt64 |
Invocations | The number of times the function was started (invoked) in a given time period | UInt64 |
Validation errors | The number of validation errors produced by the function in a given time period. Validation errors occur when the function runs successfully but returns invalid data | UInt64 |
Compute utilization | The amount of time (0-100) that the function took to run as a percentage of the maximum allowed time. | Float64 |
Timestamp | Time the data is generated in the target machine | DateTime64 |
host | Host - Data collection host | String |
Tenant Id | Tenant Id | LowCardinality(String) |
BU Id | BU Id | LowCardinality(String) |
Region | AWS Region | LowCardinality(String) |
DocType | Document Type | LowCardinality(String) |
Distribution ID | Distribution Id | String |
Function name | Edge Function name | String |