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 metrics through a data collector deployed within the vuSmartMaps platform, which uses cloudwatch to retrieve performance and health metrics.
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.
Applications
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
| Source IP | Destination IP | Destination Port | Protocol | Direction |
|---|---|---|---|---|
| vuSmartMaps Collection/Ingress node IP | Service URL | 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
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 |
