mirror of https://github.com/istio/istio.io.git
First pass generating docs from istio/api and istio/mixer (#500)
* First pass generating docs from istio/api and istio/mixer. Put them in a staging area so we can migrate into their final location incrementally. * regenerate everything, add in egress
This commit is contained in:
parent
391388294c
commit
8c5fdb055d
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: denier Config
|
||||
overview: Generated documentation for Mixer's denier Adapter Configuration Schema
|
||||
|
||||
order: 0
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.denier.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.denier.config.Params)
|
||||
(message)
|
||||
|
||||
<a name="adapter.denier.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.denier.config.Params.status"></a>
|
||||
<tr>
|
||||
<td><code>status</code></td>
|
||||
<td><a href="/docs/reference/api/status.html">Status</a></td>
|
||||
<td>The error to return when denying a request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: Mixer Adapters
|
||||
overview: Generated documentation for Mixer's adapters.
|
||||
|
||||
order: 2000
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
{% include section-index.html %}
|
||||
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
---
|
||||
title: kubernetes Config
|
||||
overview: Generated documentation for Mixer's kubernetes Adapter Configuration Schema
|
||||
|
||||
order: 10
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.kubernetes.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.kubernetes.config.Params)
|
||||
(message)
|
||||
|
||||
<a name="adapter.kubernetes.config.Params"></a>
|
||||
### Params
|
||||
Configuration parameters for the kubernetes adapter. These params
|
||||
control the manner in which the kubernetes adapter discovers and
|
||||
generates values related to pod information.
|
||||
|
||||
The adapter works by looking up pod information by UIDs (of the
|
||||
form: "kubernetes://pod.namespace"). It expects that the UIDs will be
|
||||
supplied in an input map for three distinct traffic classes (source,
|
||||
destination, and origin).
|
||||
|
||||
For all valid UIDs supplied, this adapter generates a map of output
|
||||
values containing information about the related pods. The generated map
|
||||
is keyed by value names generated by concatenating a pod identifier
|
||||
prefix with a value name. For example, for the pod corresponding to a
|
||||
sourceUID and the output value of pod ip, this adapter will output a map
|
||||
that includes a key of "sourcePodIP" (assuming parameter defaults).
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.kubeconfigPath"></a>
|
||||
<tr>
|
||||
<td><code>kubeconfigPath</code></td>
|
||||
<td>string</td>
|
||||
<td><p>File path to discover kubeconfig. For in-cluster configuration, this should be left unset. For local configuration, this should be set to the path of a kubeconfig file that can be used to reach a kubernetes API server.</p><p>NOTE: The kubernetes adapter will use the value of the env var KUBECONFIG in the case where it is set (overriding any value configured through this proto).</p><p>Default: "" (unset)</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.cacheRefreshDuration"></a>
|
||||
<tr>
|
||||
<td><code>cacheRefreshDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td><p>Controls the resync period of the kubernetes cluster info cache. The cache will watch for events and every so often completely resync. This controls how frequently the complete resync occurs.</p><p>Default: 5 minutes</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.sourceUidInputName"></a>
|
||||
<tr>
|
||||
<td><code>sourceUidInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the UID for the source pod for traffic is identified in the input map.</p><p>Default: sourceUID</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.destinationUidInputName"></a>
|
||||
<tr>
|
||||
<td><code>destinationUidInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the UID for the destination pod for traffic is identified in the input map.</p><p>Default: destinationUID</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.originUidInputName"></a>
|
||||
<tr>
|
||||
<td><code>originUidInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the UID for the origin pod for traffic is identified in the input map.</p><p>Default: originUID</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.sourceIpInputName"></a>
|
||||
<tr>
|
||||
<td><code>sourceIpInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the IP for the source pod for traffic is identified in the input map.</p><p>Default: sourceIP</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.destinationIpInputName"></a>
|
||||
<tr>
|
||||
<td><code>destinationIpInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the IP for the destination pod for traffic is identified in the input map.</p><p>Default: destinationIP</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.originIpInputName"></a>
|
||||
<tr>
|
||||
<td><code>originIpInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the IP for the origin pod for traffic is identified in the input map.</p><p>Default: originIP</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.clusterDomainName"></a>
|
||||
<tr>
|
||||
<td><code>clusterDomainName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures the cluster domain name to use for service name normalization.</p><p>Default: svc.cluster.local</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.podLabelForService"></a>
|
||||
<tr>
|
||||
<td><code>podLabelForService</code></td>
|
||||
<td>string</td>
|
||||
<td><p>In order to extract the service associated with a source, destination, or origin, this adapter relies on pod labels. In particular, it looks for the value of a specific label, as specified by this parameter.</p><p>Default: app</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.podLabelForIstioComponentService"></a>
|
||||
<tr>
|
||||
<td><code>podLabelForIstioComponentService</code></td>
|
||||
<td>string</td>
|
||||
<td><p>In order to extract the service associated with a source, destination, or origin, this adapter relies on pod labels. In particular, it looks for the value of a specific label for istio component services, as specified by this parameter.</p><p>Default: istio</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.sourcePrefix"></a>
|
||||
<tr>
|
||||
<td><code>sourcePrefix</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The prefix used for source pod output value names.</p><p>Default: source</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.destinationPrefix"></a>
|
||||
<tr>
|
||||
<td><code>destinationPrefix</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The prefix used for destination pod output value names.</p><p>Default: destination</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.originPrefix"></a>
|
||||
<tr>
|
||||
<td><code>originPrefix</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The prefix used for origin pod output value names.</p><p>Default: origin</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.labelsValueName"></a>
|
||||
<tr>
|
||||
<td><code>labelsValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod labels output value.</p><p>Default: Labels</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.podNameValueName"></a>
|
||||
<tr>
|
||||
<td><code>podNameValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod name output value.</p><p>Default: PodName</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.podIpValueName"></a>
|
||||
<tr>
|
||||
<td><code>podIpValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod ip address output value.</p><p>Default: PodIP</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.hostIpValueName"></a>
|
||||
<tr>
|
||||
<td><code>hostIpValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod host ip address output value.</p><p>Default: HostIP</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.namespaceValueName"></a>
|
||||
<tr>
|
||||
<td><code>namespaceValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod namespace output value.</p><p>Default: Namespace</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.serviceAccountValueName"></a>
|
||||
<tr>
|
||||
<td><code>serviceAccountValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the pod service account name output value.</p><p>Default: ServiceAccountName</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.config.Params.serviceValueName"></a>
|
||||
<tr>
|
||||
<td><code>serviceValueName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The value name for the service output value.</p><p>Default: Service</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
---
|
||||
title: list Config
|
||||
overview: Generated documentation for Mixer's list Adapter Configuration Schema
|
||||
|
||||
order: 20
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.list.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.list.config.Params)
|
||||
(message)
|
||||
* [Params.ListEntryType](#adapter.list.config.Params.ListEntryType)
|
||||
(enum)
|
||||
|
||||
<a name="adapter.list.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.providerUrl"></a>
|
||||
<tr>
|
||||
<td><code>providerUrl</code></td>
|
||||
<td>string</td>
|
||||
<td>Where to find the list to check against. This may be ommited for a completely local list.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.refreshInterval"></a>
|
||||
<tr>
|
||||
<td><code>refreshInterval</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Determines how often the provider is polled for an updated list</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.ttl"></a>
|
||||
<tr>
|
||||
<td><code>ttl</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Indicates how long to keep a list before discarding it. Typically, the TTL value should be set to noticeably longer (> 2x) than the refresh interval to ensure continued operation in the face of transient server outages.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.cachingInterval"></a>
|
||||
<tr>
|
||||
<td><code>cachingInterval</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Indicates the amount of time a caller of this adapter can cache an answer before it should ask the adapter again.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.cachingUseCount"></a>
|
||||
<tr>
|
||||
<td><code>cachingUseCount</code></td>
|
||||
<td>int32</td>
|
||||
<td>Indicates the number of times a caller of this adapter can use a cached answer before it should ask the adapter again.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.overrides"></a>
|
||||
<tr>
|
||||
<td><code>overrides[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>List entries that are consulted first, before the list from the server</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.entryType"></a>
|
||||
<tr>
|
||||
<td><code>entryType</code></td>
|
||||
<td><a href="#adapter.list.config.Params.ListEntryType">ListEntryType</a></td>
|
||||
<td>Determines the kind of list entry and overrides.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.blacklist"></a>
|
||||
<tr>
|
||||
<td><code>blacklist</code></td>
|
||||
<td>bool</td>
|
||||
<td>Whether the list operates as a blacklist or a whitelist.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.list.config.Params.ListEntryType"></a>
|
||||
### ListEntryType
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.ListEntryType.STRINGS"></a>
|
||||
<tr>
|
||||
<td>STRINGS</td>
|
||||
<td>List entries are treated as plain strings.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.ListEntryType.CASEINSENSITIVESTRINGS"></a>
|
||||
<tr>
|
||||
<td>CASEINSENSITIVESTRINGS</td>
|
||||
<td>List entries are treated as case-insensitive strings.</td>
|
||||
</tr>
|
||||
<a name="adapter.list.config.Params.ListEntryType.IPADDRESSES"></a>
|
||||
<tr>
|
||||
<td>IPADDRESSES</td>
|
||||
<td>List entries are treated as IP addresses and ranges.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
---
|
||||
title: memquota Config
|
||||
overview: Generated documentation for Mixer's memquota Adapter Configuration Schema
|
||||
|
||||
order: 30
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.memquota.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.memquota.config.Params)
|
||||
(message)
|
||||
* [Params.Override](#adapter.memquota.config.Params.Override)
|
||||
(message)
|
||||
* [Params.Quota](#adapter.memquota.config.Params.Quota)
|
||||
(message)
|
||||
|
||||
<a name="adapter.memquota.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.quotas"></a>
|
||||
<tr>
|
||||
<td><code>quotas[]</code></td>
|
||||
<td>repeated <a href="#adapter.memquota.config.Params.Quota">Quota</a></td>
|
||||
<td>The set of known quotas.</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.minDeduplicationDuration"></a>
|
||||
<tr>
|
||||
<td><code>minDeduplicationDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Minimum number of seconds that deduplication is possible for a given operation.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.memquota.config.Params.Override"></a>
|
||||
### Override
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Override.dimensions"></a>
|
||||
<tr>
|
||||
<td><code>dimensions</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>The specific dimensions for which this override applies. String representation of instance dimensions is used to check against configured dimensions.</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Override.maxAmount"></a>
|
||||
<tr>
|
||||
<td><code>maxAmount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The upper limit for this quota.</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Override.validDuration"></a>
|
||||
<tr>
|
||||
<td><code>validDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The amount of time allocated quota remains valid before it is automatically released. This is only meaningful for rate limit quotas, otherwise the value must be zero.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.memquota.config.Params.Quota"></a>
|
||||
### Quota
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Quota.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>The name of the quota</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Quota.maxAmount"></a>
|
||||
<tr>
|
||||
<td><code>maxAmount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The upper limit for this quota.</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Quota.validDuration"></a>
|
||||
<tr>
|
||||
<td><code>validDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The amount of time allocated quota remains valid before it is automatically released. This is only meaningful for rate limit quotas, otherwise the value must be zero.</td>
|
||||
</tr>
|
||||
<a name="adapter.memquota.config.Params.Quota.overrides"></a>
|
||||
<tr>
|
||||
<td><code>overrides[]</code></td>
|
||||
<td>repeated <a href="#adapter.memquota.config.Params.Override">Override</a></td>
|
||||
<td>Overrides associated with this quota. The first matching override is applied.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,263 @@
|
|||
---
|
||||
title: prometheus Config
|
||||
overview: Generated documentation for Mixer's prometheus Adapter Configuration Schema
|
||||
|
||||
order: 40
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.prometheus.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.prometheus.config.Params)
|
||||
(message)
|
||||
* [Params.MetricInfo](#adapter.prometheus.config.Params.MetricInfo)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Explicit](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Exponential](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Linear](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear)
|
||||
(message)
|
||||
* [Params.MetricInfo.Kind](#adapter.prometheus.config.Params.MetricInfo.Kind)
|
||||
(enum)
|
||||
|
||||
<a name="adapter.prometheus.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.metrics"></a>
|
||||
<tr>
|
||||
<td><code>metrics[]</code></td>
|
||||
<td>repeated <a href="#adapter.prometheus.config.Params.MetricInfo">MetricInfo</a></td>
|
||||
<td>The set of metrics to represent in Prometheus. If a metric is defined in Istio but doesn't have a corresponding shape here, it will not be populated at runtime.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo"></a>
|
||||
### MetricInfo
|
||||
Describes how a metric should be represented in Prometheus.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Recommended. The name is used to register the prometheus metric. It must be unique across all prometheus metrics as prometheus does not allow duplicate names. If name is not specified a sanitized version of instanceName is used.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.instanceName"></a>
|
||||
<tr>
|
||||
<td><code>instanceName</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name is the fully qualified name of the Istio metric instance that this MetricInfo processes.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A human readable description of this metric.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.kind"></a>
|
||||
<tr>
|
||||
<td><code>kind</code></td>
|
||||
<td><a href="#adapter.prometheus.config.Params.MetricInfo.Kind">Kind</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.buckets"></a>
|
||||
<tr>
|
||||
<td><code>buckets</code></td>
|
||||
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition">BucketsDefinition</a></td>
|
||||
<td>For metrics with a metric kind of DISTRIBUTION, this provides a mechanism for configuring the buckets that will be used to store the aggregated values. This field must be provided for metrics declared to be of type DISTRIBUTION. This field will be ignored for non-distribution metric kinds.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.labelNames"></a>
|
||||
<tr>
|
||||
<td><code>labelNames[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>The names of labels to use: these need to match the dimensions of the Istio metric.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition"></a>
|
||||
### BucketsDefinition
|
||||
Describes buckets for DISTRIBUTION kind metrics.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.linearBuckets"></a>
|
||||
<tr>
|
||||
<td><code>linearBuckets</code></td>
|
||||
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear">Linear</a> (oneof )</td>
|
||||
<td>The linear buckets.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.exponentialBuckets"></a>
|
||||
<tr>
|
||||
<td><code>exponentialBuckets</code></td>
|
||||
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential">Exponential</a> (oneof )</td>
|
||||
<td>The exponential buckets.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.explicitBuckets"></a>
|
||||
<tr>
|
||||
<td><code>explicitBuckets</code></td>
|
||||
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit">Explicit</a> (oneof )</td>
|
||||
<td>The explicit buckets.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit"></a>
|
||||
### Explicit
|
||||
Specifies a set of buckets with arbitrary widths.
|
||||
|
||||
There are `size(bounds) + 1` (= `N`) buckets. Bucket `i` has the following
|
||||
boundaries:
|
||||
|
||||
* Upper bound (`0 <= i < N-1`): `bounds[i]`
|
||||
* Lower bound (`1 <= i < N`): `bounds[i - 1]`
|
||||
|
||||
The `bounds` field must contain at least one element. If `bounds` has
|
||||
only one element, then there are no finite buckets, and that single
|
||||
element is the common boundary of the overflow and underflow buckets.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit.bounds"></a>
|
||||
<tr>
|
||||
<td><code>bounds[]</code></td>
|
||||
<td>repeated double</td>
|
||||
<td>The values must be monotonically increasing.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential"></a>
|
||||
### Exponential
|
||||
Specifies an exponential sequence of buckets that have a width that is
|
||||
proportional to the value of the lower bound. Each bucket represents a
|
||||
constant relative uncertainty on a specific value in the bucket.
|
||||
|
||||
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
|
||||
buckets are the underflow and overflow buckets.
|
||||
|
||||
Bucket `i` has the following boundaries:
|
||||
|
||||
* Upper bound (0 <= i < N-1): `scale * (growthFactor ^ i)`
|
||||
* Lower bound (1 <= i < N): `scale * (growthFactor ^ (i - 1))`
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.growthFactor"></a>
|
||||
<tr>
|
||||
<td><code>growthFactor</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 1.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.scale"></a>
|
||||
<tr>
|
||||
<td><code>scale</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear"></a>
|
||||
### Linear
|
||||
Specifies a linear sequence of buckets that all have the same width
|
||||
(except overflow and underflow). Each bucket represents a constant
|
||||
absolute uncertainty on the specific value in the bucket.
|
||||
|
||||
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
|
||||
buckets are the underflow and overflow buckets.
|
||||
|
||||
Bucket `i` has the following boundaries:
|
||||
|
||||
* Upper bound (`0 <= i < N-1`): `offset + (width * i)`
|
||||
* Lower bound (`1 <= i < N`): `offset + (width * (i - 1))`
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.width"></a>
|
||||
<tr>
|
||||
<td><code>width</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.offset"></a>
|
||||
<tr>
|
||||
<td><code>offset</code></td>
|
||||
<td>double</td>
|
||||
<td>Lower bound of the first bucket.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.Kind"></a>
|
||||
### Kind
|
||||
Describes what kind of metric this is.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.UNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>UNSPECIFIED</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.GAUGE"></a>
|
||||
<tr>
|
||||
<td>GAUGE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.COUNTER"></a>
|
||||
<tr>
|
||||
<td>COUNTER</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.DISTRIBUTION"></a>
|
||||
<tr>
|
||||
<td>DISTRIBUTION</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,437 @@
|
|||
---
|
||||
title: stackdriver Config
|
||||
overview: Generated documentation for Mixer's stackdriver Adapter Configuration Schema
|
||||
|
||||
order: 50
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.stackdriver.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.stackdriver.config.Params)
|
||||
(message)
|
||||
* [Params.LogInfo](#adapter.stackdriver.config.Params.LogInfo)
|
||||
(message)
|
||||
* [Params.LogInfo.HttpRequestMapping](#adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping)
|
||||
(message)
|
||||
* [Params.MetricInfo](#adapter.stackdriver.config.Params.MetricInfo)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Explicit](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Exponential](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential)
|
||||
(message)
|
||||
* [Params.MetricInfo.BucketsDefinition.Linear](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear)
|
||||
(message)
|
||||
|
||||
<a name="adapter.stackdriver.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.endpoint"></a>
|
||||
<tr>
|
||||
<td><code>endpoint</code></td>
|
||||
<td>string</td>
|
||||
<td>Endpoint URL to send stackdriver data - leave empty to use the StackDriver SDK's default value (monitoring.googleapis.com).</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.projectId"></a>
|
||||
<tr>
|
||||
<td><code>projectId</code></td>
|
||||
<td>string</td>
|
||||
<td>GCP Project to attach metrics to.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.pushInterval"></a>
|
||||
<tr>
|
||||
<td><code>pushInterval</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>This adapter batches the data it sends to Stackdriver; we will push to stackdriver every pushInterval. If no value is provided we default to once per minute.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.metricInfo"></a>
|
||||
<tr>
|
||||
<td><code>metricInfo</code></td>
|
||||
<td>repeated map<string, <a href="#adapter.stackdriver.config.Params.MetricInfo">MetricInfo</a>></td>
|
||||
<td>A map of Istio metric name to Stackdriver metric info.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.logInfo"></a>
|
||||
<tr>
|
||||
<td><code>logInfo</code></td>
|
||||
<td>repeated map<string, <a href="#adapter.stackdriver.config.Params.LogInfo">LogInfo</a>></td>
|
||||
<td>A map of Istio LogEntry name to Stackdriver log info.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.appCredentials"></a>
|
||||
<tr>
|
||||
<td><code>appCredentials</code></td>
|
||||
<td>bool (oneof )</td>
|
||||
<td><p>Use Google's Application Default Credentials to authorize calls made by the StackDriver SDK.</p><p><a href="https://developers.google.com/identity/protocols/application-default-credentials">See Google's documentation</a>.</p></td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.apiKey"></a>
|
||||
<tr>
|
||||
<td><code>apiKey</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>The API Key to be used for auth.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.serviceAccountPath"></a>
|
||||
<tr>
|
||||
<td><code>serviceAccountPath</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>The path to a Google service account credential file, relative to the Mixer. E.g. <code>/etc/opt/mixer/gcp-serviceaccount-creds.json</code> or <code>./testdata/my-test-account-creds.json</code>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo"></a>
|
||||
### LogInfo
|
||||
Describes how to represent an Istio Log in Stackdriver.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.labelNames"></a>
|
||||
<tr>
|
||||
<td><code>labelNames[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>The logging template provides a set of variables; these list the subset of variables that should be used to form Stackdriver labels for the log entry.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.payloadTemplate"></a>
|
||||
<tr>
|
||||
<td><code>payloadTemplate</code></td>
|
||||
<td>string</td>
|
||||
<td>A golang text/template template that will be executed to construct the payload for this log entry. It will be given the full set of variables for the log to use to construct its result.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.httpMapping"></a>
|
||||
<tr>
|
||||
<td><code>httpMapping</code></td>
|
||||
<td><a href="#adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping">HttpRequestMapping</a></td>
|
||||
<td>If an HttpRequestMapping is provided, a HttpRequest object will be filled out for this log entry using the variables named in the mapping to populate the fields of the request struct from the instance's variables.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping"></a>
|
||||
### HttpRequestMapping
|
||||
Maps from template variable names to the various fields of Stackdriver's HTTP request struct.
|
||||
See https://godoc.org/cloud.google.com/go/logging#HTTPRequest
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.status"></a>
|
||||
<tr>
|
||||
<td><code>status</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.Status</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.requestSize"></a>
|
||||
<tr>
|
||||
<td><code>requestSize</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.RequestSize</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.responseSize"></a>
|
||||
<tr>
|
||||
<td><code>responseSize</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.ResponseSize</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.latency"></a>
|
||||
<tr>
|
||||
<td><code>latency</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.Latency</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.localIp"></a>
|
||||
<tr>
|
||||
<td><code>localIp</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.LocalIP</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.remoteIp"></a>
|
||||
<tr>
|
||||
<td><code>remoteIp</code></td>
|
||||
<td>string</td>
|
||||
<td>template variable name to map into HTTPRequest.RemoteIP</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo"></a>
|
||||
### MetricInfo
|
||||
Describes how to represent an Istio metric in Stackdriver.
|
||||
See https://github.com/googleapis/googleapis/blob/master/google/api/metric.proto
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.kind"></a>
|
||||
<tr>
|
||||
<td><code>kind</code></td>
|
||||
<td><a href="#google.api.MetricDescriptor.MetricKind">MetricKind</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td><a href="#google.api.MetricDescriptor.ValueType">ValueType</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.buckets"></a>
|
||||
<tr>
|
||||
<td><code>buckets</code></td>
|
||||
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition">BucketsDefinition</a></td>
|
||||
<td>For metrics with a metric value of DISTRIBUTION, this provides a mechanism for configuring the buckets that will be used to store the aggregated values. This field must be provided for metrics declared to be of type DISTRIBUTION. This field will be ignored for non-distribution metric kinds.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition"></a>
|
||||
### BucketsDefinition
|
||||
Describes buckets for DISTRIBUTION valued metrics.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.linearBuckets"></a>
|
||||
<tr>
|
||||
<td><code>linearBuckets</code></td>
|
||||
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear">Linear</a> (oneof )</td>
|
||||
<td>The linear buckets.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.exponentialBuckets"></a>
|
||||
<tr>
|
||||
<td><code>exponentialBuckets</code></td>
|
||||
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential">Exponential</a> (oneof )</td>
|
||||
<td>The exponential buckets.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.explicitBuckets"></a>
|
||||
<tr>
|
||||
<td><code>explicitBuckets</code></td>
|
||||
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit">Explicit</a> (oneof )</td>
|
||||
<td>The explicit buckets.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit"></a>
|
||||
### Explicit
|
||||
Specifies a set of buckets with arbitrary widths.
|
||||
|
||||
There are `size(bounds) + 1` (= `N`) buckets. Bucket `i` has the following
|
||||
boundaries:
|
||||
|
||||
* Upper bound (`0 <= i < N-1`): `bounds[i]`
|
||||
* Lower bound (`1 <= i < N`): `bounds[i - 1]`
|
||||
|
||||
The `bounds` field must contain at least one element. If `bounds` has
|
||||
only one element, then there are no finite buckets, and that single
|
||||
element is the common boundary of the overflow and underflow buckets.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit.bounds"></a>
|
||||
<tr>
|
||||
<td><code>bounds[]</code></td>
|
||||
<td>repeated double</td>
|
||||
<td>The values must be monotonically increasing.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential"></a>
|
||||
### Exponential
|
||||
Specifies an exponential sequence of buckets that have a width that is
|
||||
proportional to the value of the lower bound. Each bucket represents a
|
||||
constant relative uncertainty on a specific value in the bucket.
|
||||
|
||||
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
|
||||
buckets are the underflow and overflow buckets.
|
||||
|
||||
Bucket `i` has the following boundaries:
|
||||
|
||||
* Upper bound (0 <= i < N-1): `scale * (growthFactor ^ i)`
|
||||
* Lower bound (1 <= i < N): `scale * (growthFactor ^ (i - 1))`
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.growthFactor"></a>
|
||||
<tr>
|
||||
<td><code>growthFactor</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 1.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.scale"></a>
|
||||
<tr>
|
||||
<td><code>scale</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear"></a>
|
||||
### Linear
|
||||
Specifies a linear sequence of buckets that all have the same width
|
||||
(except overflow and underflow). Each bucket represents a constant
|
||||
absolute uncertainty on the specific value in the bucket.
|
||||
|
||||
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
|
||||
buckets are the underflow and overflow buckets.
|
||||
|
||||
Bucket `i` has the following boundaries:
|
||||
|
||||
* Upper bound (`0 <= i < N-1`): `offset + (width * i)`
|
||||
* Lower bound (`1 <= i < N`): `offset + (width * (i - 1))`
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.width"></a>
|
||||
<tr>
|
||||
<td><code>width</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.offset"></a>
|
||||
<tr>
|
||||
<td><code>offset</code></td>
|
||||
<td>double</td>
|
||||
<td>Lower bound of the first bucket.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcGoogle.api"></a>
|
||||
## Package google.api
|
||||
|
||||
<a name="rpcGoogle.apiIndex"></a>
|
||||
### Index
|
||||
|
||||
* [MetricDescriptor](#google.api.MetricDescriptor)
|
||||
(message)
|
||||
* [MetricDescriptor.MetricKind](#google.api.MetricDescriptor.MetricKind)
|
||||
(enum)
|
||||
* [MetricDescriptor.ValueType](#google.api.MetricDescriptor.ValueType)
|
||||
(enum)
|
||||
|
||||
<a name="google.api.MetricDescriptor"></a>
|
||||
### MetricDescriptor
|
||||
Defines a metric type and its schema. Once a metric descriptor is created,
|
||||
deleting or altering it stops data collection and makes the metric type's
|
||||
existing data unusable.
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
|
||||
<a name="google.api.MetricDescriptor.MetricKind"></a>
|
||||
### MetricKind
|
||||
The kind of measurement. It describes how the data is reported.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.MetricKind.METRICKINDUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>METRICKINDUNSPECIFIED</td>
|
||||
<td>Do not use this default value.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.MetricKind.GAUGE"></a>
|
||||
<tr>
|
||||
<td>GAUGE</td>
|
||||
<td>An instantaneous measurement of a value.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.MetricKind.DELTA"></a>
|
||||
<tr>
|
||||
<td>DELTA</td>
|
||||
<td>The change in a value during a time interval.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.MetricKind.CUMULATIVE"></a>
|
||||
<tr>
|
||||
<td>CUMULATIVE</td>
|
||||
<td>A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="google.api.MetricDescriptor.ValueType"></a>
|
||||
### ValueType
|
||||
The value type of a metric.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>VALUETYPEUNSPECIFIED</td>
|
||||
<td>Do not use this default value.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.BOOL"></a>
|
||||
<tr>
|
||||
<td>BOOL</td>
|
||||
<td>The value is a boolean. This value type can be used only if the metric kind is <code>GAUGE</code>.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.INT64"></a>
|
||||
<tr>
|
||||
<td>INT64</td>
|
||||
<td>The value is a signed 64-bit integer.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.DOUBLE"></a>
|
||||
<tr>
|
||||
<td>DOUBLE</td>
|
||||
<td>The value is a double precision floating point number.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.STRING"></a>
|
||||
<tr>
|
||||
<td>STRING</td>
|
||||
<td>The value is a text string. This value type can be used only if the metric kind is <code>GAUGE</code>.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.DISTRIBUTION"></a>
|
||||
<tr>
|
||||
<td>DISTRIBUTION</td>
|
||||
<td>The value is a <code>Distribution</code>.</td>
|
||||
</tr>
|
||||
<a name="google.api.MetricDescriptor.ValueType.MONEY"></a>
|
||||
<tr>
|
||||
<td>MONEY</td>
|
||||
<td>The value is money.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
---
|
||||
title: statsd Config
|
||||
overview: Generated documentation for Mixer's statsd Adapter Configuration Schema
|
||||
|
||||
order: 60
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.statsd.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.statsd.config.Params)
|
||||
(message)
|
||||
* [Params.MetricInfo](#adapter.statsd.config.Params.MetricInfo)
|
||||
(message)
|
||||
* [Params.MetricInfo.Type](#adapter.statsd.config.Params.MetricInfo.Type)
|
||||
(enum)
|
||||
|
||||
<a name="adapter.statsd.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.address"></a>
|
||||
<tr>
|
||||
<td><code>address</code></td>
|
||||
<td>string</td>
|
||||
<td>Address of the statsd server, e.g. localhost:8125</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.prefix"></a>
|
||||
<tr>
|
||||
<td><code>prefix</code></td>
|
||||
<td>string</td>
|
||||
<td>Metric prefix, do not specify for no prefix</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.flushDuration"></a>
|
||||
<tr>
|
||||
<td><code>flushDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>FlushDuration controls the maximum amount of time between sending metrics to the statsd collection server. Metrics are reported when either flushBytes is full or flushDuration time has elapsed since the last report.</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.flushBytes"></a>
|
||||
<tr>
|
||||
<td><code>flushBytes</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum UDP packet size to send; if not specified defaults to 512 bytes. If the statsd server is running on the same (private) network 1432 bytes is recommended for better performance.</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.samplingRate"></a>
|
||||
<tr>
|
||||
<td><code>samplingRate</code></td>
|
||||
<td>float</td>
|
||||
<td>Chance that any particular metric is sampled when incremented; can take the range [0, 1], defaults to 1 if unspecified.</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.metrics"></a>
|
||||
<tr>
|
||||
<td><code>metrics</code></td>
|
||||
<td>repeated map<string, <a href="#adapter.statsd.config.Params.MetricInfo">MetricInfo</a>></td>
|
||||
<td>Map of metric name -> info. If a metric's name is not in the map then the metric will not be exported to statsd.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.statsd.config.Params.MetricInfo"></a>
|
||||
### MetricInfo
|
||||
Describes how to represent this metric in statsd
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.type"></a>
|
||||
<tr>
|
||||
<td><code>type</code></td>
|
||||
<td><a href="#adapter.statsd.config.Params.MetricInfo.Type">Type</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.nameTemplate"></a>
|
||||
<tr>
|
||||
<td><code>nameTemplate</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The template will be filled with values from the metric's labels and the resulting string will be used as the statsd metric name. This allows easier creation of statsd metrics like <code>actionName-responseCode</code>. The template strings must conform to go's text/template syntax. For the example of <code>actionName-responseCode</code>, we use the template: <code>\{\{.apiMethod\}\}-\{\{.responseCode\}\}</code></p><p>If nameTemplate is the empty string the Istio metric name will be used for statsd metric's name.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.Type"></a>
|
||||
### Type
|
||||
The type of metric.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.Type.UNKNOWN"></a>
|
||||
<tr>
|
||||
<td>UNKNOWN</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.Type.COUNTER"></a>
|
||||
<tr>
|
||||
<td>COUNTER</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.Type.GAUGE"></a>
|
||||
<tr>
|
||||
<td>GAUGE</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.config.Params.MetricInfo.Type.DISTRIBUTION"></a>
|
||||
<tr>
|
||||
<td>DISTRIBUTION</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
---
|
||||
title: stdio Config
|
||||
overview: Generated documentation for Mixer's stdio Adapter Configuration Schema
|
||||
|
||||
order: 70
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.stdio.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.stdio.config.Params)
|
||||
(message)
|
||||
* [Params.Level](#adapter.stdio.config.Params.Level)
|
||||
(enum)
|
||||
* [Params.Stream](#adapter.stdio.config.Params.Stream)
|
||||
(enum)
|
||||
|
||||
<a name="adapter.stdio.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.logStream"></a>
|
||||
<tr>
|
||||
<td><code>logStream</code></td>
|
||||
<td><a href="#adapter.stdio.config.Params.Stream">Stream</a></td>
|
||||
<td>Selects which standard stream to write to for log entries. STDERR is the default Stream.</td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.severityLevels"></a>
|
||||
<tr>
|
||||
<td><code>severityLevels</code></td>
|
||||
<td>repeated map<string, <a href="#adapter.stdio.config.Params.Level">Level</a>></td>
|
||||
<td>Maps from severity strings as specified in LogEntry instances to the set of levels supported by this adapter.</td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.metricLevel"></a>
|
||||
<tr>
|
||||
<td><code>metricLevel</code></td>
|
||||
<td><a href="#adapter.stdio.config.Params.Level">Level</a></td>
|
||||
<td>The level to assign to metrics being output.</td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.outputAsJson"></a>
|
||||
<tr>
|
||||
<td><code>outputAsJson</code></td>
|
||||
<td>bool</td>
|
||||
<td>Whether to output a console-friendly or json-friendly format</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stdio.config.Params.Level"></a>
|
||||
### Level
|
||||
Importance level for individual items output by this adapter.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.Level.INFO"></a>
|
||||
<tr>
|
||||
<td>INFO</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.Level.WARNING"></a>
|
||||
<tr>
|
||||
<td>WARNING</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.Level.ERROR"></a>
|
||||
<tr>
|
||||
<td>ERROR</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stdio.config.Params.Stream"></a>
|
||||
### Stream
|
||||
Stream is used to select between different log output sinks.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.Stream.STDOUT"></a>
|
||||
<tr>
|
||||
<td>STDOUT</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="adapter.stdio.config.Params.Stream.STDERR"></a>
|
||||
<tr>
|
||||
<td>STDERR</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: svcctrl Config
|
||||
overview: Generated documentation for Mixer's svcctrl Adapter Configuration Schema
|
||||
|
||||
order: 80
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcAdapter.svcctrl.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Params](#adapter.svcctrl.config.Params)
|
||||
(message)
|
||||
|
||||
<a name="adapter.svcctrl.config.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.svcctrl.config.Params.serviceName"></a>
|
||||
<tr>
|
||||
<td><code>serviceName</code></td>
|
||||
<td>string</td>
|
||||
<td>Fully qualified GCP service name.</td>
|
||||
</tr>
|
||||
</table>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,969 @@
|
|||
---
|
||||
title: Egress Rules
|
||||
overview: Generated documentation for Istio's Configuration Schemas
|
||||
|
||||
order: 1010
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [DestinationWeight](#istio.proxy.v1.config.DestinationWeight)
|
||||
(message)
|
||||
* [EgressRule](#istio.proxy.v1.config.EgressRule)
|
||||
(message)
|
||||
* [EgressRule.Port](#istio.proxy.v1.config.EgressRule.Port)
|
||||
(message)
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Abort](#istio.proxy.v1.config.HTTPFaultInjection.Abort)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Delay](#istio.proxy.v1.config.HTTPFaultInjection.Delay)
|
||||
(message)
|
||||
* [HTTPRedirect](#istio.proxy.v1.config.HTTPRedirect)
|
||||
(message)
|
||||
* [HTTPRetry](#istio.proxy.v1.config.HTTPRetry)
|
||||
(message)
|
||||
* [HTTPRetry.SimpleRetryPolicy](#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy)
|
||||
(message)
|
||||
* [HTTPRewrite](#istio.proxy.v1.config.HTTPRewrite)
|
||||
(message)
|
||||
* [HTTPTimeout](#istio.proxy.v1.config.HTTPTimeout)
|
||||
(message)
|
||||
* [HTTPTimeout.SimpleTimeoutPolicy](#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy)
|
||||
(message)
|
||||
* [IstioService](#istio.proxy.v1.config.IstioService)
|
||||
(message)
|
||||
* [L4FaultInjection](#istio.proxy.v1.config.L4FaultInjection)
|
||||
(message)
|
||||
* [L4FaultInjection.Terminate](#istio.proxy.v1.config.L4FaultInjection.Terminate)
|
||||
(message)
|
||||
* [L4FaultInjection.Throttle](#istio.proxy.v1.config.L4FaultInjection.Throttle)
|
||||
(message)
|
||||
* [L4MatchAttributes](#istio.proxy.v1.config.L4MatchAttributes)
|
||||
(message)
|
||||
* [MatchCondition](#istio.proxy.v1.config.MatchCondition)
|
||||
(message)
|
||||
* [MatchRequest](#istio.proxy.v1.config.MatchRequest)
|
||||
(message)
|
||||
* [RouteRule](#istio.proxy.v1.config.RouteRule)
|
||||
(message)
|
||||
* [StringMatch](#istio.proxy.v1.config.StringMatch)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationWeight"></a>
|
||||
### DestinationWeight
|
||||
Each routing rule is associated with one or more service versions (see
|
||||
glossary in beginning of document). Weights associated with the version
|
||||
determine the proportion of traffic it receives. For example, the
|
||||
following rule will route 25% of traffic for the "reviews" service to
|
||||
instances with the "v2" tag and the remaining traffic (i.e., 75%) to
|
||||
"v1".
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v2
|
||||
weight: 25
|
||||
- labels:
|
||||
version: v1
|
||||
weight: 75
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td>Optional destination uniquely identifies the destination service. If not specified, the value is inherited from the parent route rule.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Service version identifier for the destination service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.weight"></a>
|
||||
<tr>
|
||||
<td><code>weight</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. The proportion of traffic to be forwarded to the service version. (0-100). Sum of weights across destinations SHOULD BE == 100. If there is only destination in a rule, the weight value is assumed to be 100.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.EgressRule"></a>
|
||||
### EgressRule
|
||||
Egress rules describe the properties of a service outside Istio. When transparent proxying
|
||||
is used, egress rules signify a white listed set of domains that microserves in the mesh
|
||||
are allowed to access. A subset of routing rules and all destination policies can be applied
|
||||
on the service targeted by an egress rule. The destination of an egress rule is allowed to
|
||||
contain wildcards (e.g., *.foo.com). Currently, only HTTP-based services can be expressed
|
||||
through the egress rule. If TLS origination from the sidecar is desired, the protocol
|
||||
associated with the service port must be marked as HTTPS, and the service is expected to
|
||||
be accessed over HTTP (e.g., http://gmail.com:443). The sidecar will automatically upgrade
|
||||
the connection to TLS when initiating a connection with the external service.
|
||||
|
||||
For example, the following egress rule describes the set of services hosted under the *.foo.com domain
|
||||
|
||||
|
||||
kind: EgressRule
|
||||
metadata:
|
||||
name: foo-egress-rule
|
||||
spec:
|
||||
destination:
|
||||
service: *.foo.com
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: http
|
||||
- port: 443
|
||||
protocol: https
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.EgressRule.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td>REQUIRED: Hostname or a wildcard domain name associated with the external service. ONLY the "service" field of destination will be taken into consideration. Name, namespace, domain and labels are ignored. Routing rules and destination policies that refer to these external services must have identical specification for the destination as the corresponding egress rule. Wildcard domain specifications must conform to format allowed by Envoy's Virtual Host specification, such as “*.foo.com” or “*-bar.foo.com”. The character '*' in a domain specification indicates a non-empty string. Hence, a wildcard domain of form “*-bar.foo.com” will match “baz-bar.foo.com” but not “-bar.foo.com”.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.EgressRule.ports"></a>
|
||||
<tr>
|
||||
<td><code>ports[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.EgressRule.Port">Port</a></td>
|
||||
<td>REQUIRED: list of ports on which the external service is available.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.EgressRule.useEgressProxy"></a>
|
||||
<tr>
|
||||
<td><code>useEgressProxy</code></td>
|
||||
<td>bool</td>
|
||||
<td><p>Forward all the external traffic through a dedicated egress proxy. It is used in some scenarios where there is a requirement that all the external traffic goes through special dedicated nodes/pods. These dedicated egress nodes could then be more closely monitored for security vulnerabilities.</p><p>The default is false, i.e. the sidecar forwards external traffic directly to the external service.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.EgressRule.Port"></a>
|
||||
### Port
|
||||
Port describes the properties of a specific TCP port of an external service.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.EgressRule.Port.port"></a>
|
||||
<tr>
|
||||
<td><code>port</code></td>
|
||||
<td>int32</td>
|
||||
<td>A valid non-negative integer port number.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.EgressRule.Port.protocol"></a>
|
||||
<tr>
|
||||
<td><code>protocol</code></td>
|
||||
<td>string</td>
|
||||
<td>The protocol to communicate with the external services. MUST BE one of HTTP|HTTPS|GRPC|HTTP2.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.overrideHeaderName"></a>
|
||||
<tr>
|
||||
<td><code>overrideHeaderName</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.grpcStatus"></a>
|
||||
<tr>
|
||||
<td><code>grpcStatus</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.http2Error"></a>
|
||||
<tr>
|
||||
<td><code>http2Error</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32 (oneof )</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.overrideHeaderName"></a>
|
||||
<tr>
|
||||
<td><code>overrideHeaderName</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a> (oneof )</td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.exponentialDelay"></a>
|
||||
<tr>
|
||||
<td><code>exponentialDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a> (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect"></a>
|
||||
### HTTPRedirect
|
||||
HTTPRedirect can be used to send a 302 redirect response to the caller,
|
||||
where the Authority/Host and the URI in the response can be swapped with
|
||||
the specified values. For example, the following route rule redirects
|
||||
requests for /v1/getProductRatings API on the ratings service to
|
||||
/v1/bookRatings provided by the bookratings service.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
request:
|
||||
headers:
|
||||
uri: /v1/getProductRatings
|
||||
redirect:
|
||||
uri: /v1/bookRatings
|
||||
authority: bookratings.default.svc.cluster.local
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Authority/Host portion of the URL with this value</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry"></a>
|
||||
### HTTPRetry
|
||||
Describes the retry policy to use when a HTTP request fails. For
|
||||
example, the following rule sets the maximum number of retries to 3 when
|
||||
calling ratings:v1 service, with a 2s timeout per retry attempt.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpReqRetries:
|
||||
simpleRetry:
|
||||
attempts: 3
|
||||
perTryTimeout: 2s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.simpleRetry"></a>
|
||||
<tr>
|
||||
<td><code>simpleRetry</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy">SimpleRetryPolicy</a> (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.custom"></a>
|
||||
<tr>
|
||||
<td><code>custom</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">Any</a> (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy"></a>
|
||||
### SimpleRetryPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.attempts"></a>
|
||||
<tr>
|
||||
<td><code>attempts</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.perTryTimeout"></a>
|
||||
<tr>
|
||||
<td><code>perTryTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.overrideHeaderName"></a>
|
||||
<tr>
|
||||
<td><code>overrideHeaderName</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite"></a>
|
||||
### HTTPRewrite
|
||||
HTTPRewrite can be used to rewrite specific parts of a HTTP request
|
||||
before forwarding the request to the destination. Rewrite primitive can
|
||||
be used only with the DestinationWeights. The following example
|
||||
demonstrates how to rewrite the URL prefix for api call (/ratings) to
|
||||
ratings service before making the actual API call.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
request:
|
||||
headers:
|
||||
uri:
|
||||
prefix: /ratings
|
||||
rewrite:
|
||||
uri: /v1/bookRatings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Authority/Host header with this value.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout"></a>
|
||||
### HTTPTimeout
|
||||
Describes HTTP request timeout. For example, the following rule sets a
|
||||
10 second timeout for calls to the ratings:v1 service
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpReqTimeout:
|
||||
simpleTimeout:
|
||||
timeout: 10s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.simpleTimeout"></a>
|
||||
<tr>
|
||||
<td><code>simpleTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy">SimpleTimeoutPolicy</a> (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.custom"></a>
|
||||
<tr>
|
||||
<td><code>custom</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">Any</a> (oneof )</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy"></a>
|
||||
### SimpleTimeoutPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.timeout"></a>
|
||||
<tr>
|
||||
<td><code>timeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Timeout for a HTTP request. Includes retries as well. Default 15s. format: 1h/1m/1s/1ms. MUST BE >=1ms. It is possible to control timeout per request by supplying the timeout value via x-envoy-upstream-rq-timeout-ms HTTP header.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.overrideHeaderName"></a>
|
||||
<tr>
|
||||
<td><code>overrideHeaderName</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.IstioService"></a>
|
||||
### IstioService
|
||||
IstioService identifies a service and optionally service version.
|
||||
The FQDN of the service is composed from the name, namespace, and implementation-specific domain suffix
|
||||
(e.g. on Kubernetes, "reviews" + "default" + "svc.cluster.local" -> "reviews.default.svc.cluster.local").
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>The short name of the service such as "foo".</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.namespace"></a>
|
||||
<tr>
|
||||
<td><code>namespace</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional namespace of the service. Defaults to value of metadata namespace field.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.domain"></a>
|
||||
<tr>
|
||||
<td><code>domain</code></td>
|
||||
<td>string</td>
|
||||
<td>Domain suffix used to construct the service FQDN in implementations that support such specification.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.service"></a>
|
||||
<tr>
|
||||
<td><code>service</code></td>
|
||||
<td>string</td>
|
||||
<td>The service FQDN.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td><p>Optional one or more labels that uniquely identify the service version.</p><p><em>Note:</em> When used for a RouteRule destination, labels MUST be empty.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection"></a>
|
||||
### L4FaultInjection
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.throttle"></a>
|
||||
<tr>
|
||||
<td><code>throttle</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.L4FaultInjection.Throttle">Throttle</a></td>
|
||||
<td>Unlike Http services, we have very little context for raw Tcp|Udp connections. We could throttle bandwidth of the connections (slow down the connection) and/or abruptly reset (terminate) the Tcp connection after it has been established. We first throttle (if set) and then terminate the connection.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.terminate"></a>
|
||||
<tr>
|
||||
<td><code>terminate</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.L4FaultInjection.Terminate">Terminate</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Terminate"></a>
|
||||
### Terminate
|
||||
Abruptly reset (terminate) the Tcp connection after it has been
|
||||
established, emulating remote server crash or link failure.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Terminate.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of established Tcp connections to be terminated/reset</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Terminate.terminateAfterPeriod"></a>
|
||||
<tr>
|
||||
<td><code>terminateAfterPeriod</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle"></a>
|
||||
### Throttle
|
||||
Bandwidth throttling for Tcp and Udp connections
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of connections to throttle.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.downstreamLimitBps"></a>
|
||||
<tr>
|
||||
<td><code>downstreamLimitBps</code></td>
|
||||
<td>int64</td>
|
||||
<td>bandwidth limit in "bits" per second between downstream and Envoy</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.upstreamLimitBps"></a>
|
||||
<tr>
|
||||
<td><code>upstreamLimitBps</code></td>
|
||||
<td>int64</td>
|
||||
<td>bandwidth limits in "bits" per second between Envoy and upstream</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.throttleForPeriod"></a>
|
||||
<tr>
|
||||
<td><code>throttleForPeriod</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Stop throttling after the given duration. If not set, the connection will be throttled for its lifetime.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.throttleAfterPeriod"></a>
|
||||
<tr>
|
||||
<td><code>throttleAfterPeriod</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a> (oneof )</td>
|
||||
<td>Wait a while after the connection is established, before starting bandwidth throttling. This would allow us to inject fault after the application protocol (e.g., MySQL) has had time to establish sessions/whatever handshake necessary.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4FaultInjection.Throttle.throttleAfterBytes"></a>
|
||||
<tr>
|
||||
<td><code>throttleAfterBytes</code></td>
|
||||
<td>double (oneof )</td>
|
||||
<td>Alternatively, we could wait for a certain number of bytes to be transferred to upstream before throttling the bandwidth.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.L4MatchAttributes"></a>
|
||||
### L4MatchAttributes
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4MatchAttributes.sourceSubnet"></a>
|
||||
<tr>
|
||||
<td><code>sourceSubnet[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>IPv4 or IPv6 ip address with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.L4MatchAttributes.destinationSubnet"></a>
|
||||
<tr>
|
||||
<td><code>destinationSubnet[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>IPv4 or IPv6 ip address of destination with optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d. This is only valid when the destination service has several IPs and the application explicitly specifies a particular IP.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchCondition"></a>
|
||||
### MatchCondition
|
||||
Match condition specifies a set of criterion to be met in order for the
|
||||
route rule to be applied to the connection or HTTP request. The
|
||||
condition provides distinct set of conditions for each protocol with the
|
||||
intention that conditions apply only to the service ports that match the
|
||||
protocol. For example, the following route rule restricts the rule to
|
||||
match only requests originating from "reviews:v2", accessing ratings
|
||||
service where the URL path starts with /ratings/v2/ and the request
|
||||
contains a "cookie" with value "user=jason",
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
source:
|
||||
name: reviews
|
||||
labels:
|
||||
version: v2
|
||||
request:
|
||||
headers:
|
||||
cookie:
|
||||
regex: "^(.*?;)?(user=jason)(;.*)?"
|
||||
uri:
|
||||
prefix: "/ratings/v2/"
|
||||
|
||||
|
||||
MatchCondition CANNOT be empty. At least one source or
|
||||
request header must be specified.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.source"></a>
|
||||
<tr>
|
||||
<td><code>source</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td>Identifies the service initiating a connection or a request.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.tcp"></a>
|
||||
<tr>
|
||||
<td><code>tcp</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.L4MatchAttributes">L4MatchAttributes</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.udp"></a>
|
||||
<tr>
|
||||
<td><code>udp</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.L4MatchAttributes">L4MatchAttributes</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.request"></a>
|
||||
<tr>
|
||||
<td><code>request</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MatchRequest">MatchRequest</a></td>
|
||||
<td>Attributes of an HTTP request to match.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchRequest"></a>
|
||||
### MatchRequest
|
||||
MatchRequest specifies the attributes of an HTTP request to be used for matching a request.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchRequest.headers"></a>
|
||||
<tr>
|
||||
<td><code>headers</code></td>
|
||||
<td>repeated map<string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>></td>
|
||||
<td><p>Set of HTTP match conditions based on HTTP/1.1, HTTP/2, GRPC request metadata, such as <em>uri</em>, <em>scheme</em>, <em>authority</em>. The header keys must be lowercase and use hyphen as the separator, e.g. <em>x-request-id</em>.</p><p>Header values are case-sensitive and formatted as follows:</p><p><em>exact: "value"</em> or just <em>"value"</em> for exact string match</p><p><em>prefix: "value"</em> for prefix-based match</p><p><em>regex: "value"</em> for ECMAscript style regex-based match</p><p><em>Note 1:</em> The keys <em>uri</em>, <em>scheme</em>, <em>method</em>, and <em>authority</em> correspond to URI, protocol scheme (e.g., HTTP, HTTPS), HTTP method (e.g., GET, POST), and the HTTP Host header respectively.</p><p><em>Note 2:</em> <em>uri</em> can be used to perform URL matches. For all HTTP headers including <em>uri</em>, exact, prefix and ECMA style regular expression matches are supported.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.RouteRule"></a>
|
||||
### RouteRule
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIstio.proxy.v1.config.RouteRuleDescriptionSubsectionSubsectionSubsection"></a>
|
||||
#### Glossary & concepts
|
||||
*Service* is a unit of an application with a unique name that other services
|
||||
use to refer to the functionality being called. Service instances are
|
||||
pods/VMs/containers that implement the service.
|
||||
|
||||
*Service versions* - In a continuous deployment scenario, for a given service,
|
||||
there can be multiple sets of instances running potentially different
|
||||
variants of the application binary. These variants are not necessarily
|
||||
different API versions. They could be iterative changes to the same service,
|
||||
deployed in different environments (prod, staging, dev, etc.). Common
|
||||
scenarios where this occurs include A/B testing, canary rollouts, etc. The
|
||||
choice of a particular version can be decided based on various criterion
|
||||
(headers, url, etc.) and/or by weights assigned to each version. Each
|
||||
service has a default version consisting of all its instances.
|
||||
|
||||
*Source* - downstream client (browser or another service) calling the
|
||||
Envoy proxy/sidecar (typically to reach another service).
|
||||
|
||||
*Destination* - The remote upstream service to which the Envoy proxy/sidecar is
|
||||
talking to, on behalf of the source service. There can be one or more
|
||||
service versions for a given service (see the discussion on versions above).
|
||||
Envoy would choose the version based on various routing rules.
|
||||
|
||||
*Access model* - Applications address only the destination service
|
||||
without knowledge of individual service versions. The actual choice of
|
||||
the version is determined by Envoy, enabling the application code to
|
||||
decouple itself from the evolution of dependent services.
|
||||
|
||||
|
||||
|
||||
Route rule provides a custom routing policy based on the source and
|
||||
destination service versions and connection/request metadata. The rule
|
||||
must provide a set of conditions for each protocol (TCP, UDP, HTTP) that
|
||||
the destination service exposes on its ports.
|
||||
|
||||
The rule applies only to the ports on the destination service for which
|
||||
it provides protocol-specific match condition, e.g. if the rule does not
|
||||
specify TCP condition, the rule does not apply to TCP traffic towards
|
||||
the destination service.
|
||||
|
||||
For example, a simple rule to send 100% of incoming traffic for a
|
||||
"reviews" service to version "v1" can be specified as follows:
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default # optional (default is "default")
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
namespace: my-namespace # optional (default is metadata namespace field)
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
weight: 100
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td><p>REQUIRED: Destination uniquely identifies the destination associated with this routing rule. This field is applicable for hostname-based resolution for HTTP traffic as well as IP-based resolution for TCP/UDP traffic.</p><p><em>Note:</em> The route rule destination specification represents all version of the service and therefore the IstioService's labels field MUST be empty.</p></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.precedence"></a>
|
||||
<tr>
|
||||
<td><code>precedence</code></td>
|
||||
<td>int32</td>
|
||||
<td>RECOMMENDED. Precedence is used to disambiguate the order of application of rules for the same destination service. A higher number takes priority. If not specified, the value is assumed to be 0. The order of application for rules with the same precedence is unspecified.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.match"></a>
|
||||
<tr>
|
||||
<td><code>match</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MatchCondition">MatchCondition</a></td>
|
||||
<td>Match condtions to be satisfied for the route rule to be activated. If match is omitted, the route rule applies only to HTTP traffic.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.route"></a>
|
||||
<tr>
|
||||
<td><code>route[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.DestinationWeight">DestinationWeight</a></td>
|
||||
<td>REQUIRED (route|redirect). A routing rule can either redirect traffic or forward traffic. The forwarding target can be one of several versions of a service (see glossary in beginning of document). Weights associated with the service version determine the proportion of traffic it receives.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.redirect"></a>
|
||||
<tr>
|
||||
<td><code>redirect</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRedirect">HTTPRedirect</a></td>
|
||||
<td>REQUIRED (route|redirect). A routing rule can either redirect traffic or forward traffic. The redirect primitive can be used to send a HTTP 302 redirect to a different URI or Authority.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.rewrite"></a>
|
||||
<tr>
|
||||
<td><code>rewrite</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRewrite">HTTPRewrite</a></td>
|
||||
<td>Rewrite HTTP URIs and Authority headers. Rewrite cannot be used with Redirect primitive. Rewrite will be performed before forwarding.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.websocketUpgrade"></a>
|
||||
<tr>
|
||||
<td><code>websocketUpgrade</code></td>
|
||||
<td>bool</td>
|
||||
<td>Indicates that a HTTP/1.1 client connection to this particular route should be allowed (and expected) to upgrade to a WebSocket connection. The default is false. Envoy expects the first request to this route to contain the WebSocket upgrade headers. Otherwise, the request will be rejected.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpReqTimeout"></a>
|
||||
<tr>
|
||||
<td><code>httpReqTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout">HTTPTimeout</a></td>
|
||||
<td>Timeout policy for HTTP requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpReqRetries"></a>
|
||||
<tr>
|
||||
<td><code>httpReqRetries</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry">HTTPRetry</a></td>
|
||||
<td>Retry policy for HTTP requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpFault"></a>
|
||||
<tr>
|
||||
<td><code>httpFault</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection">HTTPFaultInjection</a></td>
|
||||
<td>Fault injection policy to apply on HTTP traffic</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.l4Fault"></a>
|
||||
<tr>
|
||||
<td><code>l4Fault</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.L4FaultInjection">L4FaultInjection</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.StringMatch"></a>
|
||||
### StringMatch
|
||||
Describes how to match a given string in HTTP headers. Match is case-sensitive.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.exact"></a>
|
||||
<tr>
|
||||
<td><code>exact</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>exact string match</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.prefix"></a>
|
||||
<tr>
|
||||
<td><code>prefix</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>prefix-based match</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.regex"></a>
|
||||
<tr>
|
||||
<td><code>regex</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>ECMAscript style regex-based match</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
---
|
||||
title: Fault Injection
|
||||
overview: Generated documentation for Istio's Configuration Schemas
|
||||
|
||||
order: 1020
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Abort](#istio.proxy.v1.config.HTTPFaultInjection.Abort)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Delay](#istio.proxy.v1.config.HTTPFaultInjection.Delay)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,250 @@
|
|||
---
|
||||
title: Manager
|
||||
overview: Generated documentation for Istio's Configuration Schemas
|
||||
|
||||
order: 1030
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [MeshConfig](#istio.proxy.v1.config.MeshConfig)
|
||||
(message)
|
||||
* [MeshConfig.AuthPolicy](#istio.proxy.v1.config.MeshConfig.AuthPolicy)
|
||||
(enum)
|
||||
* [MeshConfig.IngressControllerMode](#istio.proxy.v1.config.MeshConfig.IngressControllerMode)
|
||||
(enum)
|
||||
* [ProxyConfig](#istio.proxy.v1.config.ProxyConfig)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.MeshConfig"></a>
|
||||
### MeshConfig
|
||||
MeshConfig defines mesh-wide variables shared by all Envoy instances in the
|
||||
Istio service mesh.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.egressProxyAddress"></a>
|
||||
<tr>
|
||||
<td><code>egressProxyAddress</code></td>
|
||||
<td>string</td>
|
||||
<td>Address of the egress Envoy service (e.g. <em>istio-egress:80</em>).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.mixerAddress"></a>
|
||||
<tr>
|
||||
<td><code>mixerAddress</code></td>
|
||||
<td>string</td>
|
||||
<td>Address of the mixer service (e.g. <em>istio-mixer:9090</em>). Empty value disables Mixer checks and telemetry.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.disablePolicyChecks"></a>
|
||||
<tr>
|
||||
<td><code>disablePolicyChecks</code></td>
|
||||
<td>bool</td>
|
||||
<td>Disable policy checks by the mixer service. Metrics will still be reported to the mixer for HTTP requests and TCP connections. Default is false, i.e. mixer policy check is enabled by default.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.proxyListenPort"></a>
|
||||
<tr>
|
||||
<td><code>proxyListenPort</code></td>
|
||||
<td>int32</td>
|
||||
<td>Port on which Envoy should listen for incoming connections from other services.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.proxyHttpPort"></a>
|
||||
<tr>
|
||||
<td><code>proxyHttpPort</code></td>
|
||||
<td>int32</td>
|
||||
<td>Port on which Envoy should listen for HTTP PROXY requests if set.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.connectTimeout"></a>
|
||||
<tr>
|
||||
<td><code>connectTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Connection timeout used by Envoy. (MUST BE >=1ms)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.ingressClass"></a>
|
||||
<tr>
|
||||
<td><code>ingressClass</code></td>
|
||||
<td>string</td>
|
||||
<td>Class of ingress resources to be processed by Istio ingress controller. This corresponds to the value of "kubernetes.io/ingress.class" annotation.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.ingressService"></a>
|
||||
<tr>
|
||||
<td><code>ingressService</code></td>
|
||||
<td>string</td>
|
||||
<td>Name of the kubernetes service used for the istio ingress controller.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.ingressControllerMode"></a>
|
||||
<tr>
|
||||
<td><code>ingressControllerMode</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MeshConfig.IngressControllerMode">IngressControllerMode</a></td>
|
||||
<td>Defines whether to use Istio ingress controller for annotated or all ingress resources.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.authPolicy"></a>
|
||||
<tr>
|
||||
<td><code>authPolicy</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MeshConfig.AuthPolicy">AuthPolicy</a></td>
|
||||
<td>Authentication policy defines the global switch to control authentication for Envoy-to-Envoy communication.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.rdsRefreshDelay"></a>
|
||||
<tr>
|
||||
<td><code>rdsRefreshDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Polling interval for RDS (MUST BE >=1ms)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.enableTracing"></a>
|
||||
<tr>
|
||||
<td><code>enableTracing</code></td>
|
||||
<td>bool</td>
|
||||
<td>Flag to control generation of trace spans and request IDs. Requires a trace span collector defined in the proxy configuration.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.accessLogFile"></a>
|
||||
<tr>
|
||||
<td><code>accessLogFile</code></td>
|
||||
<td>string</td>
|
||||
<td>File address for the proxy access log (e.g. /dev/stdout). Empty value disables access logging.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.defaultConfig"></a>
|
||||
<tr>
|
||||
<td><code>defaultConfig</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.ProxyConfig">ProxyConfig</a></td>
|
||||
<td>Default proxy config used by the proxy injection mechanism operating in the mesh (e.g. Kubernetes admission controller) In case of Kubernetes, the proxy config is applied once during the injection process, and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MeshConfig.AuthPolicy"></a>
|
||||
### AuthPolicy
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.AuthPolicy.NONE"></a>
|
||||
<tr>
|
||||
<td>NONE</td>
|
||||
<td>Do not encrypt Envoy to Envoy traffic.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.AuthPolicy.MUTUALTLS"></a>
|
||||
<tr>
|
||||
<td>MUTUALTLS</td>
|
||||
<td>Envoy to Envoy traffic is wrapped into mutual TLS connections.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MeshConfig.IngressControllerMode"></a>
|
||||
### IngressControllerMode
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.IngressControllerMode.OFF"></a>
|
||||
<tr>
|
||||
<td>OFF</td>
|
||||
<td>Disables Istio ingress controller.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.IngressControllerMode.DEFAULT"></a>
|
||||
<tr>
|
||||
<td>DEFAULT</td>
|
||||
<td>Istio ingress controller will act on ingress resources that do not contain any annotation or whose annotations match the value specified in the ingressClass parameter described earlier. Use this mode if Istio ingress controller will be the default ingress controller for the entire kubernetes cluster.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MeshConfig.IngressControllerMode.STRICT"></a>
|
||||
<tr>
|
||||
<td>STRICT</td>
|
||||
<td>Istio ingress controller will only act on ingress resources whose annotations match the value specified in the ingressClass parameter described earlier. Use this mode if Istio ingress controller will be a secondary ingress controller (e.g., in addition to a cloud-provided ingress controller).</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.ProxyConfig"></a>
|
||||
### ProxyConfig
|
||||
ProxyConfig defines variables for individual Envoy instances.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.configPath"></a>
|
||||
<tr>
|
||||
<td><code>configPath</code></td>
|
||||
<td>string</td>
|
||||
<td>Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.binaryPath"></a>
|
||||
<tr>
|
||||
<td><code>binaryPath</code></td>
|
||||
<td>string</td>
|
||||
<td>Path to the proxy binary</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.serviceCluster"></a>
|
||||
<tr>
|
||||
<td><code>serviceCluster</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Service cluster defines the name for the serviceCluster that is shared by all Envoy instances. This setting corresponds to <em>--service-cluster</em> flag in Envoy. In a typical Envoy deployment, the <em>service-cluster</em> flag is used to identify the caller, for source-based routing scenarios.</p><p>Since Istio does not assign a local service/service version to each Envoy instance, the name is same for all of them. However, the source/caller's identity (e.g., IP address) is encoded in the <em>--service-node</em> flag when launching Envoy. When the RDS service receives API calls from Envoy, it uses the value of the <em>service-node</em> flag to compute routes that are relative to the service instances located at that IP address.</p></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.drainDuration"></a>
|
||||
<tr>
|
||||
<td><code>drainDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The time in seconds that Envoy will drain connections during a hot restart. MUST be >=1s (e.g., <em>1s/1m/1h</em>)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.parentShutdownDuration"></a>
|
||||
<tr>
|
||||
<td><code>parentShutdownDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The time in seconds that Envoy will wait before shutting down the parent process during a hot restart. MUST be >=1s (e.g., <em>1s/1m/1h</em>). MUST BE greater than <em>drainDuration</em> parameter.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.discoveryAddress"></a>
|
||||
<tr>
|
||||
<td><code>discoveryAddress</code></td>
|
||||
<td>string</td>
|
||||
<td>Address of the discovery service exposing xDS (e.g. <em>istio-pilot:8080</em>).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.discoveryRefreshDelay"></a>
|
||||
<tr>
|
||||
<td><code>discoveryRefreshDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Polling interval for service discovery (used by EDS, CDS, LDS, but not RDS). (MUST BE >=1ms)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.zipkinAddress"></a>
|
||||
<tr>
|
||||
<td><code>zipkinAddress</code></td>
|
||||
<td>string</td>
|
||||
<td>Address of the Zipkin service (e.g. <em>zipkin:9411</em>).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.connectTimeout"></a>
|
||||
<tr>
|
||||
<td><code>connectTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Connection timeout used by Envoy for supporting services. (MUST BE >=1ms)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.statsdUdpAddress"></a>
|
||||
<tr>
|
||||
<td><code>statsdUdpAddress</code></td>
|
||||
<td>string</td>
|
||||
<td>IP Address and Port of a statsd UDP listener (e.g. <em>10.75.241.127:9125</em>).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.proxyAdminPort"></a>
|
||||
<tr>
|
||||
<td><code>proxyAdminPort</code></td>
|
||||
<td>int32</td>
|
||||
<td>Port on which Envoy should listen for administrative commands.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.ProxyConfig.availabilityZone"></a>
|
||||
<tr>
|
||||
<td><code>availabilityZone</code></td>
|
||||
<td>string</td>
|
||||
<td>The availability zone where this Envoy instance is running. When running Envoy as a sidecar in Kubernetes, this flag must be one of the availability zones assigned to a node using failure-domain.beta.kubernetes.io/zone annotation.</td>
|
||||
</tr>
|
||||
</table>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,566 @@
|
|||
---
|
||||
title: Mixer Service
|
||||
overview: Generated documentation for Mixer's API Surface
|
||||
|
||||
order: 1140
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcGoogle.rpcIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Status](/docs/reference/api/status.html)
|
||||
(message)
|
||||
|
||||
<a name="google.rpc.Status"></a>
|
||||
### Status
|
||||
The `Status` type defines a logical error model that is suitable for different
|
||||
programming environments, including REST APIs and RPC APIs. It is used by
|
||||
[gRPC](https://github.com/grpc). The error model is designed to be:
|
||||
|
||||
- Simple to use and understand for most users
|
||||
- Flexible enough to meet unexpected needs
|
||||
|
||||
|
||||
|
||||
<a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection"></a>
|
||||
#### Overview
|
||||
The `Status` message contains three pieces of data: error code, error message,
|
||||
and error details. The error code should be an enum value of
|
||||
[google.rpc.Code](#google.rpc.Code), but it may accept additional error codes if needed. The
|
||||
error message should be a developer-facing English message that helps
|
||||
developers *understand* and *resolve* the error. If a localized user-facing
|
||||
error message is needed, put the localized message in the error details or
|
||||
localize it in the client. The optional error details may contain arbitrary
|
||||
information about the error. There is a predefined set of error detail types
|
||||
in the package `google.rpc` that can be used for common error conditions.
|
||||
|
||||
|
||||
|
||||
<a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection_1"></a>
|
||||
#### Language mapping
|
||||
The `Status` message is the logical representation of the error model, but it
|
||||
is not necessarily the actual wire format. When the `Status` message is
|
||||
exposed in different client libraries and different wire protocols, it can be
|
||||
mapped differently. For example, it will likely be mapped to some exceptions
|
||||
in Java, but more likely mapped to some error codes in C.
|
||||
|
||||
|
||||
|
||||
<a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection_2"></a>
|
||||
#### Other uses
|
||||
The error model and the `Status` message can be used in a variety of
|
||||
environments, either with or without APIs, to provide a
|
||||
consistent developer experience across different environments.
|
||||
|
||||
Example uses of this error model include:
|
||||
|
||||
- Partial errors. If a service needs to return partial errors to the client,
|
||||
it may embed the `Status` in the normal response to indicate the partial
|
||||
errors.
|
||||
|
||||
- Workflow errors. A typical workflow has multiple steps. Each step may
|
||||
have a `Status` message for error reporting.
|
||||
|
||||
- Batch operations. If a client uses batch request and batch response, the
|
||||
`Status` message should be used directly inside batch response, one for
|
||||
each error sub-response.
|
||||
|
||||
- Asynchronous operations. If an API call embeds asynchronous operation
|
||||
results in its response, the status of those operations should be
|
||||
represented directly using the `Status` message.
|
||||
|
||||
- Logging. If some API errors are stored in logs, the message `Status` could
|
||||
be used directly after any stripping needed for security/privacy reasons.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="google.rpc.Status.code"></a>
|
||||
<tr>
|
||||
<td><code>code</code></td>
|
||||
<td>int32</td>
|
||||
<td>The status code, which should be an enum value of <a href="#google.rpc.Code">google.rpc.Code</a>.</td>
|
||||
</tr>
|
||||
<a name="google.rpc.Status.message"></a>
|
||||
<tr>
|
||||
<td><code>message</code></td>
|
||||
<td>string</td>
|
||||
<td>A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the <a href="/docs/reference/api/status.html.details">google.rpc.Status.details</a> field, or localized by the client.</td>
|
||||
</tr>
|
||||
<a name="google.rpc.Status.details"></a>
|
||||
<tr>
|
||||
<td><code>details[]</code></td>
|
||||
<td>repeated <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">Any</a></td>
|
||||
<td>A list of messages that carry the error details. There is a common set of message types for APIs to use.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcIstio.mixer.v1"></a>
|
||||
## Package istio.mixer.v1
|
||||
|
||||
<a name="rpcIstio.mixer.v1Index"></a>
|
||||
### Index
|
||||
* [Mixer](#istio.mixer.v1.Mixer) (interface)
|
||||
* [Attributes](#istio.mixer.v1.Attributes)
|
||||
(message)
|
||||
* [CheckRequest](#istio.mixer.v1.CheckRequest)
|
||||
(message)
|
||||
* [CheckRequest.QuotaParams](#istio.mixer.v1.CheckRequest.QuotaParams)
|
||||
(message)
|
||||
* [CheckResponse](#istio.mixer.v1.CheckResponse)
|
||||
(message)
|
||||
* [CheckResponse.PreconditionResult](#istio.mixer.v1.CheckResponse.PreconditionResult)
|
||||
(message)
|
||||
* [CheckResponse.QuotaResult](#istio.mixer.v1.CheckResponse.QuotaResult)
|
||||
(message)
|
||||
* [ReferencedAttributes](#istio.mixer.v1.ReferencedAttributes)
|
||||
(message)
|
||||
* [ReferencedAttributes.AttributeMatch](#istio.mixer.v1.ReferencedAttributes.AttributeMatch)
|
||||
(message)
|
||||
* [ReferencedAttributes.Condition](#istio.mixer.v1.ReferencedAttributes.Condition)
|
||||
(enum)
|
||||
* [ReportRequest](#istio.mixer.v1.ReportRequest)
|
||||
(message)
|
||||
* [ReportResponse](#istio.mixer.v1.ReportResponse)
|
||||
(message)
|
||||
* [StringMap](#istio.mixer.v1.StringMap)
|
||||
(message)
|
||||
|
||||
<a name="istio.mixer.v1.Mixer"></a>
|
||||
### Mixer
|
||||
Mixer provides three core features:
|
||||
|
||||
- *Precondition Checking*. Enables callers to verify a number of preconditions
|
||||
before responding to an incoming request from a service consumer.
|
||||
Preconditions can include whether the service consumer is properly
|
||||
authenticated, is on the service’s whitelist, passes ACL checks, and more.
|
||||
|
||||
- *Quota Management*. Enables services to allocate and free quota on a number
|
||||
of dimensions, Quotas are used as a relatively simple resource management tool
|
||||
to provide some fairness between service consumers when contending for limited
|
||||
resources. Rate limits are examples of quotas.
|
||||
|
||||
- *Telemetry Reporting*. Enables services to report logging and monitoring.
|
||||
In the future, it will also enable tracing and billing streams intended for
|
||||
both the service operator as well as for service consumers.
|
||||
|
||||
<a name="istio.mixer.v1.Mixer.Check"></a>
|
||||
#### Check
|
||||
<code>
|
||||
rpc Check([CheckRequest](#istio.mixer.v1.CheckRequest)) returns ([CheckResponse](#istio.mixer.v1.CheckResponse))
|
||||
</code>
|
||||
Checks preconditions and allocate quota before performing an operation.
|
||||
The preconditions enforced depend on the set of supplied attributes and
|
||||
the active configuration.
|
||||
|
||||
<a name="istio.mixer.v1.Mixer.Report"></a>
|
||||
#### Report
|
||||
<code>
|
||||
rpc Report([ReportRequest](#istio.mixer.v1.ReportRequest)) returns ([ReportResponse](#istio.mixer.v1.ReportResponse))
|
||||
</code>
|
||||
Reports telemetry, such as logs and metrics.
|
||||
The reported information depends on the set of supplied attributes and the
|
||||
active configuration.
|
||||
|
||||
<a name="istio.mixer.v1.Attributes"></a>
|
||||
### Attributes
|
||||
Attributes represents a set of typed name/value pairs. Many of Mixer's
|
||||
API either consume and/or return attributes.
|
||||
|
||||
Istio uses attributes to control the runtime behavior of services running in the service mesh.
|
||||
Attributes are named and typed pieces of metadata describing ingress and egress traffic and the
|
||||
environment this traffic occurs in. An Istio attribute carries a specific piece
|
||||
of information such as the error code of an API request, the latency of an API request, or the
|
||||
original IP address of a TCP connection. For example:
|
||||
|
||||
|
||||
```
|
||||
request.path: xyz/abc
|
||||
request.size: 234
|
||||
request.time: 12:34:56.789 04/17/2017
|
||||
source.ip: 192.168.0.1
|
||||
target.service: example
|
||||
```
|
||||
|
||||
|
||||
A given Istio deployment has a fixed vocabulary of attributes that it understands.
|
||||
The specific vocabulary is determined by the set of attribute producers being used
|
||||
in the deployment. The primary attribute producer in Istio is Envoy, although
|
||||
specialized Mixer adapters and services can also generate attributes.
|
||||
|
||||
The common baseline set of attributes available in most Istio deployments is defined
|
||||
[here](https://istio.io/docs/reference/config/mixer/attribute-vocabulary.html).
|
||||
|
||||
Attributes are strongly typed. The supported attribute types are defined by
|
||||
[ValueType](https://github.com/istio/api/blob/master/mixer/v1/config/descriptor/valueType.proto).
|
||||
Each type of value is encoded into one of the so-called transport types present
|
||||
in this message.
|
||||
|
||||
Within this message, strings are referenced using integer indices into
|
||||
one of two string dictionaries. Positive integers index into the global
|
||||
deployment-wide dictionary, whereas negative integers index into the message-level
|
||||
dictionary instead. The message-level dictionary is carried by the
|
||||
`words` field of this message, the deployment-wide dictionary is determined via
|
||||
configuration.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.words"></a>
|
||||
<tr>
|
||||
<td><code>words[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>The message-level dictionary.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.strings"></a>
|
||||
<tr>
|
||||
<td><code>strings</code></td>
|
||||
<td>repeated map<sint32, sint32></td>
|
||||
<td>Attribute payload. All <code>sint32</code> values represent indices into one of the word dictionaries. Positive values are indices into the global deployment-wide dictionary, negative values are indices into the message-level dictionary.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.int64s"></a>
|
||||
<tr>
|
||||
<td><code>int64s</code></td>
|
||||
<td>repeated map<sint32, int64></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.doubles"></a>
|
||||
<tr>
|
||||
<td><code>doubles</code></td>
|
||||
<td>repeated map<sint32, double></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.bools"></a>
|
||||
<tr>
|
||||
<td><code>bools</code></td>
|
||||
<td>repeated map<sint32, bool></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.timestamps"></a>
|
||||
<tr>
|
||||
<td><code>timestamps</code></td>
|
||||
<td>repeated map<sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.durations"></a>
|
||||
<tr>
|
||||
<td><code>durations</code></td>
|
||||
<td>repeated map<sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.bytes"></a>
|
||||
<tr>
|
||||
<td><code>bytes</code></td>
|
||||
<td>repeated map<sint32, bytes></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.stringMaps"></a>
|
||||
<tr>
|
||||
<td><code>stringMaps</code></td>
|
||||
<td>repeated map<sint32, <a href="#istio.mixer.v1.StringMap">StringMap</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckRequest"></a>
|
||||
### CheckRequest
|
||||
Used to get a thumbs-up/thumbs-down before performing an action.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.attributes"></a>
|
||||
<tr>
|
||||
<td><code>attributes</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td><p>The attributes to use for this request.</p><p>Mixer's configuration determines how these attributes are used to establish the result returned in the response.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.globalWordCount"></a>
|
||||
<tr>
|
||||
<td><code>globalWordCount</code></td>
|
||||
<td>uint32</td>
|
||||
<td>The number of words in the global dictionary, used with to populate the attributes. This value is used as a quick way to determine whether the client is using a dictionary that the server understands.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.deduplicationId"></a>
|
||||
<tr>
|
||||
<td><code>deduplicationId</code></td>
|
||||
<td>string</td>
|
||||
<td>Used for deduplicating <code>Check</code> calls in the case of failed RPCs and retries. This should be a UUID per call, where the same UUID is used for retries of the same call.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.quotas"></a>
|
||||
<tr>
|
||||
<td><code>quotas</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.CheckRequest.QuotaParams">QuotaParams</a>></td>
|
||||
<td>The individual quotas to allocate</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckRequest.QuotaParams"></a>
|
||||
### QuotaParams
|
||||
parameters for a quota allocation
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.QuotaParams.amount"></a>
|
||||
<tr>
|
||||
<td><code>amount</code></td>
|
||||
<td>int64</td>
|
||||
<td>Amount of quota to allocate</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.QuotaParams.bestEffort"></a>
|
||||
<tr>
|
||||
<td><code>bestEffort</code></td>
|
||||
<td>bool</td>
|
||||
<td>When true, supports returning less quota than what was requested.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckResponse"></a>
|
||||
### CheckResponse
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.precondition"></a>
|
||||
<tr>
|
||||
<td><code>precondition</code></td>
|
||||
<td><a href="#istio.mixer.v1.CheckResponse.PreconditionResult">PreconditionResult</a></td>
|
||||
<td>The precondition check results.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.quotas"></a>
|
||||
<tr>
|
||||
<td><code>quotas</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.CheckResponse.QuotaResult">QuotaResult</a>></td>
|
||||
<td>The resulting quota, one entry per requested quota.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult"></a>
|
||||
### PreconditionResult
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult.status"></a>
|
||||
<tr>
|
||||
<td><code>status</code></td>
|
||||
<td><a href="/docs/reference/api/status.html">Status</a></td>
|
||||
<td>A status code of OK indicates all preconditions were satisfied. Any other code indicates not all preconditions were satisfied and details describe why.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult.validDuration"></a>
|
||||
<tr>
|
||||
<td><code>validDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The amount of time for which this result can be considered valid.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult.validUseCount"></a>
|
||||
<tr>
|
||||
<td><code>validUseCount</code></td>
|
||||
<td>int32</td>
|
||||
<td>The number of uses for which this result can be considered valid.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult.attributes"></a>
|
||||
<tr>
|
||||
<td><code>attributes</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td><p>The attributes returned by Mixer.</p><p>The exact set of attributes returned is determined by the set of adapters Mixer is configured with. These attributes are used to ferry new attributes that Mixer derived based on the input set of attributes and its configuration.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.PreconditionResult.referencedAttributes"></a>
|
||||
<tr>
|
||||
<td><code>referencedAttributes</code></td>
|
||||
<td><a href="#istio.mixer.v1.ReferencedAttributes">ReferencedAttributes</a></td>
|
||||
<td>The total set of attributes that were used in producing the result along with matching conditions.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckResponse.QuotaResult"></a>
|
||||
### QuotaResult
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.QuotaResult.validDuration"></a>
|
||||
<tr>
|
||||
<td><code>validDuration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The amount of time for which this result can be considered valid.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.QuotaResult.grantedAmount"></a>
|
||||
<tr>
|
||||
<td><code>grantedAmount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The amount of granted quota. When <code>QuotaParams.bestEffort</code> is true, this will be >= 0. If <code>QuotaParams.bestEffort</code> is false, this will be either 0 or >= <code>QuotaParams.amount</code>.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.QuotaResult.referencedAttributes"></a>
|
||||
<tr>
|
||||
<td><code>referencedAttributes</code></td>
|
||||
<td><a href="#istio.mixer.v1.ReferencedAttributes">ReferencedAttributes</a></td>
|
||||
<td>The total set of attributes that were used in producing the result along with matching conditions.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReferencedAttributes"></a>
|
||||
### ReferencedAttributes
|
||||
Describes the attributes that were used to determine the response.
|
||||
This can be used to construct a response cache.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.words"></a>
|
||||
<tr>
|
||||
<td><code>words[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>The message-level dictionary. Refer to <a href="#istio.mixer.v1.Attributes">Attributes</a> for information on using dictionaries.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.attributeMatches"></a>
|
||||
<tr>
|
||||
<td><code>attributeMatches[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.ReferencedAttributes.AttributeMatch">AttributeMatch</a></td>
|
||||
<td>Describes a set of attributes.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch"></a>
|
||||
### AttributeMatch
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>sint32</td>
|
||||
<td>The name of the attribute. This is a dictionary index encoded in a manner identical to all strings in the <a href="#istio.mixer.v1.Attributes">Attributes</a> message.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.condition"></a>
|
||||
<tr>
|
||||
<td><code>condition</code></td>
|
||||
<td><a href="#istio.mixer.v1.ReferencedAttributes.Condition">Condition</a></td>
|
||||
<td>The kind of match against the attribute value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.AttributeMatch.regex"></a>
|
||||
<tr>
|
||||
<td><code>regex</code></td>
|
||||
<td>string</td>
|
||||
<td>The matching regex in the case of condition = REGEX</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.Condition"></a>
|
||||
### Condition
|
||||
How an attribute's value was matched
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.Condition.CONDITIONUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>CONDITIONUNSPECIFIED</td>
|
||||
<td>should not occur</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.Condition.ABSENCE"></a>
|
||||
<tr>
|
||||
<td>ABSENCE</td>
|
||||
<td>match when attribute doesn't exist</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.Condition.EXACT"></a>
|
||||
<tr>
|
||||
<td>EXACT</td>
|
||||
<td>match when attribute value is an exact byte-for-byte match</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReferencedAttributes.Condition.REGEX"></a>
|
||||
<tr>
|
||||
<td>REGEX</td>
|
||||
<td>match when attribute value matches the included regex</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReportRequest"></a>
|
||||
### ReportRequest
|
||||
Used to report telemetry after performing one or more actions.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportRequest.attributes"></a>
|
||||
<tr>
|
||||
<td><code>attributes[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td><p>The attributes to use for this request.</p><p>Each <code>Attributes</code> element represents the state of a single action. Multiple actions can be provided in a single message in order to improve communication efficiency. The client can accumulate a set of actions and send them all in one single message.</p><p>Although each <code>Attributes</code> message is semantically treated as an independent stand-alone entity unrelated to the other attributes within the message, this message format leverages delta-encoding between attribute messages in order to substantially reduce the request size and improve end-to-end efficiency. Each individual set of attributes is used to modify the previous set. This eliminates the need to redundantly send the same attributes multiple times over within a single request.</p><p>If a client is not sophisticated and doesn't want to use delta-encoding, a degenerate case is to include all attributes in every individual message.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportRequest.defaultWords"></a>
|
||||
<tr>
|
||||
<td><code>defaultWords[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td><p>The default message-level dictionary for all the attributes. Individual attribute messages can have their own dictionaries, but if they don't then this set of words, if it is provided, is used instead.</p><p>This makes it possible to share the same dictionary for all attributes in this request, which can substantially reduce the overall request size.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportRequest.globalWordCount"></a>
|
||||
<tr>
|
||||
<td><code>globalWordCount</code></td>
|
||||
<td>uint32</td>
|
||||
<td>The number of words in the global dictionary. To detect global dictionary out of sync between client and server.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReportResponse"></a>
|
||||
### ReportResponse
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
|
||||
<a name="istio.mixer.v1.StringMap"></a>
|
||||
### StringMap
|
||||
A map of string to string. The keys and values in this map are dictionary
|
||||
indices (see the [Attributes](#istio.mixer.v1.Attributes) message for an explanation)
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.StringMap.entries"></a>
|
||||
<tr>
|
||||
<td><code>entries</code></td>
|
||||
<td>repeated map<sint32, sint32></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,689 @@
|
|||
---
|
||||
title: Routing Rules
|
||||
overview: Generated documentation for Istio's Configuration Schemas
|
||||
|
||||
order: 1210
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [DestinationWeight](#istio.proxy.v1.config.DestinationWeight)
|
||||
(message)
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Abort](#istio.proxy.v1.config.HTTPFaultInjection.Abort)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Delay](#istio.proxy.v1.config.HTTPFaultInjection.Delay)
|
||||
(message)
|
||||
* [HTTPRedirect](#istio.proxy.v1.config.HTTPRedirect)
|
||||
(message)
|
||||
* [HTTPRetry](#istio.proxy.v1.config.HTTPRetry)
|
||||
(message)
|
||||
* [HTTPRetry.SimpleRetryPolicy](#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy)
|
||||
(message)
|
||||
* [HTTPRewrite](#istio.proxy.v1.config.HTTPRewrite)
|
||||
(message)
|
||||
* [HTTPTimeout](#istio.proxy.v1.config.HTTPTimeout)
|
||||
(message)
|
||||
* [HTTPTimeout.SimpleTimeoutPolicy](#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy)
|
||||
(message)
|
||||
* [IstioService](#istio.proxy.v1.config.IstioService)
|
||||
(message)
|
||||
* [MatchCondition](#istio.proxy.v1.config.MatchCondition)
|
||||
(message)
|
||||
* [MatchRequest](#istio.proxy.v1.config.MatchRequest)
|
||||
(message)
|
||||
* [RouteRule](#istio.proxy.v1.config.RouteRule)
|
||||
(message)
|
||||
* [StringMatch](#istio.proxy.v1.config.StringMatch)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationWeight"></a>
|
||||
### DestinationWeight
|
||||
Each routing rule is associated with one or more service versions (see
|
||||
glossary in beginning of document). Weights associated with the version
|
||||
determine the proportion of traffic it receives. For example, the
|
||||
following rule will route 25% of traffic for the "reviews" service to
|
||||
instances with the "v2" tag and the remaining traffic (i.e., 75%) to
|
||||
"v1".
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v2
|
||||
weight: 25
|
||||
- labels:
|
||||
version: v1
|
||||
weight: 75
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td>Optional destination uniquely identifies the destination service. If not specified, the value is inherited from the parent route rule.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Service version identifier for the destination service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.weight"></a>
|
||||
<tr>
|
||||
<td><code>weight</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. The proportion of traffic to be forwarded to the service version. (0-100). Sum of weights across destinations SHOULD BE == 100. If there is only destination in a rule, the weight value is assumed to be 100.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect"></a>
|
||||
### HTTPRedirect
|
||||
HTTPRedirect can be used to send a 302 redirect response to the caller,
|
||||
where the Authority/Host and the URI in the response can be swapped with
|
||||
the specified values. For example, the following route rule redirects
|
||||
requests for /v1/getProductRatings API on the ratings service to
|
||||
/v1/bookRatings provided by the bookratings service.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
request:
|
||||
headers:
|
||||
uri: /v1/getProductRatings
|
||||
redirect:
|
||||
uri: /v1/bookRatings
|
||||
authority: bookratings.default.svc.cluster.local
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Authority/Host portion of the URL with this value</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry"></a>
|
||||
### HTTPRetry
|
||||
Describes the retry policy to use when a HTTP request fails. For
|
||||
example, the following rule sets the maximum number of retries to 3 when
|
||||
calling ratings:v1 service, with a 2s timeout per retry attempt.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpReqRetries:
|
||||
simpleRetry:
|
||||
attempts: 3
|
||||
perTryTimeout: 2s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.simpleRetry"></a>
|
||||
<tr>
|
||||
<td><code>simpleRetry</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy">SimpleRetryPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy"></a>
|
||||
### SimpleRetryPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.attempts"></a>
|
||||
<tr>
|
||||
<td><code>attempts</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.perTryTimeout"></a>
|
||||
<tr>
|
||||
<td><code>perTryTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite"></a>
|
||||
### HTTPRewrite
|
||||
HTTPRewrite can be used to rewrite specific parts of a HTTP request
|
||||
before forwarding the request to the destination. Rewrite primitive can
|
||||
be used only with the DestinationWeights. The following example
|
||||
demonstrates how to rewrite the URL prefix for api call (/ratings) to
|
||||
ratings service before making the actual API call.
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
request:
|
||||
headers:
|
||||
uri:
|
||||
prefix: /ratings
|
||||
rewrite:
|
||||
uri: /v1/bookRatings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Authority/Host header with this value.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout"></a>
|
||||
### HTTPTimeout
|
||||
Describes HTTP request timeout. For example, the following rule sets a
|
||||
10 second timeout for calls to the ratings:v1 service
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
httpReqTimeout:
|
||||
simpleTimeout:
|
||||
timeout: 10s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.simpleTimeout"></a>
|
||||
<tr>
|
||||
<td><code>simpleTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy">SimpleTimeoutPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy"></a>
|
||||
### SimpleTimeoutPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.timeout"></a>
|
||||
<tr>
|
||||
<td><code>timeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Timeout for a HTTP request. Includes retries as well. Default 15s. format: 1h/1m/1s/1ms. MUST BE >=1ms. It is possible to control timeout per request by supplying the timeout value via x-envoy-upstream-rq-timeout-ms HTTP header.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.IstioService"></a>
|
||||
### IstioService
|
||||
IstioService identifies a service and optionally service version.
|
||||
The FQDN of the service is composed from the name, namespace, and implementation-specific domain suffix
|
||||
(e.g. on Kubernetes, "reviews" + "default" + "svc.cluster.local" -> "reviews.default.svc.cluster.local").
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>The short name of the service such as "foo".</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.namespace"></a>
|
||||
<tr>
|
||||
<td><code>namespace</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional namespace of the service. Defaults to value of metadata namespace field.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.domain"></a>
|
||||
<tr>
|
||||
<td><code>domain</code></td>
|
||||
<td>string</td>
|
||||
<td>Domain suffix used to construct the service FQDN in implementations that support such specification.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.service"></a>
|
||||
<tr>
|
||||
<td><code>service</code></td>
|
||||
<td>string</td>
|
||||
<td>The service FQDN.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.IstioService.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td><p>Optional one or more labels that uniquely identify the service version.</p><p><em>Note:</em> When used for a RouteRule destination, labels MUST be empty.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchCondition"></a>
|
||||
### MatchCondition
|
||||
Match condition specifies a set of criterion to be met in order for the
|
||||
route rule to be applied to the connection or HTTP request. The
|
||||
condition provides distinct set of conditions for each protocol with the
|
||||
intention that conditions apply only to the service ports that match the
|
||||
protocol. For example, the following route rule restricts the rule to
|
||||
match only requests originating from "reviews:v2", accessing ratings
|
||||
service where the URL path starts with /ratings/v2/ and the request
|
||||
contains a "cookie" with value "user=jason",
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default
|
||||
spec:
|
||||
destination:
|
||||
name: ratings
|
||||
match:
|
||||
source:
|
||||
name: reviews
|
||||
labels:
|
||||
version: v2
|
||||
request:
|
||||
headers:
|
||||
cookie:
|
||||
regex: "^(.*?;)?(user=jason)(;.*)?"
|
||||
uri:
|
||||
prefix: "/ratings/v2/"
|
||||
|
||||
|
||||
MatchCondition CANNOT be empty. At least one source or
|
||||
request header must be specified.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.source"></a>
|
||||
<tr>
|
||||
<td><code>source</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td>Identifies the service initiating a connection or a request.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.request"></a>
|
||||
<tr>
|
||||
<td><code>request</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MatchRequest">MatchRequest</a></td>
|
||||
<td>Attributes of an HTTP request to match.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchRequest"></a>
|
||||
### MatchRequest
|
||||
MatchRequest specifies the attributes of an HTTP request to be used for matching a request.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchRequest.headers"></a>
|
||||
<tr>
|
||||
<td><code>headers</code></td>
|
||||
<td>repeated map<string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>></td>
|
||||
<td><p>Set of HTTP match conditions based on HTTP/1.1, HTTP/2, GRPC request metadata, such as <em>uri</em>, <em>scheme</em>, <em>authority</em>. The header keys must be lowercase and use hyphen as the separator, e.g. <em>x-request-id</em>.</p><p>Header values are case-sensitive and formatted as follows:</p><p><em>exact: "value"</em> or just <em>"value"</em> for exact string match</p><p><em>prefix: "value"</em> for prefix-based match</p><p><em>regex: "value"</em> for ECMAscript style regex-based match</p><p><em>Note 1:</em> The keys <em>uri</em>, <em>scheme</em>, <em>method</em>, and <em>authority</em> correspond to URI, protocol scheme (e.g., HTTP, HTTPS), HTTP method (e.g., GET, POST), and the HTTP Host header respectively.</p><p><em>Note 2:</em> <em>uri</em> can be used to perform URL matches. For all HTTP headers including <em>uri</em>, exact, prefix and ECMA style regular expression matches are supported.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.RouteRule"></a>
|
||||
### RouteRule
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIstio.proxy.v1.config.RouteRuleDescriptionSubsectionSubsectionSubsection"></a>
|
||||
#### Glossary & concepts
|
||||
*Service* is a unit of an application with a unique name that other services
|
||||
use to refer to the functionality being called. Service instances are
|
||||
pods/VMs/containers that implement the service.
|
||||
|
||||
*Service versions* - In a continuous deployment scenario, for a given service,
|
||||
there can be multiple sets of instances running potentially different
|
||||
variants of the application binary. These variants are not necessarily
|
||||
different API versions. They could be iterative changes to the same service,
|
||||
deployed in different environments (prod, staging, dev, etc.). Common
|
||||
scenarios where this occurs include A/B testing, canary rollouts, etc. The
|
||||
choice of a particular version can be decided based on various criterion
|
||||
(headers, url, etc.) and/or by weights assigned to each version. Each
|
||||
service has a default version consisting of all its instances.
|
||||
|
||||
*Source* - downstream client (browser or another service) calling the
|
||||
Envoy proxy/sidecar (typically to reach another service).
|
||||
|
||||
*Destination* - The remote upstream service to which the Envoy proxy/sidecar is
|
||||
talking to, on behalf of the source service. There can be one or more
|
||||
service versions for a given service (see the discussion on versions above).
|
||||
Envoy would choose the version based on various routing rules.
|
||||
|
||||
*Access model* - Applications address only the destination service
|
||||
without knowledge of individual service versions. The actual choice of
|
||||
the version is determined by Envoy, enabling the application code to
|
||||
decouple itself from the evolution of dependent services.
|
||||
|
||||
|
||||
|
||||
Route rule provides a custom routing policy based on the source and
|
||||
destination service versions and connection/request metadata. The rule
|
||||
must provide a set of conditions for each protocol (TCP, UDP, HTTP) that
|
||||
the destination service exposes on its ports.
|
||||
|
||||
The rule applies only to the ports on the destination service for which
|
||||
it provides protocol-specific match condition, e.g. if the rule does not
|
||||
specify TCP condition, the rule does not apply to TCP traffic towards
|
||||
the destination service.
|
||||
|
||||
For example, a simple rule to send 100% of incoming traffic for a
|
||||
"reviews" service to version "v1" can be specified as follows:
|
||||
|
||||
|
||||
metadata:
|
||||
name: my-rule
|
||||
namespace: default # optional (default is "default")
|
||||
spec:
|
||||
destination:
|
||||
name: reviews
|
||||
namespace: my-namespace # optional (default is metadata namespace field)
|
||||
route:
|
||||
- labels:
|
||||
version: v1
|
||||
weight: 100
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.IstioService">IstioService</a></td>
|
||||
<td><p>REQUIRED: Destination uniquely identifies the destination associated with this routing rule. This field is applicable for hostname-based resolution for HTTP traffic as well as IP-based resolution for TCP/UDP traffic.</p><p><em>Note:</em> The route rule destination specification represents all version of the service and therefore the IstioService's labels field MUST be empty.</p></td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.precedence"></a>
|
||||
<tr>
|
||||
<td><code>precedence</code></td>
|
||||
<td>int32</td>
|
||||
<td>RECOMMENDED. Precedence is used to disambiguate the order of application of rules for the same destination service. A higher number takes priority. If not specified, the value is assumed to be 0. The order of application for rules with the same precedence is unspecified.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.match"></a>
|
||||
<tr>
|
||||
<td><code>match</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.MatchCondition">MatchCondition</a></td>
|
||||
<td>Match condtions to be satisfied for the route rule to be activated. If match is omitted, the route rule applies only to HTTP traffic.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.route"></a>
|
||||
<tr>
|
||||
<td><code>route[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.DestinationWeight">DestinationWeight</a></td>
|
||||
<td>REQUIRED (route|redirect). A routing rule can either redirect traffic or forward traffic. The forwarding target can be one of several versions of a service (see glossary in beginning of document). Weights associated with the service version determine the proportion of traffic it receives.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.redirect"></a>
|
||||
<tr>
|
||||
<td><code>redirect</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRedirect">HTTPRedirect</a></td>
|
||||
<td>REQUIRED (route|redirect). A routing rule can either redirect traffic or forward traffic. The redirect primitive can be used to send a HTTP 302 redirect to a different URI or Authority.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.rewrite"></a>
|
||||
<tr>
|
||||
<td><code>rewrite</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRewrite">HTTPRewrite</a></td>
|
||||
<td>Rewrite HTTP URIs and Authority headers. Rewrite cannot be used with Redirect primitive. Rewrite will be performed before forwarding.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.websocketUpgrade"></a>
|
||||
<tr>
|
||||
<td><code>websocketUpgrade</code></td>
|
||||
<td>bool</td>
|
||||
<td>Indicates that a HTTP/1.1 client connection to this particular route should be allowed (and expected) to upgrade to a WebSocket connection. The default is false. Envoy expects the first request to this route to contain the WebSocket upgrade headers. Otherwise, the request will be rejected.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpReqTimeout"></a>
|
||||
<tr>
|
||||
<td><code>httpReqTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout">HTTPTimeout</a></td>
|
||||
<td>Timeout policy for HTTP requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpReqRetries"></a>
|
||||
<tr>
|
||||
<td><code>httpReqRetries</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry">HTTPRetry</a></td>
|
||||
<td>Retry policy for HTTP requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.RouteRule.httpFault"></a>
|
||||
<tr>
|
||||
<td><code>httpFault</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection">HTTPFaultInjection</a></td>
|
||||
<td>Fault injection policy to apply on HTTP traffic</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.StringMatch"></a>
|
||||
### StringMatch
|
||||
Describes how to match a given string in HTTP headers. Match is case-sensitive.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.exact"></a>
|
||||
<tr>
|
||||
<td><code>exact</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>exact string match</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.prefix"></a>
|
||||
<tr>
|
||||
<td><code>prefix</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>prefix-based match</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.StringMatch.regex"></a>
|
||||
<tr>
|
||||
<td><code>regex</code></td>
|
||||
<td>string (oneof )</td>
|
||||
<td>ECMAscript style regex-based match</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: checknothing Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1150
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcChecknothingIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#checknothing.Template)
|
||||
(message)
|
||||
|
||||
<a name="checknothing.Template"></a>
|
||||
### Template
|
||||
CheckNothing represents an empty block of data that is used for Check-capable
|
||||
adapters which don't require any parameters. This is primarily intended for testing
|
||||
scenarios.
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: Mixer Templates
|
||||
overview: Generated documentation for Mixer's Templates.
|
||||
|
||||
order: 2000
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
{% include section-index.html %}
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: listentry Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1160
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcListentryIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#listentry.Template)
|
||||
(message)
|
||||
|
||||
<a name="listentry.Template"></a>
|
||||
### Template
|
||||
ListEntry is used to verify the presence/absence of a string
|
||||
within a list.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="listentry.Template.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>string</td>
|
||||
<td>Specifies the entry to verify in the list.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
title: logentry Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1170
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.config.descriptorIndex"></a>
|
||||
### Index
|
||||
|
||||
* [ValueType](#istio.mixer.v1.config.descriptor.ValueType)
|
||||
(enum)
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType"></a>
|
||||
### ValueType
|
||||
ValueType describes the types that values in the Istio system can take. These
|
||||
are used to describe the type of Attributes at run time, describe the type of
|
||||
the result of evaluating an expression, and to describe the runtime type of
|
||||
fields of other descriptors.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>VALUETYPEUNSPECIFIED</td>
|
||||
<td>Invalid, default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRING"></a>
|
||||
<tr>
|
||||
<td>STRING</td>
|
||||
<td>An undiscriminated variable-length string.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.INT64"></a>
|
||||
<tr>
|
||||
<td>INT64</td>
|
||||
<td>An undiscriminated 64-bit signed integer.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DOUBLE"></a>
|
||||
<tr>
|
||||
<td>DOUBLE</td>
|
||||
<td>An undiscriminated 64-bit floating-point value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.BOOL"></a>
|
||||
<tr>
|
||||
<td>BOOL</td>
|
||||
<td>An undiscriminated boolean value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.TIMESTAMP"></a>
|
||||
<tr>
|
||||
<td>TIMESTAMP</td>
|
||||
<td>A point in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.IPADDRESS"></a>
|
||||
<tr>
|
||||
<td>IPADDRESS</td>
|
||||
<td>An IP address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.EMAILADDRESS"></a>
|
||||
<tr>
|
||||
<td>EMAILADDRESS</td>
|
||||
<td>An email address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.URI"></a>
|
||||
<tr>
|
||||
<td>URI</td>
|
||||
<td>A URI.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DNSNAME"></a>
|
||||
<tr>
|
||||
<td>DNSNAME</td>
|
||||
<td>A DNS name.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DURATION"></a>
|
||||
<tr>
|
||||
<td>DURATION</td>
|
||||
<td>A span between two points in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRINGMAP"></a>
|
||||
<tr>
|
||||
<td>STRINGMAP</td>
|
||||
<td>A map string -> string, typically used by headers.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcLogentry"></a>
|
||||
## Package logentry
|
||||
|
||||
<a name="rpcLogentryIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#logentry.Template)
|
||||
(message)
|
||||
|
||||
<a name="logentry.Template"></a>
|
||||
### Template
|
||||
LogEntry represents an individual entry within a log.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="logentry.Template.variables"></a>
|
||||
<tr>
|
||||
<td><code>variables</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Variables that are delivered for each log entry.</td>
|
||||
</tr>
|
||||
<a name="logentry.Template.timestamp"></a>
|
||||
<tr>
|
||||
<td><code>timestamp</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a></td>
|
||||
<td>Timestamp is the time value for the log entry</td>
|
||||
</tr>
|
||||
<a name="logentry.Template.severity"></a>
|
||||
<tr>
|
||||
<td><code>severity</code></td>
|
||||
<td>string</td>
|
||||
<td>Severity indicates the importance of the log entry.</td>
|
||||
</tr>
|
||||
<a name="logentry.Template.monitoredResourceType"></a>
|
||||
<tr>
|
||||
<td><code>monitoredResourceType</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. An expression to compute the type of the monitored resource this log entry is being recorded on. If the logging backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
|
||||
</tr>
|
||||
<a name="logentry.Template.monitoredResourceDimensions"></a>
|
||||
<tr>
|
||||
<td><code>monitoredResourceDimensions</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Optional. A set of expressions that will form the dimensions of the monitored resource this log entry is being recorded on. If the logging backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
---
|
||||
title: metric Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1180
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.config.descriptorIndex"></a>
|
||||
### Index
|
||||
|
||||
* [ValueType](#istio.mixer.v1.config.descriptor.ValueType)
|
||||
(enum)
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType"></a>
|
||||
### ValueType
|
||||
ValueType describes the types that values in the Istio system can take. These
|
||||
are used to describe the type of Attributes at run time, describe the type of
|
||||
the result of evaluating an expression, and to describe the runtime type of
|
||||
fields of other descriptors.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>VALUETYPEUNSPECIFIED</td>
|
||||
<td>Invalid, default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRING"></a>
|
||||
<tr>
|
||||
<td>STRING</td>
|
||||
<td>An undiscriminated variable-length string.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.INT64"></a>
|
||||
<tr>
|
||||
<td>INT64</td>
|
||||
<td>An undiscriminated 64-bit signed integer.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DOUBLE"></a>
|
||||
<tr>
|
||||
<td>DOUBLE</td>
|
||||
<td>An undiscriminated 64-bit floating-point value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.BOOL"></a>
|
||||
<tr>
|
||||
<td>BOOL</td>
|
||||
<td>An undiscriminated boolean value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.TIMESTAMP"></a>
|
||||
<tr>
|
||||
<td>TIMESTAMP</td>
|
||||
<td>A point in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.IPADDRESS"></a>
|
||||
<tr>
|
||||
<td>IPADDRESS</td>
|
||||
<td>An IP address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.EMAILADDRESS"></a>
|
||||
<tr>
|
||||
<td>EMAILADDRESS</td>
|
||||
<td>An email address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.URI"></a>
|
||||
<tr>
|
||||
<td>URI</td>
|
||||
<td>A URI.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DNSNAME"></a>
|
||||
<tr>
|
||||
<td>DNSNAME</td>
|
||||
<td>A DNS name.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DURATION"></a>
|
||||
<tr>
|
||||
<td>DURATION</td>
|
||||
<td>A span between two points in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRINGMAP"></a>
|
||||
<tr>
|
||||
<td>STRINGMAP</td>
|
||||
<td>A map string -> string, typically used by headers.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcMetric"></a>
|
||||
## Package metric
|
||||
|
||||
<a name="rpcMetricIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#metric.Template)
|
||||
(message)
|
||||
|
||||
<a name="metric.Template"></a>
|
||||
### Template
|
||||
Metric represents a single piece of data to report.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="metric.Template.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a></td>
|
||||
<td>The value being reported.</td>
|
||||
</tr>
|
||||
<a name="metric.Template.dimensions"></a>
|
||||
<tr>
|
||||
<td><code>dimensions</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>The unique identity of the particular metric to report.</td>
|
||||
</tr>
|
||||
<a name="metric.Template.monitoredResourceType"></a>
|
||||
<tr>
|
||||
<td><code>monitoredResourceType</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. An expression to compute the type of the monitored resource this metric is being reported on. If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
|
||||
</tr>
|
||||
<a name="metric.Template.monitoredResourceDimensions"></a>
|
||||
<tr>
|
||||
<td><code>monitoredResourceDimensions</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Optional. A set of expressions that will form the dimensions of the monitored resource this metric is being reported on. If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
title: quota Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1190
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.config.descriptorIndex"></a>
|
||||
### Index
|
||||
|
||||
* [ValueType](#istio.mixer.v1.config.descriptor.ValueType)
|
||||
(enum)
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType"></a>
|
||||
### ValueType
|
||||
ValueType describes the types that values in the Istio system can take. These
|
||||
are used to describe the type of Attributes at run time, describe the type of
|
||||
the result of evaluating an expression, and to describe the runtime type of
|
||||
fields of other descriptors.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>VALUETYPEUNSPECIFIED</td>
|
||||
<td>Invalid, default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRING"></a>
|
||||
<tr>
|
||||
<td>STRING</td>
|
||||
<td>An undiscriminated variable-length string.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.INT64"></a>
|
||||
<tr>
|
||||
<td>INT64</td>
|
||||
<td>An undiscriminated 64-bit signed integer.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DOUBLE"></a>
|
||||
<tr>
|
||||
<td>DOUBLE</td>
|
||||
<td>An undiscriminated 64-bit floating-point value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.BOOL"></a>
|
||||
<tr>
|
||||
<td>BOOL</td>
|
||||
<td>An undiscriminated boolean value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.TIMESTAMP"></a>
|
||||
<tr>
|
||||
<td>TIMESTAMP</td>
|
||||
<td>A point in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.IPADDRESS"></a>
|
||||
<tr>
|
||||
<td>IPADDRESS</td>
|
||||
<td>An IP address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.EMAILADDRESS"></a>
|
||||
<tr>
|
||||
<td>EMAILADDRESS</td>
|
||||
<td>An email address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.URI"></a>
|
||||
<tr>
|
||||
<td>URI</td>
|
||||
<td>A URI.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DNSNAME"></a>
|
||||
<tr>
|
||||
<td>DNSNAME</td>
|
||||
<td>A DNS name.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DURATION"></a>
|
||||
<tr>
|
||||
<td>DURATION</td>
|
||||
<td>A span between two points in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRINGMAP"></a>
|
||||
<tr>
|
||||
<td>STRINGMAP</td>
|
||||
<td>A map string -> string, typically used by headers.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcQuota"></a>
|
||||
## Package quota
|
||||
|
||||
<a name="rpcQuotaIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#quota.Template)
|
||||
(message)
|
||||
|
||||
<a name="quota.Template"></a>
|
||||
### Template
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="quota.Template.dimensions"></a>
|
||||
<tr>
|
||||
<td><code>dimensions</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>The unique identity of the particular quota to manipulate.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: reportnothing Config
|
||||
overview: Generated documentation for Mixer's Template Configuration Schema
|
||||
|
||||
order: 1200
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcReportnothingIndex"></a>
|
||||
### Index
|
||||
|
||||
* [Template](#reportnothing.Template)
|
||||
(message)
|
||||
|
||||
<a name="reportnothing.Template"></a>
|
||||
### Template
|
||||
ReportNothing represents an empty block of data that is used for Report-capable
|
||||
adapters which don't require any parameters. This is primarily intended for testing
|
||||
scenarios.
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
Loading…
Reference in New Issue