As data passes through Apigee, it collects information about the traffic and stores it as measures and dimensions. By combining different measures and dimensions you can generate reports that show you the exact data that you want to see.
Measures are numeric representations of a set of activities that have occurred. For example:
- The message_count measure shows you the message count for the APIs.
- The is_error measure pinpoints the APIs that are causing issues with your servers.
- The total_response_time measure helps you see how your server is performing.
Dimensions are categories of information used to group data. You can view measures by dimension. For example message_count by client_id. Examples of measures include proxy, organization, client_id, and developer. 
Dimensions can be stacked to create drill-downs, meaning that you can select a top level dimension and then each successive dimension further refines the data to focus in on a smaller and smaller subset of data. You can select up to five dimensions - one for your top-level table segment, and four drill-down dimensions.
Tips for building reports
Before building your own custom report, there are a few questions to ask yourself.
- How should the data be presented in your reports?
- What kind of dimensions do you want to categorize the metrics into?
- Do you want your reports to display only metrics?
Once you have a general outline drawn, start playing around with the different dimension and metric pieces and create a test report so that you can see how the report looks once it's completed.
Out-of-the-box measures
By default, Apigee extracts data about the messages that flow through its gateway. These measures provide information about your traffic.
You can add these are the out-of-the-box measuresto your report:
| Measure | Description |
|---|---|
| target_response_time | The time taken to receive a response from the customer end point to the Apigee proxy for a request. |
| transaction_count | The total number of API requests (successful and unsuccessful) seen by the Apigee proxy |
| cache_hit | An API request that is serviced from the Apigee cache successfully (the request is not forwarded to the customer end point) |
| response_status_code | The status code returned as part of the response for an API request. Different status codes are used to signify response success and failure |
| message_count | The total number of API requests (and responses) that are seen by the Apigee proxy |
| request_size | The size of an API request as seen by the Apigee proxy measured in kilobytes |
| response_processing_latency | The time it takes to process a response for an API request at the Apigee proxy measured in milliseconds |
| response_size | The size of an API response as seen by the Apigee proxy measured in Kilobytes |
| request_processing_latency | The time it takes to process an API request at the Apigee proxy measured in milliseconds |
| total_response_time | The total time taken for an App to receive a response for an API request. This is the sum of the request processing latency of the Apigee proxy, request processing latency of the customer end point, response generation latency of the customer end point and the response processing latency of the Apigee proxy. It also includes the latency introduced by the network layer as the request can go through multiple networks (also the response) before it reaches its destination |
| is_error | A request is marked as "is_Error" when the request can not be serviced successfully. Such a request is recorded in the system with |
Adding a custom report
By adding custom reports, you can create a set of charts that provide insight into every aspect of your API program.
To add a custom report:
- In Apigee, click Analytics in the main menu.
- Click the + custom report button.
- Enter the name and description for your report.
- Click the Environment menu and choose the environment in your org from which you want data to be collected.
- Click the Primary Measure menu and choose the data you want to present in your report.

- Select a Function to a apply to your chart's measure.
If you want to see the raw data choose Count. Otherwise, choose how you want to calculate data to for the report. - Select a chart type.
- Select a Chart Refresh Interval for the report.
- Hourly will show data accurate up to the last hour
- Daily will show data accurate up to the last 24hr period
- Real Time will display data as it arrives. (Real Time is costly so it advised to use this option sparingly.)

- Choose your drilldown dimensions. Every dimension you add constrains the data set used to generate the reports.
In effect, you're presenting more and more specific data with each drilldown. - Click Save.