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:
Zack Butcher 2017-09-22 16:00:11 -07:00 committed by Shriram Rajagopalan
parent 391388294c
commit 8c5fdb055d
24 changed files with 6905 additions and 0 deletions

View File

@ -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>

View File

@ -0,0 +1,12 @@
---
title: Mixer Adapters
overview: Generated documentation for Mixer's adapters.
order: 2000
layout: docs
type: markdown
---
{% include section-index.html %}

View File

@ -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>

View File

@ -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 (&gt; 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>

View File

@ -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&lt;string, string&gt;</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>

View File

@ -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>

View File

@ -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&lt;string, <a href="#adapter.stackdriver.config.Params.MetricInfo">MetricInfo</a>&gt;</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&lt;string, <a href="#adapter.stackdriver.config.Params.LogInfo">LogInfo</a>&gt;</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>

View File

@ -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&lt;string, <a href="#adapter.statsd.config.Params.MetricInfo">MetricInfo</a>&gt;</td>
<td>Map of metric name -&gt; 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>

View File

@ -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&lt;string, <a href="#adapter.stdio.config.Params.Level">Level</a>&gt;</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>

View File

@ -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

View File

@ -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&lt;string, string&gt;</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 &gt;=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 &gt;=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 &gt;=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&lt;string, string&gt;</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&lt;string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>&gt;</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>

View File

@ -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 &gt;=1ms.</td>
</tr>
</table>

View File

@ -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 &gt;=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 &gt;=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 &gt;=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 &gt;=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 &gt;=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 &gt;=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

View File

@ -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 services 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&lt;sint32, sint32&gt;</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&lt;sint32, int64&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.doubles"></a>
<tr>
<td><code>doubles</code></td>
<td>repeated map&lt;sint32, double&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.bools"></a>
<tr>
<td><code>bools</code></td>
<td>repeated map&lt;sint32, bool&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.timestamps"></a>
<tr>
<td><code>timestamps</code></td>
<td>repeated map&lt;sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a>&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.durations"></a>
<tr>
<td><code>durations</code></td>
<td>repeated map&lt;sint32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.bytes"></a>
<tr>
<td><code>bytes</code></td>
<td>repeated map&lt;sint32, bytes&gt;</td>
<td></td>
</tr>
<a name="istio.mixer.v1.Attributes.stringMaps"></a>
<tr>
<td><code>stringMaps</code></td>
<td>repeated map&lt;sint32, <a href="#istio.mixer.v1.StringMap">StringMap</a>&gt;</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&lt;string, <a href="#istio.mixer.v1.CheckRequest.QuotaParams">QuotaParams</a>&gt;</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&lt;string, <a href="#istio.mixer.v1.CheckResponse.QuotaResult">QuotaResult</a>&gt;</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 &gt;= 0. If <code>QuotaParams.bestEffort</code> is false, this will be either 0 or &gt;= <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&lt;sint32, sint32&gt;</td>
<td></td>
</tr>
</table>

View File

@ -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&lt;string, string&gt;</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 &gt;=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 &gt;=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 &gt;=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&lt;string, string&gt;</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&lt;string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>&gt;</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>

View File

@ -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.__

View File

@ -0,0 +1,12 @@
---
title: Mixer Templates
overview: Generated documentation for Mixer's Templates.
order: 2000
layout: docs
type: markdown
---
{% include section-index.html %}

View File

@ -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>

View File

@ -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 -&gt; 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&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</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&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</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>

View File

@ -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 -&gt; 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&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</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&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</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>

View File

@ -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 -&gt; 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&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td>
<td>The unique identity of the particular quota to manipulate.</td>
</tr>
</table>

View File

@ -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.__