This page applies to Apigeeand Apigee hybrid.
View Apigee Edge
documentation.
In addition to the usual API data collected by Apigee , you can also collect custom data using the DataCapture policy. There are two main steps required, as described in the following sections:
- Create a Data Collector REST resource .
- Specify the data you want to collect
using
the DataCapture policy's
<Collect>
element.
Create a Data Collector REST resource
To use the DataCapture
policy, you must first create a Data Collector
REST resource. To do so, send an API request like the following:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST -H "content-type:application/json" \ -d ' { "name": "dc_my_custom_data", "description": "Collects data for analysis.", "type": "STRING", }' \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/datacollectors"
This creates a resource named dc_my_custom_data
, which you can use with
the DataCapture
policy.
Specify the data to collect
You can specify the data to collect using the DataCapture policy's <Collect>
element. There are various ways to do this, as shown in the Examples
section in the DataCapure reference page. One way is to specify a flow variable
,
which stores data passed in API requests and responses. For example, you could collect data
that customers enter in a web page form using the flow
variable message.formparam. param_name
.values
,
where param_name
is the name of a parameter in the form. Suppose the form
has a parameter named payment_amount
. The corresponding flow variable would be message.formparam.payment_amount.values
.
The following code specifies this variable by the ref
attribute
of the <Collect>
element.
<DataCapture name="capturepayment"> <Capture> <DataCollector>dc_my_custom_data</DataCollector> <Collect ref="message.form_param.payment_amount.values" > </Capture> </DataCapture>
With this setting, the data entered in the form's payment_amount
field will be
collected by DataCapture and stored in a variable named dc_my_custom_data
.
Creating a custom report from data collected with DataCapture
Once you have set up data collection with the DataCapture policy, you can
use the data to create a custom report by the procedure described in Adding a custom report
.
To do so, when you select a metric for
the report, as shown in step 4 of the procedure
, choose the variable that has the same name as the Data Collector
REST resource you created for DataCapture—for example, dc_my_custom_data
.
You can also use the same variable as a dimension in a custom report. Since dimensions group data by the values of the variable, it is usually preferable for the variable to be a string that only takes on a limited number of values.