Overview
This article explains how Qwilt calculates the metrics provided through reporting APIs and QC Services Dashboards and Reports. Please note that metrics from custom reporting APIs, which differ from the standard reporting APIs available to all users, may be calculated differently. For more information, refer to the custom report documentation.
Metric Definitions
The metrics available in the reporting APIs and in the QC Services dashboards and reports are described here.
- By default, metrics are returned as a single aggregation of all data that matches the selected filters over the specified time range. The value is calculated by first computing the metric over a series of underlying time intervals (typically 5-minute intervals) and then aggregating those values.
- You can use the groupBy parameter to break down the metric by dimension, for example, groupBy:trafficLayer.
- To break down the API response data by time interval, use the groupBy:time query parameter. This returns a series of metric values within the selected time range, instead of a single aggregated value.
Bandwidth
This metric represents consumed bandwidth. Bandwidth measures the rate of data transfer over a period, expressed in bits per second (bps). It is calculated by dividing the total volume of data transferred (in bytes) during the interval by the number of seconds in that interval and then converting to bits by multiplying by 8.
bandwidth (bps) = bytes transferred ÷ interval x 8
For example, if 1MB of data was transferred during a 5-minute interval (300 seconds), the bandwidth would be computed as follows:
1MB ÷ 300 seconds x 8 = 26,666.66 bits per second (bps)
The default interval covers the entire reporting period, where to - from is the duration of the reporting period.
bandwidth (bps) = bytes transferred ÷ (to - from) x 8
To break down the metric into smaller time slices (e.g., 5-minute intervals), use the groupBy:time parameter.
Bitrate
Bitrate (average bitrate) measures the average rate of transfer for individual transactions over an interval, expressed in bits per second (bps). It is calculated by dividing the total volume of data transferred across all transactions (in bytes) during the interval, by the sum of the duration of all the transactions and converting to bits by multiplying by 8.
bitrate (bps) = downstream volume ÷ duration x 8
For example, if a single request with a 1 MB payload is served in 5 seconds, the bitrate for that transaction is computed as follows:
1 MB ÷ 5 seconds x 8 = 1,600,000 bits per second (bps)
Bandwidth vs. Bitrate
Both Bandwidth and Bitrate measure the rate of data transfer in bits per second (bps), but they capture different aspects of usage.
-
Bandwidth (consumed bandwidth) measures the average data transfer rate over a time interval by dividing the total data moved by the full interval duration.
-
Bitrate (average bitrate) measures how fast data moves during individual transactions, averaging the transfer rates of all transactions over the interval.
The key difference lies in what time is used in the calculation.
- Bandwidth = total volume transferred ÷ total interval duration
- Bitrate = total volume transferred ÷ total active transfer time
Because the total active transfer time may be greater or less than the interval duration, Bitrate can be much higher than Bandwidth when traffic occurs in short bursts rather than evenly over time. Conversely, if data transfer is steady throughout the interval, their values may be closer. Traffic bursts can lead to high peak bitrate while still producing a moderate average bandwidth.
Cache Efficiency
See Volume Hit Ratio.
Cache Time to First Byte
(Currently available via the Delivery Reports API.) The average time (ms) for the first byte to reach the client from the CDN cache. This is the average of all requests that were served as cache hits in the specified period.
This feature became available on February 16, 2025. If a report's date range starts before February 16th and ends after, this metric is calculated based on the traffic data from February 16th onward.
Efficiency
Hit Ratio
See Request Hit Ratio.
Origin Time to First Byte
(Currently available via the Delivery Reports API.) The average time (ms) for the first byte to reach the CDN cache from the origin server during the specified period. This is the average of all requests that were served from the origin in the specified period.
This feature became available on February 16, 2025. If a report's date range starts before February 16th and ends after, this metric is calculated based on the traffic data from February 16th onward.
Requests
The sum of all HTTP/HTTPS requests (also known as transactions) served by the CDN during the interval.
The Request metric counts client requests only. Each client request is treated as a single transaction, even if it is split by the CDN into multiple sub-transactions. Also see Large Transactions.
Requests are attributed to the interval in which they start and are counted only after they complete. For example, a request starting at 10:04:57 and finishing at 10:05:03 is attributed to the 10:00 - 10:05 interval and appears in reports after the request completes, not during the interval.
Request Hit Ratio (aka Hit Ratio)
The percentage of served requests that were delivered from the cache.
Streamed Bitrate
Subscribers
TPS (transactions per second)
The rate at which HTTP/HTTPs transactions (also known as requests) are served. It is calculated by dividing the total number of requests served during the interval by the number of seconds in the interval.
tps = request count ÷ interval
The default interval covers the entire reporting period, where to - from is the duration of the reporting period.
tps = request count ÷ (to - from)
To break down the metric into smaller time slices (e.g., 5-minute intervals), use the groupBy:time parameter.
Also see Requests.
Unique Subscribers
An approximation of the number of distinct clients seen during the selected interval.
To protect user privacy, we anonymize client identifiers in a way that limits accurate counting to a single UTC calendar day. As a result, the metric is reliably accurate only when the selected time range falls within the same UTC day.
Volume
The total amount of data transferred during the interval, measured in bytes.
The value is affected by the traffic type filter (e.g., ingress, egress).
If you filter for traffic type, use the groupBy:trafficLayer parameter to get values per selected traffic type rather than aggregated values for all selected traffic types.
Volume Hit Ratio (aka Cache Efficiency)
Volume Hit Ratio, also known as Cache Efficiency, or just Efficiency, is the percentage of total volume served to the client that is attributed to cache hits.
The metric is computed as follows:
Volume Hit Ratio = (downstream volume - upstream volume) ÷ downstream volume
- Downstream volume (egress): Total bytes served to the client.
- Upstream volume (ingress): Bytes fetched from the origin due to a cache miss, bypass, or expired cache status.
Note: In cases where downstream data is compressed but upstream data is not, the metric value may appear unusually low or negative. This happens because the total volume delivered to end-users includes data retrieved from the origin in an uncompressed format but delivered to the client in a compressed format, making the downstream volume smaller than the original upstream volume.
Peak Values
Peak values in the QC Services dashboards and reports represent the 5-minute time increment within the report timeframe that has the highest aggregated value. They are calculated based on the data displayed in the report, as determined by the filter settings. Peak values are always calculated based on 5-minute intervals, even if the data points on a graph represent longer intervals.
Large Transactions
If your site configuration supports large client requests, the CDN may internally split these requests into multiple sub-transactions for processing.
-
Request Count - The Request metric counts only the original client requests, treating them as single transactions regardless of any internal splitting.
-
Request Hit Ratio - A client request is counted as a cache hit only if all its sub-transactions result in cache hits.
-
Volume Hit Ratio - Unlike Request Hit Ratio, Volume Hit Ratio is calculated at the sub-transaction level. Each sub-transaction's behavior (hit or miss) contributes proportionally to the overall volume hit ratio.
Examples
Example 1: Volume, Bandwidth, Bitrate
Scenario:
- You served a single request during a 5-minute interval.
- The payload was 1MB.
- It took 5 seconds to serve the request.
Resulting Metrics:
- Volume = 1MB.
- Bandwidth =
1MB ÷ 300 seconds
= 3333.33 bytes per second x 8 = 26,666.66 bits per second (bps) - Bitrate =
1 MB ÷ 5 seconds
= 2000,000 bytes per second x 8 = 1,600,000 bits per second (bps)
In this case, the bitrate is very high due to the 5 second traffic burst, while bandwidth, averaged over the full 300 seconds is much lower because during the interval, the network was mostly idle.
Example 2: Volume, Bandwidth, Bitrate
Scenario 1:
- You served 3 requests during a 5-minute interval.
- Each request had a 1MB payload.
- Each request took exactly 300 seconds to serve.
Resulting Metrics:
- Volume = 3 MB.
- Bandwidth =
(3 MB) x 8 ÷ 300seconds
= 80,000 bits per second (bps) - Bitrate =
(3 MB) x 8 ÷ 900 seconds
= 26,666.66667 bits per second (bps)
Scenario 2: Let's say that the same requests took only 3 seconds each to serve. The bandwidth remains the same, but the bitrate increases significantly.
- You served 3 requests during a 5-minute interval.
- Each request had a 1MB payload.
- Each request took exactly 3 seconds to serve.
Resulting Metrics:
- Volume = 3 MB.
- Bandwidth =
(3 MB) x 8 ÷ 300seconds
= 80,000 bits per second (bps) - Bitrate =
(3 MB) x 8 ÷ 9 seconds
= 2,666,666.66666667 bits per second (bps)