Monitor performance
Monitor the performance of your site and services through reports. Each report returns data based on the time interval you set.
Support for specific intervals, filters, and metrics may vary by report type.
List all report types
To get a list of available report types, use the Get-ReportType command. It uses Reporting v2 API.
Get-ReportTypereportName : API usage report data
description : Provides requests and volume for API traffic.
reportLink : /reporting-api/v2/reports/common/apis/usage
status : PUBLISHED
ProductFamily : common
ReportingArea : apis
Report : usage
reportName : CDN emissions report data
description : Provides CDN traffic hits, volume and calculated carbon emissions data.
reportLink : /reporting-api/v2/reports/delivery/traffic/emissions
status : PUBLISHED
ProductFamily : delivery
ReportingArea : traffic
Report : emissions
...To see all report types with their metadata, run the Get-LegacyReportType command. It uses Reporting v1 API.
Get-LegacyReportTypename : urlhits-by-time
description : Returns URL traffic data over time.
businessObjectName : cpcode
version : 1
status : PUBLISHED
deprecated : False
internalOnly : False
timeBased : True
supportsPagination : False
outputType : FLAT
requiredProducts : {Basic Traffic Reports}
requiredRoles : {Reports - All privileges , Reports - View only, OTA App User}
available : True
metrics : {@{name=allEdgeHitsPerSecond; description=The rate of hits from Akamai to the end user.; label=Edge Hits/Sec; unit=COUNT_PER_SECOND; summaryStatistic=False}, @{name=allEdgeHitsPerSecondMax; description=The highest rate of hits from Akamai to the end user.; label=Edge Hits/Sec Maximum; unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=allEdgeHitsPerSecondMin; description=The lowest rate of hits from Akamai to the end user.; label=EdgeHits/Sec Minimum; unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=allEdgeHitsSlope; description=Represents the overall change in the number of hits from Akamai to the end user, a positive number if increasing or a negative number if decreasing.; label=Edge Hits Slope; unit=COUNT; summaryStatistic=True}…}
groupOutlyingValues : @{enabled=False}
groupBy : {date_id}
filters : {@{name=url_end_with; type=string; description=URL ends with the specified string.; required=False}, @{name=url_not_contain; type=string; description=URL
does not contain the specified string.; required=False}, @{name=url_match; type=string; description=URL matches the specified string.; required=False}, @{name=url_not_start_with; type=string; description=URL does not start with the specified string.; required=False}…}
intervals : {MONTH, WEEK, DAY}
dataRetentionDays : 92
links : {@{rel=self; href=/reporting-api/v1/reports/urlhits-by-time/versions/1}, @{rel=versions; href=/reporting-api/v1/reports/urlhits-by-time/versions}, @{rel=all-reports; href=/reporting-api/v1/reports}, @{rel=execute-report; href=/reporting-api/v1/reports/urlhits-by-time/versions/1/report-data}}
name : urlresponses-by-time
description : Returns URL data by response class over time.
businessObjectName : cpcode
version : 1
status : PUBLISHED
deprecated : False
internalOnly : False
timeBased : True
supportsPagination : False
outputType : FLAT
requiredProducts : {Basic Traffic Reports}
requiredRoles : {Reports - All privileges, Reports - View only, OTA App User}
available : True
metrics : {@{name=0XXEdgeHitsMax; description=The highest number of hits from Akamai to the end user returning 0XX responses.; label=Edge Hits/Sec Maximum; unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=0XXEdgeHitsMin; description=The lowest number of hits from Akamai to the end user returning 0XX responses.; label=Edge Hits/Sec Minimum; unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=0XXEdgeHitsPerSecond; description=The rate of hits from
Akamai to the end user returning 0XX responses.; label=Edge Hits/Sec; unit=COUNT_PER_SECOND; summaryStatistic=False}, @{name=0XXEdgeHitsSlope; description=Represents the overall change in the number of URLs returning 0XX responses, a positive number if increasing or a negative number if
decreasing.; label=Edge Hits Slope; unit=COUNT; summaryStatistic=True}…}
groupOutlyingValues : @{enabled=False}
groupBy : {date_id}
filters : {@{name=url_end_with; type=string; description=URL ends with the specified string. ; required=False}, @{name=url_not_contain; type=string; description=URL does not contain the specified string.; required=False}, @{name=url_match; type=string; description=URL matches the specified string.; required=False}, @{name=url_not_start_with; type=string; description=URL does not start with the specified string.; required=False}…}
intervals : {MONTH, WEEK, DAY}
dataRetentionDays : 92
links : {@{rel=self; href=/reporting-api/v1/reports/urlresponses-by-time/versions/1}, @{rel=versions; href=/reporting-api/v1/reports/urlresponses-by-time/versions}, @{rel=all-reports; href=/reporting-api/v1/reports}, @{rel=execute-report; href=/reporting-api/v1/reports/urlresponses-by-time/versions/1/report-data}}
...Sort report list types
You can filter the report types with Get-ReportType (Reporting v2 API) by -ProductFamily and -ReportingArea or use a sort term.
Note: If you don't know which product families and reporting areas are available to you, run the
Get-ReportProductFamilyandGet-ReportingAreacommands.
# Gets a list of all reports by a specified product family and reporting area
Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm'
# Gets a sorted list of all report names with their product families and reporting areas
Get-ReportType | Sort-Object -Property reportName | Select-Object reportName, ProductFamily, ReportingArea
# Gets a sorted list of reports with "IVM" in the name
Get-ReportType | where reportName -Like *IVM* | Sort-Object -Property reportName | Select-Object reportName, ProductFamily, ReportingArea# All reports by a specified product family and reporting area (truncated)
reportName : IVM image traffic report data
description : Provides traffic data for images configured to use Image and Video Manager.
reportLink : /reporting-api/v2/reports/delivery/ivm/image-traffic
status : PUBLISHED
ProductFamily : delivery
ReportingArea : ivm
Report : image-traffic
reportName : IVM image stats report data
description : Provides policy stats data for images configured to use Image and Video Manager.
reportLink : /reporting-api/v2/reports/delivery/ivm/image-policy-stats
status : PUBLISHED
ProductFamily : delivery
ReportingArea : ivm
Report : image-policy-stats
...
# All sorted report names with their product families and reporting areas (truncated)
reportName ProductFamily ReportingArea
---------- ------------- -------------
API usage details report data common apis
API usage report data common apis
CDN emissions report data delivery traffic
CDN traffic report data delivery traffic
IVM image stats report data delivery ivm
IVM image traffic report data delivery ivm
Purge objects details report data delivery purge
Purge requests details report data delivery purge
# All sorted reports with "IVM" in the name
reportName ProductFamily ReportingArea
---------- ------------- -------------
IVM image stats report data delivery ivm
IVM image traffic report data delivery ivmThe number of available reports returned with Get-LegacyReportType (Reporting v1 API) is large, and so is the total information returned for each report. To make the list of report types manageable, use a sort term, for example, name or version.
# Gets a running list of all report names and versions
Get-LegacyReportType | Sort-Object -Property name | Select-Object name, version
# Gets a list of reports with "today" in the name
Get-LegacyReportType | where name -Like *today* | Sort-Object -Property name | Select-Object name, version# All report names and versions (truncated)
name version
---- -------
actionstaken-by-cpcode 1
actionstaken-by-time 1
aic-by-time 1
aic-by-time 2
aic-by-time-test 1
apirequests-by-agentfamily 1
apirequests-by-endpoint 1
apirequests-by-httpmethod 1
apirequests-by-owner 1
apirequests-internal-by-httpmethod 1
apiusage-by-time 1
...
# All reports with "today" in the name
name version
---- -------
todaytraffic-by-response 1
todaytraffic-by-time 1
todaytraffic-by-timeandresponseclass 1
todaytraffic-bytes-by-cpcode 1
todaytraffic-hits-by-cpcode 1Get a specific type
To get details of a specific report type, specify the value for the -Report parameter along with the -ProductFamily and ReportingArea when running the Get-ReportType command (Reporting v2 API).
Note: For the
-Reportparameter, use the final segment of thereportLinkvalue returned byGet-ReportTypewhen getting all report types. For example, if thereportLinkis/reporting-api/v2/reports/delivery/ivm/image-policy-stats, the value for the-Reportisimage-policy-stats.
Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm' -Report 'image-policy-stats'name : IVM image stats report data
description : Provides policy stats data for images configured to use Image and Video Manager.
status : PUBLISHED
metrics : {@{name=hits; description=The number of received image hits.; type=LONG; filterable=True; mandatory=False}, @{name=bytes; description=The number of delivered
bytes of image content.; type=LONG; filterable=True; mandatory=False}, @{name=hits200; description=The number of requests that returned successful responses.;
type=LONG; filterable=True; mandatory=False}, @{name=bytes200; description=The volume of data served with successful responses.; type=LONG; filterable=True;
mandatory=False}…}
dimensions : {@{name=cpcode; description=Content provider (CP) code.; type=LONG; filterable=True; mandatory=False; filterType=TEXT; authorizable=True}, @{name=time1day;
description=Datapoint timestamp for 1 day granularity.; type=LONG; filterable=True; mandatory=False; filterType=TEXT; authorizable=False}, @{name=token;
description=The Image and Video Manager policy token for which you want data included.; type=STRING; filterable=True; mandatory=False; filterType=TEXT;
authorizable=False}, @{name=tokenWithVersion; description=The Image and Video Manager policy token with the version for which you want data included.;
type=STRING; filterable=True; mandatory=False; filterType=TEXT; authorizable=False}…}
predefinedTimeRanges : {LAST_1_DAY, LAST_1_WEEK, LAST_30_DAYS, LAST_90_DAYS}
defaults : @{defaultTimeRange=; defaultMetrics=System.Object[]; defaultSortBys=System.Object[]}
limits : @{maxDimensions=4; maxDateRangeInDays=90; maxRetentionInDays=90; inListFilterMaxValues=10000; textFilterMaxLength=100; dataPointsLimit=50000}
links : {@{rel=self; href=/reporting-api/v2/reports/delivery/ivm/image-policy-stats; describedBy=/reporting-api/v2/reports/schema; allow=System.Object[]}, @{rel=data;
href=/reporting-api/v2/reports/delivery/ivm/image-policy-stats/data; allow=System.Object[]}}Reports fetched with Reporting v1 API have multiple versions to choose from. For example, the load-balancing-dns-traffic-property-all-datacenters-liveness report has four versions, all of which you can use. The versions denote changes to the report structure. If you're not sure which version to use, choose the latest version.
Get-LegacyReportType -Name urlhits-by-time -Version 1name : urlhits-by-time
description : Returns URL traffic data over time.
businessObjectName : cpcode
version : 1
status : PUBLISHED
deprecated : False
internalOnly : False
timeBased : True
supportsPagination : False
outputType : FLAT
requiredProducts : {Basic Traffic Reports}
requiredRoles : {Reports - All privileges , Reports - View only, OTA App User}
available : True
metrics : {@{name=allEdgeHitsPerSecond; description=The rate of hits from Akamai to the end user.; label=Edge Hits/Sec; unit=COUNT_PER_SECOND;
summaryStatistic=False}, @{name=allEdgeHitsPerSecondMax; description=The highest rate of hits from Akamai to the end user.; label=Edge Hits/Sec Maximum;
unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=allEdgeHitsPerSecondMin; description=The lowest rate of hits from Akamai to the end user.; label=Edge
Hits/Sec Minimum; unit=COUNT_PER_SECOND; summaryStatistic=True}, @{name=allEdgeHitsSlope; description=Represents the overall change in the number of hits
from Akamai to the end user, a positive number if increasing or a negative number if decreasing.; label=Edge Hits Slope; unit=COUNT; summaryStatistic=True}…}
groupOutlyingValues : @{enabled=False}
groupBy : {date_id}
filters : {@{name=url_not_end_with; type=string; description=URL does not end with the specified string.; required=False}, @{name=delivery_type; type=enum;
description=Distinguishes secure from non-secure traffic. Optional. No selection returns both secure and non-secure traffic. ; values=System.Object[];
required=False}, @{name=url_contain; type=string; description=URL contains the specified string. ; required=False}, @{name=url_end_with; type=string;
description=URL ends with the specified string. ; required=False}…}
intervals : {MONTH, WEEK, DAY}
dataRetentionDays : 92
links : {@{rel=self; href=/reporting-api/v1/reports/urlhits-by-time/versions/1}, @{rel=versions; href=/reporting-api/v1/reports/urlhits-by-time/versions},
@{rel=all-reports; href=/reporting-api/v1/reports}, @{rel=execute-report; href=/reporting-api/v1/reports/urlhits-by-time/versions/1/report-data}}Use filters and metrics
You can also reduce the output of most reports returned with Reporting v1 API using filters and metrics. Filters allow you to reduce the data by various conditions, such as IP version or response code. Metrics reduce the result to the metric(s) returned, such as allEdgeHitsPerSecondMax. You can see the filters and metrics in the response for a given report type. For example:
# Using filters
$Report = Get-LegacyReportType -Name urlhits-by-time -Version 1
$Report.filters
# Using metrics
$Report = Get-LegacyReportType -Name urlhits-by-time -Version 1
$Report.metrics# Filters
name type description required
---- ---- ----------- --------
url_not_end_with string URL does not end with the specified string. False
url_start_with string URL starts with the specified string. False
url_end_with string URL ends with the specified string. False
delivery_type enum Distinguishes secure from non-secure traffic. Optional. No selection returns both secure and non-secure traffic. False
url_not_contain string URL does not contain the specified string. False
url_not_match string URL does not match the specified string. False
url_not_start_with string URL does not start with the specified string. False
url_match string URL matches the specified string. False
url_exact_match string URL is an exact match for the specified string. False
url_contain string URL contains the specified string. False
# Metrics
name : allEdgeHitsPerSecond
description : The rate of hits from Akamai to the end user.
label : Edge Hits/Sec
unit : COUNT_PER_SECOND
summaryStatistic : False
name : allEdgeHitsPerSecondMax
description : The highest rate of hits from Akamai to the end user.
label : Edge Hits/Sec Maximum
unit : COUNT_PER_SECOND
summaryStatistic : TrueMetrics are also available for reports returned with Reporting v2 API.
$Report = Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm' -Report 'image-policy-stats'
$Report.metricsname : hits
description : The number of received image hits.
type : LONG
filterable : True
mandatory : False
name : bytes
description : The number of delivered bytes of image content.
type : LONG
filterable : True
mandatory : FalseGet report data
There are two ways to get your report data: by creating a new one or getting an existing one.
Generate a report
Run the New-Report command (Reporting v2 API). This method doesn't cache results and is better for large data requests and non-repeating requests.
Optionally, pass the -Async switch parameter. This returns a query ID you can use to get the report any time with Get-Report. Omitting this parameter returns the report right now.
Note: If you don't know which product families and reporting areas are available to you, run the
Get-ReportProductFamilyandGet-ReportingAreacommands.
$Report = New-Report -Report 'usage' -ProductFamily 'common' -ReportingArea 'apis' -Start "2026-03-28T00:00:00Z" -End "2026-04-27T00:00:00Z" -AsyncAlternatively, use the New-LegacyReport command (Reporting v1 API), which is similar to New-Report, but accepts a bit different parameters. Optionally, you can also provide a report with given -Metrics or -Filters in the command.
$Report = New-LegacyReport -Name 'urlhits-by-time' -Version 1 -Start 2026-05-27T00:00:00Z -End 2026-05-29T00:00:00Z -Interval 'DAY' -ObjectIds 12345Get a report
Use Get-Report (Reporting v2 API) to return available options for a report. Note that it can take a few minutes to actually get to the report if you've just run the New-Report command.
You need to pass a report name, product family, and reporting area, along with a query ID returned to you from the New-Report command.
Note: If you don't know which product families and reporting areas are available to you, run the
Get-ReportProductFamilyandGet-ReportingAreacommands.
$Report = Get-Report -Report 'usage' -ProductFamily 'common' -ReportingArea 'apis' -QueryID $Report.QueryIDGet-LegacyReport (Reporting v1 API) uses a cacheable result and returns data for subsequent requests more quickly. This method has a query string max. If your query is long, use New-LegacyReport instead. Both commands use the same parameters.
$Report = Get-LegacyReport -Name 'urlhits-by-time' -Version 1 -Start 2026-05-27T00:00:00Z -End 2026-05-29T00:00:00Z -Interval 'DAY' -ObjectIds 12345Parse results
Assign your report results to a variable and parse out the information you need to analyze your data.
-
Printing the results of a report saved to
$Reportmay not display all of the information contained within the variable. To see more information, pipe your results toFormat-Listorfl.$Report | fl data : {@{endpoint=config-dns/2; requestsSum=3025636; requestsPercentage=53.3498703738414; bytesSum=1080925151243; bytesPercentage=79.5413296922291}, @{endpoint=appsec/1; requestsSum=747816; requestsPercentage=13.1859505451034; bytesSum=5167106681; bytesPercentage=0.380228488157313}, @{endpoint=config-gtm/1; requestsSum=569048; requestsPercentage=10.0338034834639; bytesSum=228769938787; bytesPercentage=16.8343433435726}, @{endpoint=identity-management/3; requestsSum=394910; requestsPercentage=6.96329542262642; bytesSum=622262684; bytesPercentage=0.0457900357358679}…} metadata : @{name=API usage report data; links=System.Object[]; rows=69; totalRows=69; requestTime=6/8/2026 2:06:41 PM; evictionTime=6/15/2026 2:07:02 PM} -
Export the results of your request to wherever you normally keep report data.
$Report.data | Export-CSV results.csv
Updated about 2 hours ago
