istio.io/content/docs/reference/config/policy-and-telemetry/templates/analytics/index.html

196 lines
6.3 KiB
HTML

---
title: Analytics
description: The Analytics template is used to dispatch runtime telemetry to Apigee.
location: https://istio.io/docs/reference/config/policy-and-telemetry/templates/analytics.html
layout: partner-component
generator: protoc-gen-docs
number_of_entries: 1
---
<p>The <code>analytics</code> template represents a single request reported to Apigee&rsquo;s analytics processing system.
Complete Apigee documentation on the concepts and usage of this adapter is also available on the
<a href="https://docs.apigee.com/api-platform/istio-adapter/concepts">Apigee Adapter for Istio</a> site.
For more information and product support, please <a href="https://apigee.com/about/support/portal">contact Apigee support</a>.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: config.istio.io/v1alpha2
kind: analytics
metadata:
name: apigee
namespace: istio-system
spec:
api_key: request.api_key | request.headers[&quot;x-api-key&quot;] | &quot;&quot;
api_proxy: api.service | destination.service | &quot;&quot;
response_status_code: response.code | 0
client_ip: source.ip | ip(&quot;0.0.0.0&quot;)
request_verb: request.method | &quot;&quot;
request_uri: request.path | &quot;&quot;
request_path: request.path | &quot;&quot;
useragent: request.useragent | &quot;&quot;
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 | &quot;&quot;
</code></pre>
<h2 id="Template">Template</h2>
<section>
<p>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.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template-api_proxy">
<td><code>apiProxy</code></td>
<td><code>string</code></td>
<td>
<p>The name of the proxy (usually the Istio API or service name).</p>
</td>
</tr>
<tr id="Template-response_status_code">
<td><code>responseStatusCode</code></td>
<td><code>int64</code></td>
<td>
<p>HTTP response code</p>
</td>
</tr>
<tr id="Template-client_ip">
<td><code>clientIp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#IPAddress">istio.policy.v1beta1.IPAddress</a></code></td>
<td>
<p>Client IP address</p>
</td>
</tr>
<tr id="Template-request_verb">
<td><code>requestVerb</code></td>
<td><code>string</code></td>
<td>
<p>HTTP request verb</p>
</td>
</tr>
<tr id="Template-request_uri">
<td><code>requestUri</code></td>
<td><code>string</code></td>
<td>
<p>HTTP request URI</p>
</td>
</tr>
<tr id="Template-request_path">
<td><code>requestPath</code></td>
<td><code>string</code></td>
<td>
<p>HTTP request path</p>
</td>
</tr>
<tr id="Template-useragent">
<td><code>useragent</code></td>
<td><code>string</code></td>
<td>
<p>HTTP user agent header</p>
</td>
</tr>
<tr id="Template-client_received_start_timestamp">
<td><code>clientReceivedStartTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy started receiving the request.</p>
</td>
</tr>
<tr id="Template-client_received_end_timestamp">
<td><code>clientReceivedEndTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy finished receiving the request.</p>
</td>
</tr>
<tr id="Template-client_sent_start_timestamp">
<td><code>clientSentStartTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy started sending the request to the target.</p>
</td>
</tr>
<tr id="Template-client_sent_end_timestamp">
<td><code>clientSentEndTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy finished sending the request to the target.</p>
</td>
</tr>
<tr id="Template-target_sent_start_timestamp">
<td><code>targetSentStartTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy started request to target.</p>
</td>
</tr>
<tr id="Template-target_sent_end_timestamp">
<td><code>targetSentEndTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy finished sending request to target.</p>
</td>
</tr>
<tr id="Template-target_received_start_timestamp">
<td><code>targetReceivedStartTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy started receiving response from target.</p>
</td>
</tr>
<tr id="Template-target_received_end_timestamp">
<td><code>targetReceivedEndTimestamp</code></td>
<td><code><a href="/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1.html#TimeStamp">istio.policy.v1beta1.TimeStamp</a></code></td>
<td>
<p>Timestamp of when the api_proxy finished receiving response from target.</p>
</td>
</tr>
<tr id="Template-api_claims">
<td><code>apiClaims</code></td>
<td><code>map&lt;string,&nbsp;string&gt;</code></td>
<td>
<p>The JWT claims that were used for authenticating the request (if any)
Use subkey &ldquo;json_claims&rdquo; for passing all claims in as a single JSON field.</p>
</td>
</tr>
<tr id="Template-api_key">
<td><code>apiKey</code></td>
<td><code>string</code></td>
<td>
<p>The API KEY that was used for authenticating the request (if any)</p>
</td>
</tr>
</tbody>
</table>
</section>