Use Edge Insights to gain historical and near real-time insights into threat profiles, performance, and CDN usage. It allows you to:
- Generate a report for security violations and CDN usage.
- Visualize where and how your content is being requested.
- Troubleshoot issues by analyzing security violations and delivery profiles for problematic traffic.
- Export data as a JSON file.
The primary function of these reports is to identify threat profiles, assess performance, and gather data on CDN usage. This data should not be used for billing purposes.
Basic Usage
Generating a report consists of performing the following steps:
-
Navigate to the Edge Insights page.
- From the Edgio Console, select the desired private space or organization.
- Select the desired property.
- From the left-hand pane, select the desired environment from under the Environments section.
- From the left-hand pane, select Edge Insights.
-
Select one of the following data sources:
- Access Logs: Use this data source to analyze CDN traffic for up to the last 6 hours.
- Bot Manager Alerts: Use this data source to view bot manager rule violations for up to the last 7 days.
- Edge Control: Use this data source to analyze how recent CDN deployments affects content delivery and performance.
- Downsampled Access Logs: Use this data source to analyze CDN traffic, downsampled to 0.1%, for up to the last 7 days.
- Rate Limiting Alerts: Use this data source to view traffic that exceeded your rate limit(s), downsampled to 10%, for up to the last 30 days.
- WAF Alerts: Use this data source to view access rule, custom rule, and managed rule violations of your Security Application configurations for up to the last 30 days.
- RUM Logs: Use this data source to view Core Web Vitals (CWV) data that were tracked through our Real User Monitoring (RUM) library. This log data is available for up to the last 7 days.
- Edge Function Logs: Use this data source to view log messages for edge functions that were computed within the last 7 days. Log messages through the
log()
method (e.g.,console.log("My message")
). - Internal Logs (FE): Reserved for internal use.
- Cloud Functions Logs: Use this data source to view Cloud Functions log data for up to the last 24 hours.
- Security Logs: Use this data source to view access rule, rate limiting, bot manager, custom rule, and managed rule violations of your Security Application configurations for up to the last 7 days.
-
Select the time period for which data will be returned.Define a time period that does not exceed the retention period defined for the selected data source.
-
Optional. Define a filter for your report to gain deeper insights into security violations, key fields, or traffic patterns.
-
Edge Control Only: Define the configurations that will be compared and the type of data that will be analyzed.
-
From the Customer config version section, select two or more configurations.
-
Select the data that will be compared from the HTTP Status Code and Cache Status sections.For example, you may select
TCP_MISS
from the Cache Status section to compare whether cache misses increased as a result of your latest configuration update. -
Click Analyze.
-
Common Use Cases
The following common use cases are provided to demonstrate various ways in which you may use Edge Insights to gain insight into traffic patterns or to troubleshoot issues.
Was my software update delivered throughout the United States?
-
From the Data Source option, select
Access Logs (Full - last 6 hours)
. -
From the Time Period option, define the desired time period.For example, if the software update was made available on a Monday at 3 p.m., then you would set the starting point to that date and time. By default, the ending point is automatically set to a recent timestamp and therefore allows you to view all available data from the starting point to the present.
-
Create a filter for the software update’s URL.
-
Click on + Add Filter.
-
Select
URL Path
. -
Set it to the URL path for the desired software update package.Specific URL Path Example: The following value filters for a specific URL:
/downloads/widgets.zip
Recursive Example: The following value filters for all requests with the same base URL:regex:/downloads/.*
-
Click Save.
-
-
From the Top Results section, select the
Country Name
field. -
From the pie chart, click on
United States
. -
From the Top Results section, select the
HTTP Status Code
field. -
Review the status codes.
-
Optional. Dig into a specific status code by clicking on it and then reviewing log entries from the Logs section.
Why do I see a spike in 404 Not Found responses?
-
From the Data Source option, select
Access Logs (Full - last 6 hours)
. -
From the Top Results section, select the
HTTP Status Code
field. -
From the pie chart, click on
404
. -
From the Top Results section, select the
URL Path
field. -
Review the top requests for that time period.
-
Optional. If you cannot detect a clear pattern, try narrowing the report’s time period.For example, if the spike occurred on a Monday at 3 p.m., then you should generate a report for Monday from 2 p.m. to 4 p.m.
View detailed information for a request that results in a 404 Not found response by clicking on an entry in the Logs section.
Why do I see a traffic spike?
-
From the Data Source option, select
Access Logs (Full - last 6 hours)
. -
From the Time Period option, define a time period that covers that traffic spike.For example, if the traffic spike occurred on a Monday at 3 p.m., then you should generate a report for Monday from 2 p.m. to 4 p.m.
-
From the Top Results section, select the
URL Path
field. -
Review the top requests for that time period.
Why do I see a spike in WAF alerts?
-
From the Data Source option, select WAF Alerts.
-
From the Time Period option, define a time period that covers that spike.For example, if the spike occurred on a Monday at 3 p.m., then you should generate a report for Monday from 2 p.m. to 4 p.m.
-
From the Top Results section, review the Rule Message chart. Click on a rule message to filter by it.
-
From the Top Results section, select a field related to the selected rule message. Click on the largest segment in the pie chart.For example, if you filtered by the
Method is not allowed by policy
rule message, then you should select theRequest Method
field. -
From the Logs section, click on a log entry. Review key fields (e.g.,
url
anduser_agent
).
Why do I see a spike in rate limited requests?
-
From the Data Source option, select Rate Limiting Alerts.
-
From the Time Period option, define a time period that covers that spike.For example, if the spike occurred on a Monday at 3 p.m., then you should generate a report for Monday from 2 p.m. to 4 p.m.
-
From the Top Results section, select the
Client IP
field. -
Review the top requests for that time period.
-
Optional. If you cannot detect a clear pattern, try selecting a region field (e.g.,
City Name
) from within the Top Results section.
Sharing Data
You may share an entire report or specific data with other users.
-
Entire Report: Share an Edge Insights report with another Edgio team member by providing the report’s URL.Example:
https://edge-insights.edgio.app/?avg=0&bin=auto&end_time=1638817682&f=%7B%22geoip_country_name%22%3A%22United+States%22%7D&fstatus=%7B%22geoip_country_name%22%3A%7B%22value%22%3A%22United+States%22%2C%22active%22%3Atrue%7D%7D>=chart1&h=0&legend=0&log=0&mt=graph_by_pop&nm=false¬f=%7B%7D¬fstatus=%7B%7D&p=1&pc1s=status_code&pc2s=geoip_country_name&pp=10&prefix=&quantiles=&selectedChart=histogram&selectedQuantitativeField=bytes_in&start_time=1638212206&ti=604800&topn=10&ttr=10&vs=&vt=accesslog
-
Specific Data: Click on the icon next to the data that you would like to share. Edgio will load the corresponding JSON data in a new window or tab. You should then either:
-
Share the JSON data with the desired individual(s).
-
Share the data’s URL with another Edgio team member.Example:
https://edge-insights.edgio.app/api/proxy/v0.7/accesslog-sc-bf/count?filters=%7B%22geoip_country_name%22%3A%22United%20States%22%7D&end_time=1638817682&start_time=1638212206&size=10&per_page=10&page=1
-
You must establish an Edgio session before attempting to load an Edgio URL that points to a specific report or data. Attempting to load this type of URL without an active Edgio session may load the Edgio’s home page instead.
Data Downsampling and Retention
Our policy on downsampling data and the amount of time that we store it varies according to data source.
Data Source | Coverage | Retention Schedule |
---|---|---|
Access Logs | Full | 6 hours |
Analytics | Aggregate | 7 days |
Bot Manager Alerts | Full | 7 days |
Edge Control | Full | 7 days |
Downsampled Access Logs | Downsampled to 0.1% | 7 days |
Rate Limiting Alerts | Downsampled to 10% | 30 days |
WAF Alerts | Full | 30 days |
Time Chart
The time chart (aka line graph) graphs the current report’s data over time.
Key information:
-
By default, a single line plots all requests over time. Graph the top results for a specific field by clicking on the button that corresponds to that field. If the desired field is not listed, select it from within the Top Results section.By default, a line graph includes up to the 10 most popular entries. Customize this limit through the Limit Results to Top option from the left-hand pane. This option also affects the maximum number of unique entries that may be listed within a Top Result chart.Use the layout options to determine whether all data will be plotted on a single or multiple line charts.
- Single Line Chart: By default, all data is plotted within a single chart with individual lines for each entry. Switch from multiple line charts to a single line chart by clicking the icon.
Click on the color-coded entries within the legend to hide or show them.- Multiple Line Charts: Generate a line graph for each entry by clicking the icon.
-
Hovering over the line graph will indicate the exact number of requests that were plotted for that time slot.
-
By default, Edge Insights plots data using an optimal time interval for the report’s time range. You may override this by switching the resolution from Auto to the desired time interval.The report’s time range determines the set of available resolutions.
-
View the data used to plot this chart by clicking on the icon. Upon clicking this icon, Edgio displays this data in JSON format within a new tab.
Top Results Charts
The top results charts displays the top results for 2 fields.
Key information:
-
By default, each chart may include up to the 10 most popular entries. Customize this limit through the Limit Results to Top option from the left-hand pane. This option also affects the maximum number of unique entries that may be graphed within the time chart.
-
The Top Results charts only include statistically significant entries. A gray slice called
Rest...
represents all remaining traffic.Certain fields may generate a pie chart that solely consists of aRest...
slice. This behavior typically indicates either that there are many unique entries or that this field is not applicable to the majority of requests.Example:In the following illustration, theClient Postal Code
pie chart returns a single slice calledRest...
. The traffic represented by this pie chart is distributed throughout the world and therefore no single postal code was responsible for a statistically significant traffic segment. TheClient Region Name
pie chart, on the other hand, displays the top 10 regions. Those regions were responsible for majority of traffic included in this report.Increasing the Limit Results to Top option to 30 provides visibility into additional POPs that were responsible for serving the majority of your traffic. Notice in the following illustration that theRest...
slice is now smaller since the pie chart now reports data for regions that were previously included by that slice. -
You may switch a chart’s field by selecting a new one directly underneath the chart. The available set of fields vary by data source.
-
The fields selected in the Top Results section determine the available set of sources within the time chart.
-
Filter the entire report by clicking on a value within the chart.
-
Filters persist until they are manually removed from the Filters section in the left-hand pane. This allows you to quickly filter on multiple fields. Apply an additional filter by switching to another field and then clicking on the desired entry.
Filtering
Filtering is critical for gaining deeper insights into your data.
To filter your report
-
From the Top Results section, select the field that contains the data that you would like to filter.
-
From the pie chart, click on the value by which you would like to filter.The Filters section in the left-hand pane is immediately updated to display your filter query.Example:From the Top Results section, select the
HTTP Status Code
field and then click on404
to create the following filter:
Common Filtering Tasks
Perform the following common tasks from within the Filters section in the left-hand pane:
-
Click on a filter to toggle between enabling and disabling it. Gray font indicates that the filter has been disabled.
-
Manually add a filter by performing the following steps:
-
Click on + Add Filter.
-
Select the desired field.The set of available fields varies by data source. View field definitions for: Access Logs, Analytics, Bot Manager Alerts, Rate Limiting Alerts, WAF Alerts
-
Optional. Click on
=
to toggle between filtering for requests that:- =: Match the specified value.
- ≠: Do not match the specified value.
Example:Filter for requests that do not originate from a specific country by selecting theCountry Name
field, toggling this symbol to≠
, and then defining the name of the desired country. -
Set the value through which the report will be filtered.Advanced (Regular Expressions): If you are filtering by a field that reports a string value, then you may define a regular expression through the following syntax:
regex:<REGULAR EXPRESSION>
Example:Use this regular expression on theCountry Name
field to filter for requests that originated in United States, Canada, or Mexico:regex:United States|Canada|Mexico
-
Click Save.
-
Log Data
Log data, which is reported within the Logs section, provides contextual information about a request that allows you to gain deeper behavioral insight into threat detection and CDN usage.
Key information:
-
Log entries are returned as paginated results. By default, we provide 10 log entries per page. You may increase this value up to 1,000 through the Logs per page option.
-
View a specific log entry by clicking on it.
-
View the current page’s log data by clicking on the icon. Upon clicking this icon, Edge Insights opens a new tab that contains a JSON object that represents the current page’s log data.
-
Edge Insights restricts log retrieval to 10,000 log entries. If the current report consists of more log entries, then you may only retrieve log data for 10,000 of the most recent requests. This limit solely applies to log retrieval. Your report’s time chart and Top Results charts display all available data without regard to this limit.Edge Insights is not meant to be used as a log retrieval or log archival tool. Use Real-Time Log Delivery to automatically archive log data to one or more destinations.
Access Logs
Use this data source to analyze CDN traffic. This data provides historical and near real-time visibility into your CDN traffic at a high-level.
Each Access Log field is defined below.
Field | Description |
---|---|
@timestamp | Indicates the timestamp, in Unix time (seconds), at which our CDN received the request. |
Account Number | Identifies the environment through which this request was served through its system-defined account number (hexadecimal). |
Apparent Cache Log Status | Indicates the cache status code that was generated by the request. This code indicates how the request was handled by the CDN with regards to caching. Syntax: LOG_STATUS_ CACHE STATUS CODE |
ASN | Indicates the autonomous system number (ASN) for the autonomous system (AS) from which the request originated. |
Bytes In | Indicates the sum of the number of bytes read from both the requesting client and the origin server. Returns 0 for blocked requests. |
Bytes Out | Indicates the number of bytes in the response sent from the edge server to the client. Returns 0 for blocked requests. |
Cache Client Revalidate | Reserved for future use. |
Cache Level | Reserved for future use. |
Cache Origin Cacheable | Reserved for future use. |
Cache Partial Hit Piggyback Fail Info | Reserved for future use. |
Cache Partial Hit Wait Result | Reserved for future use. |
Cache Response | Indicates the status of the response.
|
Cache Status | Indicates the cache status code that was generated by the request. This code indicates how the request was handled by the CDN with regards to caching. Syntax: LOG_STATUS_ CACHE STATUS CODE |
CARP Hash | Reserved for future use. |
Chosen SSL Signature Algorithm | Indicates the algorithms used to generate and encrypt a hash for this TLS request. Example: RSA-SHA256 |
Client City Name | Indicates the city from which the request originated. |
Client Content Type | Indicates the media type (aka content type) for the requested content. Example: application/javascript |
Client Continent Code | Indicates the continent from which the request originated using one of the following codes:
|
Client Country Code | Identifies the country from which the request originated by its country code. |
Client HTTP Request Protocol | Indicates the request’s HTTP version. Example: HTTP_2_0 |
Client IP Address | Identifies the IP address of the client from which the request originated. |
Client ISP | Indicates the client’s ISP. |
Client Latitude | Indicates the approximate latitude of the postal code, city, subdivision, or country associated with the client’s IP address. A null value is reported when the client’s latitude cannot be determined. |
Client Longitude | Indicates the approximate longitude of the postal code, city, subdivision, or country associated with the client’s IP address. A null value is reported when the client’s longitude cannot be determined. |
Client Postal Code | Reserved for future use. |
Client Region Name | Indicates the name of the region from which the request originated. Example: Sao Paulo |
Client SSL Ciphers | Indicates the set of cipher suites supported by the client that submitted the request. |
Client VIP | Reserved for future use. |
Connection ID | Reserved for future use. |
Country Name | Identifies the country from which the request originated by its name. |
Crypt Id | Reserved for future use. |
Customer config version | Identifies the version of the CDN configuration that was in effect when this request was processed. Updating your CDN configuration increments your CDN configuration version. |
Customer Id | Identifies the environment through which this request was served through its system-defined account number (decimal). |
Direct Response | Reserved for future use. |
EC Tag | Reserved for future use. |
Edge Function Count | Indicates the number of times that the edge function has been invoked. |
Edge Function Customer Metric # | Indicates the value associated with a metric measured within an edge function by context.metrics. |
Edge Function Memory Reserved Bytes | Indicates the amount of memory, in bytes, that have been reserved for this edge function. Runtime memory encompasses all variables, HTTP requests and responses, as well as the context object. |
Edge Function Name | Identifies the edge function by value assigned to the edge_function property. |
Edge Function Sync Time | Indicates the edge function’s CPU time in microseconds. |
Edge Function Total Time | Indicates the total time, in microseconds, that this edge function ran. |
Edge Function Wait Time | Indicates the amount of time, in microseconds, that this edge function waited for asynchronous events (e.g., waiting for a response). |
Edge Server IP Address | Indicates the IP address for the edge server that processed the request. |
Edge Server Port | Identifies the port on the edge server that received the request. |
Environment ID | Identifies the environment through which this request was served through its system-defined ID. |
Epoch Time | Indicates the timestamp, in Unix time (seconds), at which our CDN received the request. |
Event ID | Indicates the unique ID assigned to this request. |
File extension | Indicates the request’s file extension. Example: .js |
File size | Indicates the size, in bytes, of the requested asset (i.e., response body). |
Geographical Time Zone | Indicates the name of the time zone that corresponds to the region from which the request originated. Example: America/Sao_Paulo |
Geoip Region Code | Identifies the client’s region by its system-defined ID. |
Host Header (Edge CNAME) | Indicates the Host header value sent in the client’s request to the CDN. |
Hot Hash | Reserved for future use. |
Hot Servers | Reserved for future use. |
HTTP Method | Indicates the request’s HTTP method. Example: HTTP_METHOD_GET |
HTTP Status Code | Indicates the response’s HTTP status message. Example: HTTP_STATUS_OK |
Id | Reserved for future use. |
Index | Reserved for internal use. |
Ingest Timestamp | Indicates the timestamp, in Unix time (seconds), at which our CDN received the request. |
IP Version | Indicates the client’s IP version number. Valid values are: `4 |
JA3 MD5 Hash | Indicates the JA3 fingerprint assigned to the request. A JA3 fingerprint identifies a client using key characteristics from a TLS request. |
LC | Reserved for future use. |
Origin Name | Indicates the name of the origin configuration that corresponds to this request. |
Partner ID | Indicates the system-defined ID of the partner that owns this account. |
Pipeline Time | Indicates the number of seconds between when the request was received by our network and ingestion. |
Platform | Returns cache . |
POP | Identifies the POP that handled the client’s request by its three-letter abbreviation. |
Proxy ASN | Indicates the ASN through which the request was proxied. |
Proxy Hard Error | Indicates the error message that occurred when proxying the request. Example: The following sample value indicates that an error did not occur when proxying the request: HARD_ERR_NONE |
Proxy IP Address | Indicates the IP address to which the request was proxied. |
Proxy IP Protocol Version | Indicates the IP protocol version (i.e., IPv4 or IPv6) to which the request was proxied. |
Proxy Port | Indicates the port to which the request was proxied. |
Proxy Timing Finished To End | Reserved for future use. |
Proxy Type | Indicates whether the request was proxied to an ORIGIN or MIDGRESS (e.g., Origin Shield). Returns NONE if the request was not proxied. |
Query String | Indicates the request’s query string. |
Range | Indicates the requested range of bytes as defined by the Range request header. Example: bytes=0-12022 |
Real Remote Host | Reserved for future use. |
Receiving Host | Identifies the host that received the request. |
Referrer | Indicates the request’s referrer as defined by the Referer request header. |
Requests | Reserved for future use. |
Response Body Bytes Out | Indicates the number of bytes in the payload sent from the edge server to the client. Returns 0 for blocked requests. See Bytes Out to find out the size of the entire response. |
Rewritten URL Path | Indicates the request’s URL as submitted by the client. |
Server Name | Indicates the name of the edge server that processed the request. |
Session ID | Reserved for future use. See the Event ID log field to find out a request’s ID. |
Site ID | Indicates system-defined ID for the property associated with this request. |
SSL Cipher Name | Indicates the cipher suite used in the handshake between the client that submitted the request and one of our servers. Example: TLS_AES_256_GCM_SHA384 |
SSL Client Signature Algorithms | Indicates the set of TLS signature algorithms supported by the client that submitted the request. |
SSL Protocol | Indicates the TLS protocol version used for the communication between the client and our network. Example: TLSv1.3 |
TCP Congestion Algorithm | Indicates the network congestion avoidance algorithm for TCP used to process the request. Example: cubic |
Team ID | Indicates the system-defined ID for the organization or private space associated with this request. |
Throughput | Reserved for future use. |
Timestamp | Indicates the timestamp at which our servers received the request. Syntax: YYYY-MM-DDThh:mm:ss:ffZ Example: 2022-11-14T18:36:11Z |
Total Time | Indicates the length of time, in seconds, that it took to send a response to the client. This metric measures the duration between when an edge server receives a request and when it finishes sending the response to the client. This field does not take into account network time. Example: 0.000582 |
Traffic Type | Reserved for future use. |
URI | Indicates the request’s URL path and query string after the URL Rewrite feature has been applied to it. This URL path starts directly after the hostname and it excludes the protocol and hostname. Example: This example assumes that the client submitted the following request: https://cdn.example.com/script.js Our service logs the following value for this field: /resources/script.js |
URL Path | Indicates the request’s URL path and query string as submitted by the client. This URL path starts directly after the hostname and it excludes the protocol and hostname. Example: This example assumes that the client submitted the following request: https://cdn.example.com/script.js Our service logs the following value for this field: /resources/script.js |
User Agent | Indicates the user agent that submitted the request. This information is derived from the User-Agent request header. |
Wholesaler ID | Indicates the wholesaler’s system-defined ID. |
Write Time | Indicates the length of time, in seconds, that it took an edge server to write the response. This metric measures the duration between when an edge server starts writing the response and when it finishes sending the response to the client. Our servers forward data as it is read. This means that the read_time and write_time reported for an asset spans over an overlapping time period. This field does not take into account network time. Example: 2.9999e-05 |
X Midgress | Indicates whether the request was proxied through an additional CDN server (e.g., edge server to Origin Shield server). This field reports __na__ for requests that did not have midgress traffic. |
X-Forwarded-For | Indicates the client’s IP address as determined by the X-Forwarded-For request header. |
Bot Manager Alerts
Use the Bot Manager Alerts data source for historical and near real-time analysis of recently detected bot traffic.
Edge Control
Use this data source to analyze how a new CDN configuration affects content delivery and performance.
Downsampled Access Logs
Use this data source to analyze CDN traffic that has been downsampled to 0.1%. This data provides historical and near real-time visibility into your CDN traffic at a high-level.
Calculate an approximation of your actual total events by multiplying your total events by 1,000. For example, if your total events reports 100K, then the approximate number of requests for that time period is 100,000,000.
Each Downsampled Access Logs field is defined below.
Rate Limiting Alerts
Use the Rate Limiting Alerts data source for historical and near real-time analysis of recently rate limited requests. For example, use this data to:
- Understand the severity of rate limited requests.
- Identify the countries from which rate limited traffic originated.
- Identify key individual offenders by their IP address.
- View detailed information that describes a rate limited request.
Logging for rate limited requests is downsampled to 10% due to the volume of requests that may occur during a single incident (e.g., volumetric Distributed Denial-of-Service attack).
Calculate an approximation of your actual total events by multiplying your total events by 10. For example, if your total events reports 325K, then the approximate number of requests for that time period is 3,250,000.
Edge Insights retains WAF data, including rate limited requests, for 30 days.
Each Rate Limiting field is defined below.
WAF Alerts
Use the WAF Alerts data source for historical and near real-time analysis of recent threats to site traffic. For example, use this data to:
- Visualize the time periods during which site traffic is most heavily targeted.
- Understand the variety, frequency, and severity of illegitimate traffic.
- Identify the countries from which illegitimate traffic originates.
- Identify key individual offenders by their IP address.
- Learn detailed information on the types of attack being mounted against your site.
Each WAF field is defined below.
RUM Logs
Use the RUM Logs data source for historical and near real-time analysis of Core Web Vitals.
Edge Function Logs
Use the Edge Function Logs data source to view log messages for edge functions that were computed within the last 7 days. Log messages through the
log()
method (e.g., console.log("My message")
).Cloud Functions Logs
Use the Cloud Functions Logs data source for historical and near real-time analysis of Cloud Functions.
Security Logs
Use the Security Logs data source for historical and near real-time analysis for access rule, rate limiting, bot manager, custom rule, and managed rule violations of your Security Application configurations.
View definitions for Security log fields: