Monitoring API Analytics
Use analytics to monitor your API's performance.
API Platform Version: 8.1 and later
Table of Contents
- How can I keep informed about my API?
- What API monitoring information is available?
- How can I see a quick view of my API's performance?
- How do I monitor API performance?
- How do I monitor API usage logs?
- How do I narrow down metric information for my API's usage logs or licenses?
- How do I export usage data for apps consuming my API?
- What information is available for monitoring my API by license?
- How do I monitor my API's performance per license?
- How do I monitor my API's performance for a specific app/API contract?
- Why is some of my analytics information missing?
How can I keep informed about my API?
The platform offers the following features to help you keep informed about your API:
- API monitoring charts and graphs: A set of monitoring charts and graphs for viewing, and in some cases exporting, your API's activity, usage by various apps, and transaction details. For full details, see What API monitoring information is available?
- Dashboard notifications relating to the API. These are viewable via your personal Forum (see What is a Forum?), or via the API Forum (see How do I filter information in the API Forum?).
- API-related email notifications: for information about the notification categories, and how to turn on and off email notifications, see How do I enable or disable email notifications?
What API monitoring information is available?
The platform includes a number of charts and logs to help you monitor your API's performance from different views. Chart data can be used to monitor API usage over time or to troubleshoot errors with API operation. Usage logs that include request and response message data for API, App, and Contract activity can be queried and viewed. See How do I monitor API performance?
From your API Details page, click Analytics on the left menu to access the monitoring features.
The options available are summarized in the table below.
|This option...||Shows this information...|
For more information, see How can I see a quick view of my API's performance?
|Charts||Performance charts. See How do I monitor API performance?|
|Logs||Transaction logs. See How do I monitor API usage logs?|
Charts for licenses:
For more information, see How do I monitor my API's performance per license?
How can I see a quick view of my API's performance?
The API > Analytics > Overview section includes a barometer-style Dashboard that gives you an overview of your API's performance. For example, it shows API throughput, latency, and errors for messages in real time for Sandbox and Live implementations.
Statistics are calculated for all apps consuming your API, and for all operations that are part of your API. You can get statistics on a per-second or per-minute basis. The Analytics Dashboard displays statistics for the last 24 hours.
You can narrow down the data by the following:
- Implementation: Sandbox or Live
- Interval: Per Sec or Per Min
The API Analytics Dashboard controls scale based on the number of messages received and the time interval selected (sec or min). For example, if your app sent or received 50 messages in the last 5 seconds, the scale changes to 0-60.
The API Analytics Dashboard provides the following control types:
- Throughput: Provides statistics on the rate of successful message delivery.
- Latency: Provides statistics on the amount of time it takes to process a message from source to destination.
- Errors: Provides statistics on the number errors incurred during message delivery.
In the Overview section, you can view data for Usage By App, Usage By Operation, and API Standings; you can also export the data. See How do I export usage data for apps consuming my API?
How do I monitor API performance?
Performance charts are included in the My Apps > app > Analytics > Charts page. Chart data can be used to monitor API usage over time or to troubleshoot errors.
The Performance Chart functionality allows you to view performance in Live or Sandbox implementations, and provides monitoring for tracking service response time and transaction faults. Charts are populated by usage "roll-up" data that is gathered during the processing of web service request and response messages. Historic usage and performance data can be queried and viewed in the Usage Logs section. See How do I monitor API usage logs?
Performance Charts automatically scale the Y axis to show an appropriate range for the data shown. You can choose to scale to the average based on the selected interval (the default) or you can set your own scaling.
Note: Updating of chart performance statistics using Refresh is based on the selected Duration and Interval, which together represent the total time range displayed.
The following performance chart types are supported for APIs. All chart data is presented in milliseconds (ms).
|Min / Max / Avg Response Time||
Minimum, Maximum, and Average Response Times for transactions are depicted in a candlestick bar chart on the Y axis.
You can also hover over each time interval and view a Datapoint pop-up that displays the Date, Time, Average, Max, and Min Response time of the transaction for the selected time interval.
Faults are depicted in a single chart below the Min / Max / Avg Time chart.
Faults are depicted in a scatter chart. A red dot represents the number of faults associated with a specific time interval.
Successful transactions are depicted in a single chart below the Fault chart.
Successful transactions are depicted in a column chart. A vertical bar displays the number of transactions that have successfully processed for the selected response time range.
The Performance Chart includes a navigation control, located at the bottom of the chart, which allows you to navigate the Timeline based on the selected Duration and Time Interval. Throughput data can also be monitored on the timeline and is presented in a spline chart.
After you have defined a timeline, there are several ways to view additional chart detail. The Zoom feature allows you to view chart data by clicking on a pre-defined interval (1 hour, 3 hour, 6 hour, 12 hour, All). The Data Point Popup allows you to hover over a specific datapoint to view response data detail including Date, Time, Average, Max, and Min.
You can narrow down the information for the charts by setting the values listed below.
Graph Controls section of a Performance Chart provides options for configuring the chart content (a specific API or all APIs), data capture, and display intervals (Duration and Interval), as well as navigating and zooming the chart Timeline. Each chart displays data based on the currently approved environment (Sandbox or Live).
|Implementation||Sandbox or Live|
|Apps||Defaults to All Apps, but you can specific an app.|
A drop-down menu that allows you to select the time period to be shown on the chart. You can choose to show the last:
When you select a new duration, the Performance Chart data is automatically refreshed.
|Interval||A drop-down menu that allows you to select the interval for which the Performance Chart Timeline will present the data. Options adjust based on selected Duration. For example, if Duration is 5 minutes, Interval is 5 sec. If Duration is 1 year, Interval is 1 week.|
|Zoom||A button control that allows you to view chart data in pre-defined intervals of All, 1 hour, 3 hours, 6 hours, or 12 hours.
To reset the chart display to the current time based on the selected Duration and Interval, click All.
|Refresh||A button that updates the chart data to the current time.|
|A button that allows you to print the current chart by loading the chart in the browser and using the browser's Print feature.|
How do I monitor API usage logs?
API information includes an Analytics section that provides options for filtering and viewing usage logs associated with API activity:
- Usage information can be filtered by the following intervals: All, 5 minute, 1 hour, 1 day, or custom date range intervals (including HH:MM:SS).
- You can view details of a specific Usage Log record by clicking the Sent field in the search results.
- You can view the values of each Usage Log record. This can be useful for performing a quick review of message activity associated with a specific transaction.
To generate a usage log report for an API:
- Choose My APIs > specific API > Analytics > Logs. The page is organized as follows:
Field Name Description Implementation Sandbox or Live Interval
A drop-down menu that allows you to select a time period for gathering report data. Options:
- 1 hour
- 1 day
- 1 week
- 1 month
- 1 year
- Custom (specify From/To for the custom time period, down to hours, minutes, and seconds)
Apps By default, the log shows results for all apps that are connected to your API. If needed you can choose a specific app.
- Enter your filter criteria and click Refresh to generate the usage log report, which includes the following information:
Field Name Description Sent The request date and request time (in milliseconds) when the request was received, with a link to a Usage Log Details report for the selected log record. API The API associated with the request, with a link to the API Overview page of the selected API. Method The method associated with the request. Result The transaction result error code (successful, with errors, and so forth).
To view usage log details for an API:
- In the Usage Log Report, choose a log record for which you want to view the details and then click the Sent field. The Usage Log Details display for the selected log record.
- Review the log information. For more information, refer to the tables below.
- If you want to go to the details page for a specific app, click the app name.
For additional details about the log record, see the tables below.
Usage Log Details (Transport Header)
|API||The name of the API the message is associated with.|
|Method||The name of the method (operation) the message is associated with.|
|URL||The URL for the operation.|
|Client Host||The hostname of the client that made the request.|
|Time Sent||The date and time (in milliseconds) when the request was made.|
|Time Taken||The date and time (in milliseconds) when the request is made.|
|Status Code||The HTTP response status code.|
|Message Content||Request and response message content.|
Usage Log Details (Transport Headers for Request Message)
|Request Method||The HTTP verb for the message; generally POST, GET, PUT, or DELETE.|
|Accept-Encoding||The compression schema used for encoding data.|
|Authorization||Authentication credentials for HTTP authentication.|
|Content-Type||The media type for the request message.|
|User Agent||The user-agent for the message; for example, the browser type.|
|Host||The domain name of the server.|
|Message||The request message body.|
Usage Log Details (Transport Headers for Response Message)
|Date||The date and time that the message was sent.|
|Content-Type||The media type for response message.|
|Cache-Control||Tells all caching mechanisms from server to client whether caching is allowed for the message. Measured in seconds.|
|Expires||Displays the date/time after which the response is considered out-of-date.|
|Transfer-Encoding||The form of encoding used for the message (for example, deflate or gzip).|
|Message||The response message body.|
How do I narrow down metric information for my API's usage logs or licenses?
If you have a lot of transactions, you can use the Custom date range option to narrow down the time period. Custom date range includes hours, minutes, and seconds, so you can narrow down your logs or license charts to a range of seconds, to help you zero in on specific transactions.
Note: If you use the Custom date range, the platform uses the time values from your local browser settings, converted to UTC time.
To narrow down metric information
- From the API Details page, choose Analytics and then choose Logs or Licenses.
- Choose the environment.
- Click the Interval drop-down and choose Custom, as shown below.
- Define start and end date/time, as shown below.
- Adjust the date range as needed until you have the transaction range you need.
- If needed, click Export to export the transactions to a ZIP file.
How do I export usage data for apps consuming my API?
The monitoring process captures usage data for apps consuming the current API. The Usage By App section includes an Export function that allows you to export usage data to a .csv file. You can open the .csv file in a selected application or download it. The data exported is based on statistics gathered for the current 24-hour period.
Note: The export file is limited to a maximum of 10,000 records.
To export usage data for apps that are using an API
- Choose My APIs > specific API > Analytics > Logs.
- If applicable, change the default settings to narrow down the information you want to export. You can modify Implementation, Duration, and All Apps/specific app, as shown below.
- On the right, click Export. The Opening apilogs.csv dialog box displays.
- Choose whether to open or save the file:
- To open, choose Excel or specify another program, and then click OK.
- To save, click OK and specify the download location. The filename defaults to apilogs.csv.
Note: You can also export chart info. Go to Analytics > Charts, specify criteria, and click Export.
What information is available for monitoring my API by license?
If your API is using the Licenses feature, you might want to monitor the API's performance for each license.
The platform includes a set of monitoring tools, including pie charts and bar charts, to help you monitor by license.
Three choices are available:
- API Usage by License
- API Usage by App
- API Quota Usage
From the API Details page, click Analytics on the left menu, and then click Licenses.
There are certain prerequisites that must be in place for monitoring information to be displayed correctly. Make sure:
- Your API is using the Licenses feature.
- Your licenses include a quota policy.
- Your timezone is set correctly in the configuration settings for the underlying infrastructure (configuration settings, com.soa.rollup.configuration, monitoring.rollup.configuration.dailyRollupTimeZones setting). The timezone setting affects the way the data is rolled up into increments such as hour and day. If the settings are not correct, ask your Site Admin to adjust the timezone.
The options available are summarized in the table below.
|This option...||Shows this information...|
|API Usage by License||
Pie charts that breaks down the total traffic to the API by license. This shows which license is using which portion of the API, out of the total traffic. Pie charts show the breakdown for the following metrics:
By default, three charts are generated for each license.
|API Usage by App||
Bar charts that break down the total traffic to the API by app. This shows metrics for the app's usage of the API, including:
By default, three charts are generated for each app.
|API Quota Usage||Only valid if a quota policy is attached to a license the API is using. This chart shows app consumption of the API as a bar chart, with each time slot being a bar, and additionally displays the quota threshold as a line across the chart. If the app exceeds the consumption defined by the quota, the bar is shown in red; if the app consumption is within quota, the bar is blue.|
Analytics by License: Graph Controls
When you choose Analytics > Licenses, you can adjust the chart settings so that you see the exact information you need. Settings and their values are shown below.
|Implementation||Sandbox or Live|
A drop-down menu that allows you to select the time period to be shown in the chart. When you select a new duration, the Performance Chart data is automatically refreshed. Choices:
|Apps||Defaults to All Apps, but you can choose a specific app.|
|Licenses||Defaults to All Licenses, but you can choose a specific license.|
How do I monitor my API's performance per license?
The API monitoring feature allows you to review your API's activity with any apps that are using it, specific to any licenses offered for API usage.
To monitor API performance for a specific license:
- Log in and go to your API Details page.
- Click Analytics > Licenses.
- Choose values as needed. For details on the options available, refer to Analytics by License: Graph Controls above.
How do I monitor my API's performance for a specific app/API contract?
You can view monitoring charts and logs for any specific contract your API has with an app, as long as monitoring is turned on for your API.
Note: If the specified time period includes a point where the contract was revised, or suspended and resumed, or the contract was cancelled and a new one created, the chart or graph shows all transaction info between the app and the API in the selected time period. However, only in the case where the contract was revised, there is uninterrupted service. In other scenarios, service is suspended or stopped and is then resumed or restarted, with a period in between where the contract is not active.
To monitor API performance for a specific contract:
- Log in and go to the API Details page for your API.
- On the left menu, click Analytics.
- Choose one of the following options, to view contract information in different ways:
- Overview: Choose the environment. Here, in the Usage by App pie chart, you can see what portion of your API's total traffic is generated by a specific app.
- Charts: Choose the environment and the app, and other values as needed. Here, you can view transaction volume, success/fault, and how the traffic measures against min/max average transaction time, if specified. You can also export the chart information.
- Logs: Choose the environment and the app, and date range if needed. Here, you can view specific transaction logs. You can also export the log information.
- Licenses: Choose the environment and the app, and other values as needed. Choose API Usage by App.
Why is some of my analytics information missing?
The storing of analytic information for app/API usage is controlled by the policies that are attached to the API. For example:
- If you don't attach the AtmosphereApplicationSecurityPolicy policy to the API, calls to the API endpoint are logged, but there are no records of the app/API interactions, such as the API > Analytics > Overview > Usage by App chart or, for app developers, the App > Analytics > Overview > Usage by API chart.
- If you don't attached the Detailed Auditing policy to the API, calls to the API endpoint show up in the Overview and Charts section but do not appear in the logs.