Analytics

This component was created and is maintained by an Istio partner. Please address support questions to the partner directly.

The analytics template represents a single request reported to Apigee’s analytics processing system. Complete Apigee documentation on the concepts and usage of this adapter is also available on the Apigee Adapter for Istio site. For more information and product support, please contact Apigee support.

Example config:

apiVersion: config.istio.io/v1alpha2
kind: analytics
metadata:
  name: apigee
  namespace: istio-system
spec:
  api_key: request.api_key | request.headers["x-api-key"] | ""
  api_proxy: api.service | destination.service | ""
  response_status_code: response.code | 0
  client_ip: source.ip | ip("0.0.0.0")
  request_verb: request.method | ""
  request_uri: request.path | ""
  request_path: request.path | ""
  useragent: request.useragent | ""
  client_received_start_timestamp: request.time
  client_received_end_timestamp: request.time
  target_sent_start_timestamp: request.time
  target_sent_end_timestamp: request.time
  target_received_start_timestamp: response.time
  target_received_end_timestamp: response.time
  client_sent_start_timestamp: response.time
  client_sent_end_timestamp: response.time
  api_claims: # from jwt
    json_claims: request.auth.raw_claims | ""

Template

This Template provides Istio telemetry data to the Apigee Analytics engine. For additional information on this adapter or support please contact anchor-prega-support@google.com.

Field Type Description
apiProxy string

The name of the proxy (usually the Istio API or service name).

responseStatusCode int64

HTTP response code

clientIp istio.policy.v1beta1.IPAddress

Client IP address

requestVerb string

HTTP request verb

requestUri string

HTTP request URI

requestPath string

HTTP request path

useragent string

HTTP user agent header

clientReceivedStartTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy started receiving the request.

clientReceivedEndTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy finished receiving the request.

clientSentStartTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy started sending the request to the target.

clientSentEndTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy finished sending the request to the target.

targetSentStartTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy started request to target.

targetSentEndTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy finished sending request to target.

targetReceivedStartTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy started receiving response from target.

targetReceivedEndTimestamp istio.policy.v1beta1.TimeStamp

Timestamp of when the api_proxy finished receiving response from target.

apiClaims map<string, string>

The JWT claims that were used for authenticating the request (if any) Use subkey “json_claims” for passing all claims in as a single JSON field.

apiKey string

The API KEY that was used for authenticating the request (if any)