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 List-ReportTypes
command.
List-ReportTypes
name : 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 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
The number of available reports is large and so is the total information returned for each report. Reduce the list using a sort term, for example, name
or version
.
To make the list of report types manageable, sort the list by a filter.
# Gets a running list of all report names and versions
List-ReportTypes | Sort-Object -Property name | Select name, version
# Gets a list of reports by reports with today in the name
List-ReportTypes | where name -Like *today* | Sort-Object -Property name | Select 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
todaytraffic-by-response 1
todaytraffic-by-time 1
todaytraffic-by-time-rl 1
todaytraffic-by-timeandresponseclass 1
todaytraffic-bytes-by-cpcode 1
todaytraffic-hits-by-cpcode 1
Get a specific type
Some reports have multiple versions to choose from. For example, the load-balancing-dns-traffic-property-load-feedback
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-ReportType -ReportType urlhits-by-time -Version 1
name : 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 using filters and metrics. Filters allow you reduce the data by various conditions, such as IP version or response code. Metrics reduce the result to the metric(s) returned, such as maxEdgeHits. You can see the filters and metrics in the response for a given report type. For example:
# Using filters
$Report = Get-ReportType -ReportType hits-by-tophostnameandtime -Version 1
$Report.filters
# Using metrics
$Report = Get-ReportType -ReportType hits-by-tophostnameandtime -Version 1
$Report.metrics
# Filter
name type description required
---- ---- ----------- --------
hostname_not_end_with string Hostname does not end with the specified string. False
hostname_contain string Hostname contains the specified string. False
http_version enum HTTP version. False
hostname_not_start_with string Hostname does not start with the specified string. False
hostname_end_with string Hostname ends with the specified string. False
response_status enum An indicator of whether the response resulted in success or error. False
hostname_not_match regexp Hostname does not match the specified string. False
hostname_match regexp Hostname is an exact match for the specified string. False
hostname_not_contain string Hostname does not contain the specified string. False
hostname_exact_match string Hostname is an exact match for the specified string. False
response_code string An HTTP response status code, for example, 201. False
delivery_type enum Distinguishes secure from non-secure traffic. False
response_class enum A class of HTTP response status codes, from 0xx through 6xx. False
traffic enum HTTP traffic to be included in the report data. False
hostname_start_with string Hostname starts with the specified string. False
ip_version enum IP for which the report is shown. False
# Metrics
name : maxEdgeHits
description : Maximum Edge Hits.
label : Maximum Edge Hits
unit : COUNT
summaryStatistic : False
Get report data
There are two ways to get your report data.
- Get a cacheable report.
Get-CacheableReport
uses a cacheable result and returns data for subsequent requests quicker. This method does have a query string max. If your query is long, use the generate a report instead. - Generate a report. This method does not cache results.
Generate-Report
and is better for large data requests and non-repeating requests.
Both commands use the same parameters.
Parameter | Description |
---|---|
-ReportType | The name of the report. |
-Version | The version of the report. |
-Start | The start date of the report request range in IS0-8601 format, YYYY-MM-DDTHH-MM-SSZ . |
-End | The end date of the report request range in IS0-8601 format, YYYY-MM-DDTHH-MM-SSZ . |
-Interval | The frequency with which to get the report. Values are MONTH , WEEK , DAY , HOUR , FIVE_MINUTES .Note: Not all reports supports all values. Check the output of |
-ObjectIds | A comma separated list of the objects you're looking for. Most reports use a value for CP codes or hostnames. For all object IDs for a given report, use a value of all . For the cacheable reports, you can also use the AllObjectIDs switch. |
# Get a cacheable report
$Report = Get-CacheableReport -ReportType todaytraffic-by-time -Version 1 -Start 2022-11-27T00:00:00Z -End 2022- 11-28T00:00:00Z -Interval HOUR -ObjectIds 12345
# Generate a report
$Report = Generate-Report -ReportType todaytraffic-by-time -Version 1 -Start 2022-11-27T00:00:00Z -End 2022-11-28T00:00:00Z -Interval HOUR -ObjectIds 12345
You can also supply a reports given
Metrics
orFilters
in your command.
Parsing 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
$Report
may not display all of the information contained within the variable. To see more information, pipe your results toFormat-List
orfl
.$Report | fl metadata : @{name=todaytraffic-by-time; version=1; outputType=FLAT; groupBy=System.Object[]; interval=HOUR; start=27/11/2022 00:00:00; end=28/11/2022 00:00:00; availableDataEnds=; suggestedRetryTime=; rowCount=24; filters=System.Object[]; columns=System.Object[]; objectType=cpcode; objectIds=System.Object[]} data : {@{startdatetime=27/11/2022 00:00:00; bytesOffload=N/A; edgeBitsPerSecond=N/A; edgeHitsPerSecond=N/A; hitsOffload=N/A; midgressBitsPerSecond=N/A; midgressHitsPerSecond=N/A; originBitsPerSecond=N/A; originHitsPerSecond=N/A}, @ {startdatetime=27/11/2022 01:00:00; bytesOffload=N/A; edgeBitsPerSecond=N/A; edgeHitsPerSecond=N/A; hitsOffload=N/A; midgressBitsPerSecond=N/A; midgressHitsPerSecond=N/A; originBitsPerSecond=N/A; originHitsPerSecond=N/A}, @{startdatetime=27/11/2022 02:00:00; bytesOffload=N/A; edgeBitsPerSecond=N/A; edgeHitsPerSecond=N/A; hitsOffload=N/A; midgressBitsPerSecond=N/A; midgressHitsPerSecond=N/A; originBitsPerSecond=N/A; originHitsPerSecond=N/A}, @{startdatetime=27/11/2022 03:00:00; bytesOffload=N/A; edgeBitsPerSecond=N/A; edgeHitsPerSecond=N/A; hitsOffload=N/A; midgressBitsPerSecond=N/A; midgressHitsPerSecond=N/A; originBitsPerSecond=N/A; originHitsPerSecond=N/A}…} summaryStatistics : @{bytesOffloadAvg=; bytesOffloadMax=; bytesOffloadMin=; bytesOffloadSlope=; edgeBitsPerSecondMax=; edgeBitsPerSecondMin=; edgeBytesSlope=; edgeBytesTotal=; edgeHitsPerSecondMax=; edgeHitsPerSecondMin=; edgeHitsSlope=; edgeHitsTotal=; hitsOffloadAvg=; hitsOffloadMax=; hitsOffloadMin=; hitsOffloadSlope=; midgressBitsPerSecondMax=; midgressBitsPerSecondMin=; midgressBytesSlope=; midgressBytesTotal=; midgressHitsPerSecondMax=; midgressHitsPerSecondMin=; midgressHitsSlope=; midgressHitsTotal=; originBitsPerSecondMax=; originBitsPerSecondMin=; originBytesSlope=; originBytesTotal=; originHitsPerSecondMax=; originHitsPerSecondMin=; originHitsSlope=; originHitsTotal=; hitsOffloadTotal=; bytesOffloadTotal=}
-
Export the results of your request to wherever you normally keep report data.
$Report.data | Export-CSV results.csv
Updated 24 days ago