mirror of https://github.com/istio/istio.io.git
Delete *.old files (#635)
* Delete old files * Prevent indexing of the 0.1 site so it doesn't show up in search results.
This commit is contained in:
parent
ac13ddb86c
commit
5389f5b338
|
|
@ -1,393 +0,0 @@
|
|||
---
|
||||
title: Mixer Service
|
||||
overview: Mixer's API Surface
|
||||
|
||||
order: 1200
|
||||
draft: true
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
<a name="istio.mixer.v1.Mixer"></a>
|
||||
### Mixer
|
||||
Mixer provides three core features:
|
||||
|
||||
- *Precondition Checking*. Enables callers to verify a number of preconditions
|
||||
before responding to an incoming request from a service consumer.
|
||||
Preconditions can include whether the service consumer is properly
|
||||
authenticated, is on the service’s whitelist, passes ACL checks, and more.
|
||||
|
||||
- *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.
|
||||
|
||||
- *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.
|
||||
|
||||
<a name="istio.mixer.v1.Mixer.Check"></a>
|
||||
#### Check
|
||||
<pre>
|
||||
rpc Check(<a href="#istio.mixer.v1.CheckRequest">CheckRequest</a>) returns (<a href="#istio.mixer.v1.CheckResponse">CheckResponse</a>)
|
||||
</pre>
|
||||
Checks preconditions before performing an operation.
|
||||
The preconditions enforced depend on the set of supplied attributes and
|
||||
the active configuration.
|
||||
|
||||
<a name="istio.mixer.v1.Mixer.Quota"></a>
|
||||
#### Quota
|
||||
<pre>
|
||||
rpc Quota(<a href="#istio.mixer.v1.QuotaRequest">QuotaRequest</a>) returns (<a href="#istio.mixer.v1.QuotaResponse">QuotaResponse</a>)
|
||||
</pre>
|
||||
Quota allocates and releases quota.
|
||||
|
||||
<a name="istio.mixer.v1.Mixer.Report"></a>
|
||||
#### Report
|
||||
<pre>
|
||||
rpc Report(<a href="#istio.mixer.v1.ReportRequest">ReportRequest</a>) returns (<a href="#istio.mixer.v1.ReportResponse">ReportResponse</a>)
|
||||
</pre>
|
||||
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
|
||||
An instance of this message is delivered to Mixer with every
|
||||
API call.
|
||||
|
||||
The general idea is to leverage the stateful gRPC streams from the
|
||||
Envoy to Mixer to keep to a minimum the 'attribute chatter'.
|
||||
Only delta attributes are sent over, multiple concurrent attribute
|
||||
contexts can be used to avoid thrashing, and attribute indices are used to
|
||||
keep the wire protocol maximally efficient.
|
||||
|
||||
Producing this message is the responsibility of Mixer's client
|
||||
library which is linked into different proxy implementations.
|
||||
|
||||
The processing order for this state in Mixer is:
|
||||
|
||||
* Any new dictionary is applied
|
||||
|
||||
* The requested attribute context is looked up. If no such context has been defined, a
|
||||
new context is automatically created and initialized to the empty state. When a gRPC
|
||||
stream is first created, there are no attribute contexts for the stream.
|
||||
|
||||
* If resetContext is true, then the attribute context is reset to the
|
||||
empty state.
|
||||
|
||||
* All attributes to deleted are removed from the attribute context.
|
||||
|
||||
* All attribute changes are applied to the attribute context.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.dictionary"></a>
|
||||
<tr>
|
||||
<td><code>dictionary</code></td>
|
||||
<td>repeated map<int32, string></td>
|
||||
<td><p>A dictionary that provides a mapping of shorthand index values to attribute names.</p><p>This is intended to leverage the stateful gRPC stream from the proxy to the mixer. This dictionary is sent over only when a stream to the mixer is first established and when the proxy's configuration changes and different attributes may be produced.</p><p>Once a dictionary has been sent over, it stays in effect until a new dictionary is sent to replace it. The first request sent on a stream must include a dictionary, otherwise the mixer can't process any attribute updates.</p><p>Dictionaries are independent of the attribute context and are thus global to each gRPC stream.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.attributeContext"></a>
|
||||
<tr>
|
||||
<td><code>attributeContext</code></td>
|
||||
<td>int32</td>
|
||||
<td><p>The attribute context against which to operate.</p><p>The mixer keeps different contexts live for any proxy gRPC stream. This allows the proxy to maintain multiple concurrent 'bags of attributes' within the mixer.</p><p>If the proxy doesn't want to leverage multiple contexts, it just passes 0 here for every request.</p><p>The proxy is configured to use a maximum number of attribute contexts in order to prevent an explosion of contexts in the mixer's memory space.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.resetContext"></a>
|
||||
<tr>
|
||||
<td><code>resetContext</code></td>
|
||||
<td>bool</td>
|
||||
<td><p>When true, resets the current attribute context to the empty state before applying any incoming attributes.</p><p>Resetting contexts is useful to constrain the amount of resources used by the mixer. The proxy needs to intelligently manage a pool of contexts. It may be useful to reset a context when certain big events happen, such as when an HTTP2 connection into the proxy terminates.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.stringAttributes"></a>
|
||||
<tr>
|
||||
<td><code>stringAttributes</code></td>
|
||||
<td>repeated map<int32, string></td>
|
||||
<td>Attributes being updated within the specified attribute context. These maps add and/or overwrite the context's current set of attributes.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.int64Attributes"></a>
|
||||
<tr>
|
||||
<td><code>int64Attributes</code></td>
|
||||
<td>repeated map<int32, int64></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.doubleAttributes"></a>
|
||||
<tr>
|
||||
<td><code>doubleAttributes</code></td>
|
||||
<td>repeated map<int32, double></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.boolAttributes"></a>
|
||||
<tr>
|
||||
<td><code>boolAttributes</code></td>
|
||||
<td>repeated map<int32, bool></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.timestampAttributes"></a>
|
||||
<tr>
|
||||
<td><code>timestampAttributes</code></td>
|
||||
<td>repeated map<int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.durationAttributes"></a>
|
||||
<tr>
|
||||
<td><code>durationAttributes</code></td>
|
||||
<td>repeated map<int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.bytesAttributes"></a>
|
||||
<tr>
|
||||
<td><code>bytesAttributes</code></td>
|
||||
<td>repeated map<int32, bytes></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.stringMapAttributes"></a>
|
||||
<tr>
|
||||
<td><code>stringMapAttributes</code></td>
|
||||
<td>repeated map<int32, <a href="#istio.mixer.v1.StringMap">StringMap</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.deletedAttributes"></a>
|
||||
<tr>
|
||||
<td><code>deletedAttributes[]</code></td>
|
||||
<td>repeated int32</td>
|
||||
<td>Attributes that should be removed from the specified attribute context. Deleting attributes which aren't currently in the attribute context is not considered an error.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.timestampAttributesHACK"></a>
|
||||
<tr>
|
||||
<td><code>timestampAttributesHACK</code></td>
|
||||
<td>repeated map<int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.Attributes.durationAttributesHACK"></a>
|
||||
<tr>
|
||||
<td><code>durationAttributesHACK</code></td>
|
||||
<td>repeated map<int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a>></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.CheckRequest"></a>
|
||||
### CheckRequest
|
||||
Used to verify preconditions before performing an action.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index within the stream for this request, used to match to responses</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckRequest.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this request</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.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index of the request this response is associated with</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this response</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.result"></a>
|
||||
<tr>
|
||||
<td><code>result</code></td>
|
||||
<td><a href="./status.html">Status</a></td>
|
||||
<td>Indicates whether or not the preconditions succeeded</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.CheckResponse.expiration"></a>
|
||||
<tr>
|
||||
<td><code>expiration</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, given the same inputs</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.QuotaRequest"></a>
|
||||
### QuotaRequest
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index within the stream for this request, used to match to responses</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this request</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.deduplicationId"></a>
|
||||
<tr>
|
||||
<td><code>deduplicationId</code></td>
|
||||
<td>string</td>
|
||||
<td>Used for deduplicating quota allocation/free 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 quota allocation call.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.quota"></a>
|
||||
<tr>
|
||||
<td><code>quota</code></td>
|
||||
<td>string</td>
|
||||
<td>The quota to allocate from.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.amount"></a>
|
||||
<tr>
|
||||
<td><code>amount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The amount of quota to allocate.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaRequest.bestEffort"></a>
|
||||
<tr>
|
||||
<td><code>bestEffort</code></td>
|
||||
<td>bool</td>
|
||||
<td>If true, allows a response to return less quota than requested. When false, the exact requested amount is returned or 0 if not enough quota was available.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.QuotaResponse"></a>
|
||||
### QuotaResponse
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaResponse.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index of the request this response is associated with.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaResponse.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this response</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaResponse.result"></a>
|
||||
<tr>
|
||||
<td><code>result</code></td>
|
||||
<td><a href="./status.html">Status</a></td>
|
||||
<td>Indicates whether the quota request was successfully processed.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaResponse.expiration"></a>
|
||||
<tr>
|
||||
<td><code>expiration</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>The amount of time the returned quota can be considered valid, this is 0 for non-expiring quotas.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.QuotaResponse.amount"></a>
|
||||
<tr>
|
||||
<td><code>amount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The total amount of quota returned, may be less than requested.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReportRequest"></a>
|
||||
### ReportRequest
|
||||
Used to report telemetry after performing an action.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportRequest.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index within the stream for this request, used to match to responses</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportRequest.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this request</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.ReportResponse"></a>
|
||||
### ReportResponse
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportResponse.requestIndex"></a>
|
||||
<tr>
|
||||
<td><code>requestIndex</code></td>
|
||||
<td>int64</td>
|
||||
<td>Index of the request this response is associated with</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportResponse.attributeUpdate"></a>
|
||||
<tr>
|
||||
<td><code>attributeUpdate</code></td>
|
||||
<td><a href="#istio.mixer.v1.Attributes">Attributes</a></td>
|
||||
<td>The attributes to use for this response</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.ReportResponse.result"></a>
|
||||
<tr>
|
||||
<td><code>result</code></td>
|
||||
<td><a href="./status.html">Status</a></td>
|
||||
<td>Indicates whether the report was processed or not</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.StringMap"></a>
|
||||
### StringMap
|
||||
A map of string to string. The keys in these maps are from the current
|
||||
dictionary.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.StringMap.map"></a>
|
||||
<tr>
|
||||
<td><code>map</code></td>
|
||||
<td>repeated map<int32, string></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
title: denier
|
||||
overview: denier adapter configuration schema
|
||||
|
||||
order: 1000
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.denier.Params.status"></a>
|
||||
<tr>
|
||||
<td><code>status</code></td>
|
||||
<td><a href="/docs/reference/api/mixer/status.html">Status</a></td>
|
||||
<td>The error to return when denying a request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
title: genericListChecker
|
||||
overview: genericListChecker adapter configuration schema
|
||||
|
||||
order: 10
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.genericListChecker.Params.listEntries"></a>
|
||||
<tr>
|
||||
<td><code>listEntries[]</code></td>
|
||||
<td>repeated string</td>
|
||||
<td>The set of entries in the list to check against</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
---
|
||||
title: kubernetes
|
||||
overview: kubernetes adapter configuration schema
|
||||
|
||||
order: 30
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.kubernetes.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,
|
||||
target, 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).
|
||||
next field id: 19
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.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>Default: "" (unset)</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.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.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.Params.targetUidInputName"></a>
|
||||
<tr>
|
||||
<td><code>targetUidInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the UID for the target pod for traffic is identified in the input map.</p><p>Default: targetUID</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.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.Params.targetServiceInputName"></a>
|
||||
<tr>
|
||||
<td><code>targetServiceInputName</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Configures how the identifier for the target service is populated in the input map (if at all). When supplied, this value will be used (after successful normalization) in place of the value derived from the pod cache for the target pod in the generated map of output values.</p><p>Default: targetService</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.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.Params.podLabelForService"></a>
|
||||
<tr>
|
||||
<td><code>podLabelForService</code></td>
|
||||
<td>string</td>
|
||||
<td><p>In order to extract the service associated with a source, target, 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.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.Params.targetPrefix"></a>
|
||||
<tr>
|
||||
<td><code>targetPrefix</code></td>
|
||||
<td>string</td>
|
||||
<td><p>The prefix used for target pod output value names.</p><p>Default: target</p></td>
|
||||
</tr>
|
||||
<a name="adapter.kubernetes.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.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.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.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.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.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.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.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>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
title: listchecker
|
||||
overview: listchecker adapter configuration schema
|
||||
|
||||
order: 20
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.listchecker.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.listchecker.Params.providerUrl"></a>
|
||||
<tr>
|
||||
<td><code>providerUrl</code></td>
|
||||
<td>string</td>
|
||||
<td>Where to find the list to check against</td>
|
||||
</tr>
|
||||
<a name="adapter.listchecker.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.listchecker.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>
|
||||
<a name="adapter.listchecker.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.listchecker.Params.ttl"></a>
|
||||
<tr>
|
||||
<td><code>ttl</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Indicates how long to keep a list before discarding it. Typically, the TTL value should be set to noticeably longer (> 2x) than the refresh interval to ensure continued operation in the face of transient server outages.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
title: memQuota
|
||||
overview: memQuota adapter configuration schema
|
||||
|
||||
order: 40
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.memQuota.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.memQuota.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>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
title: prometheus
|
||||
overview: prometheus adapter configuration schema
|
||||
|
||||
order: 50
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.prometheus.Params"></a>
|
||||
### Params
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
title: redisquota
|
||||
overview: redisquota adapter configuration schema
|
||||
|
||||
order: 60
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.redisquota.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.redisquota.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>
|
||||
<a name="adapter.redisquota.Params.redisServerUrl"></a>
|
||||
<tr>
|
||||
<td><code>redisServerUrl</code></td>
|
||||
<td>string</td>
|
||||
<td>Redis network address</td>
|
||||
</tr>
|
||||
<a name="adapter.redisquota.Params.socketType"></a>
|
||||
<tr>
|
||||
<td><code>socketType</code></td>
|
||||
<td>string</td>
|
||||
<td>Network for communicating with redis, i.e., "tcp"</td>
|
||||
</tr>
|
||||
<a name="adapter.redisquota.Params.connectionPoolSize"></a>
|
||||
<tr>
|
||||
<td><code>connectionPoolSize</code></td>
|
||||
<td>int64</td>
|
||||
<td>Maximum number of idle connections to redis</td>
|
||||
</tr>
|
||||
<a name="adapter.redisquota.Params.rateLimitAlgorithm"></a>
|
||||
<tr>
|
||||
<td><code>rateLimitAlgorithm</code></td>
|
||||
<td>string</td>
|
||||
<td>Algorithm for rate-limiting: either fixed-window or rolling-window. The fixed-window approach can allow 2x peak specified rate, whereas the rolling-window doesn't. The rolling-window algorithm's additional precision comes at the cost of increased redis resource usage.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
---
|
||||
title: statsd
|
||||
overview: statsd adapter configuration schema
|
||||
|
||||
order: 70
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.statsd.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.statsd.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.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.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>Flush Interval controls the maximum amount of time between sending metrics to the statsd collection server. Metrics are reported when either flushBytes is full or flushInterval time has elapsed since the last report.</td>
|
||||
</tr>
|
||||
<a name="adapter.statsd.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.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.Params.metricNameTemplateStrings"></a>
|
||||
<tr>
|
||||
<td><code>metricNameTemplateStrings</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td><p>Map of metric name -> template string; 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 a metric's name is not in the map then the exported statsd metric name will be exactly the metric's name.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
---
|
||||
title: stdioLogger
|
||||
overview: stdioLogger adapter configuration schema
|
||||
|
||||
order: 80
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="adapter.stdioLogger.Params"></a>
|
||||
### Params
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stdioLogger.Params.logStream"></a>
|
||||
<tr>
|
||||
<td><code>logStream</code></td>
|
||||
<td><a href="#adapter.stdioLogger.Params.Stream">Stream</a></td>
|
||||
<td>Selects which standard stream to write to for log entries. STDERR is the default Stream.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="adapter.stdioLogger.Params.Stream"></a>
|
||||
### Stream
|
||||
Stream is used to select between different logs output sinks.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="adapter.stdioLogger.Params.Stream.STDERR"></a>
|
||||
<tr>
|
||||
<td>STDERR</td>
|
||||
<td>STDERR refers to os.Stderr.</td>
|
||||
</tr>
|
||||
<a name="adapter.stdioLogger.Params.Stream.STDOUT"></a>
|
||||
<tr>
|
||||
<td>STDOUT</td>
|
||||
<td>STDOUT refers to os.Stdout.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
---
|
||||
title: accessLogs
|
||||
overview: accessLogs aspect configuration schema
|
||||
|
||||
order: 1120
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.AccessLogsParams"></a>
|
||||
### AccessLogsParams
|
||||
Example usage:
|
||||
kind: access-logs
|
||||
params:
|
||||
logName: "accessLog"
|
||||
log:
|
||||
logFormat: COMMON
|
||||
templateExpressions:
|
||||
originIp: origin.ip
|
||||
sourceUser: origin.user
|
||||
timestamp: request.time
|
||||
method: request.method | ""
|
||||
url: request.path
|
||||
protocol: request.scheme
|
||||
responseCode: response.code
|
||||
responseSize: response.size
|
||||
labels:
|
||||
originIp: origin.ip
|
||||
sourceUser: origin.user
|
||||
timestamp: request.time
|
||||
method: request.method | ""
|
||||
url: request.path
|
||||
protocol: request.scheme
|
||||
responseCode: response.code
|
||||
responseSize: response.size
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.AccessLogsParams.logName"></a>
|
||||
<tr>
|
||||
<td><code>logName</code></td>
|
||||
<td>string</td>
|
||||
<td>Identifies a collection of related log entries.</td>
|
||||
</tr>
|
||||
<a name="aspect.AccessLogsParams.log"></a>
|
||||
<tr>
|
||||
<td><code>log</code></td>
|
||||
<td><a href="#aspect.AccessLogsParams.AccessLog">AccessLog</a></td>
|
||||
<td>The log that will be constructed and handed to the aspect at runtime.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="aspect.AccessLogsParams.AccessLog"></a>
|
||||
### AccessLog
|
||||
Describes how attributes must be evaluated to produce values for a log message.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.AccessLogsParams.AccessLog.descriptorName"></a>
|
||||
<tr>
|
||||
<td><code>descriptorName</code></td>
|
||||
<td>string</td>
|
||||
<td>Only used if logFormat is CUSTOM. Links this AccessLog to a LogEntryDescriptor that describes the log's template.</td>
|
||||
</tr>
|
||||
<a name="aspect.AccessLogsParams.AccessLog.templateExpressions"></a>
|
||||
<tr>
|
||||
<td><code>templateExpressions</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of template variable name to expression for the descriptor's logTemplate. At run time each expression will be evaluated, and together they will provide values for the log's template string. Labels and template expressions do not mix: if the result of some expression is needed for both constructing the payload and for dimensioning the log entry, it must be included both in these expressions and in the <code>labels</code> expressions.</td>
|
||||
</tr>
|
||||
<a name="aspect.AccessLogsParams.AccessLog.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of LogEntryDescriptor label name to attribute expression. At run time each expression will be evaluated to determine the value that will be used to fill in the log template. The result of evaluating the expression must match the ValueType of the label in the LogEntryDescriptor.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
---
|
||||
title: applicationLogs
|
||||
overview: applicationLogs aspect configuration schema
|
||||
|
||||
order: 1130
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.ApplicationLogsParams"></a>
|
||||
### ApplicationLogsParams
|
||||
Configures an individual application-logs aspect.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.logName"></a>
|
||||
<tr>
|
||||
<td><code>logName</code></td>
|
||||
<td>string</td>
|
||||
<td>Identifies a collection of related log entries.</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.logs"></a>
|
||||
<tr>
|
||||
<td><code>logs[]</code></td>
|
||||
<td>repeated <a href="#aspect.ApplicationLogsParams.ApplicationLog">ApplicationLog</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog"></a>
|
||||
### ApplicationLog
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.descriptorName"></a>
|
||||
<tr>
|
||||
<td><code>descriptorName</code></td>
|
||||
<td>string</td>
|
||||
<td>Must match the name of some LogEntryDescriptor.</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.severity"></a>
|
||||
<tr>
|
||||
<td><code>severity</code></td>
|
||||
<td>string</td>
|
||||
<td>The expression to evaluate to determine this log's severity at runtime.</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.timestamp"></a>
|
||||
<tr>
|
||||
<td><code>timestamp</code></td>
|
||||
<td>string</td>
|
||||
<td>The expression to evaluate to determine this log's timestamp.</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.timeFormat"></a>
|
||||
<tr>
|
||||
<td><code>timeFormat</code></td>
|
||||
<td>string</td>
|
||||
<td>The golang time layout format string used to print the timestamp</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.templateExpressions"></a>
|
||||
<tr>
|
||||
<td><code>templateExpressions</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of template variable name to expression for the descriptor's logTemplate. At run time each expression will be evaluated, and together they will provide values for the log's template string. Labels and template expressions do not mix: if the result of some expression is needed for both constructing the payload and for dimensioning the log entry, it must be included both in these expressions and in the <code>labels</code> expressions.</td>
|
||||
</tr>
|
||||
<a name="aspect.ApplicationLogsParams.ApplicationLog.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of LogEntryDescriptor label name to attribute expression. At run time each expression will be evaluated to determine the value that will be used to fill in the log template. The result of evaluating the expression must match the ValueType of the label in the LogEntryDescriptor.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
---
|
||||
title: attributes
|
||||
overview: attributes aspect configuration schema
|
||||
|
||||
order: 1140
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.AttributesGeneratorParams"></a>
|
||||
### AttributesGeneratorParams
|
||||
Configures an AttributesGenerator aspect.
|
||||
|
||||
The following config specifies two adapters (mixerInfo and k8sPodInfo)
|
||||
that will be used to generate attributes for use within in Mixer:
|
||||
|
||||
aspects:
|
||||
- kind: attributes
|
||||
adapter: mixerInfo
|
||||
params:
|
||||
attributeBindings:
|
||||
mixerVersion: version
|
||||
mixerBuildId: buildID
|
||||
mixerBuildStatus: buildStatus
|
||||
- kind: attributes
|
||||
adapter: k8sPodInfo
|
||||
params:
|
||||
inputExpressions:
|
||||
srcIP: source.ip | "unknown"
|
||||
dstIP: destination.ip | "unknown"
|
||||
attributeBindings:
|
||||
sourceName: srcName
|
||||
destinationName: dstName
|
||||
|
||||
The mixerInfo adapter takes no input arguments and produces three output
|
||||
values (version, buildID, and buildStatus). Those three output values are
|
||||
mapped into three attributes (mixerVersion, mixerBuildId, and
|
||||
mixerBuildStatus) via the attributeBindings.
|
||||
|
||||
Similarly, the k8sPodInfo adapter takes two inputs (srcIp and tgtIp). Their
|
||||
values are generated from the expressions that reference mixer attributes.
|
||||
The adapter produces two outputs (srcName and tgtName) that are mapped into
|
||||
mixer attributes (sourceName and destinationName) by the attributeBindings.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.AttributesGeneratorParams.inputExpressions"></a>
|
||||
<tr>
|
||||
<td><code>inputExpressions</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of input params name to attribute expressions. At runtime, each expression will be evaluated to determine the input value provided to the aspect.</td>
|
||||
</tr>
|
||||
<a name="aspect.AttributesGeneratorParams.attributeBindings"></a>
|
||||
<tr>
|
||||
<td><code>attributeBindings</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of attribute descriptor names to the names of values produced by an adapter. This map will be used to translate from adapter outputs into mixer attributes.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
title: denials
|
||||
overview: denials aspect configuration schema
|
||||
|
||||
order: 1150
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.DenialsParams"></a>
|
||||
### DenialsParams
|
||||
Configures a denials aspect.
|
||||
|
||||
NOTE: _No fields in this message type.__
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
---
|
||||
title: Aspects
|
||||
overview: Generated documentation for Mixer's aspects.
|
||||
|
||||
order: 2000
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
{% include section-index.html %}
|
||||
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
---
|
||||
title: lists
|
||||
overview: lists aspect configuration schema
|
||||
|
||||
order: 1160
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.ListsParams"></a>
|
||||
### ListsParams
|
||||
Configures a lists aspect.
|
||||
|
||||
Example:
|
||||
kind: lists
|
||||
params:
|
||||
blacklist: true
|
||||
checkExpression: source.ip
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.ListsParams.blacklist"></a>
|
||||
<tr>
|
||||
<td><code>blacklist</code></td>
|
||||
<td>bool</td>
|
||||
<td>blacklist determines if this behaves like a blacklist default is whitelist</td>
|
||||
</tr>
|
||||
<a name="aspect.ListsParams.checkExpression"></a>
|
||||
<tr>
|
||||
<td><code>checkExpression</code></td>
|
||||
<td>string</td>
|
||||
<td>checkExpression is the expression evaluated at runtime to derive the value that is checked against the list</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
---
|
||||
title: metrics
|
||||
overview: metrics aspect configuration schema
|
||||
|
||||
order: 1170
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.MetricsParams"></a>
|
||||
### MetricsParams
|
||||
Configures a metric aspect.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.MetricsParams.metrics"></a>
|
||||
<tr>
|
||||
<td><code>metrics[]</code></td>
|
||||
<td>repeated <a href="#aspect.MetricsParams.Metric">Metric</a></td>
|
||||
<td>The set of metrics that will be populated and handed to aspects at run time.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="aspect.MetricsParams.Metric"></a>
|
||||
### Metric
|
||||
Describes how attributes must be evaluated to produce values for the named metric. Suppose the following
|
||||
MetricDescriptor exists in the global configuration:
|
||||
|
||||
```yaml
|
||||
metricDescriptor:
|
||||
name: "responseCode"
|
||||
kind: COUNTER
|
||||
value: I64
|
||||
labels:
|
||||
name: apiMethod
|
||||
valueType: STRING
|
||||
labels:
|
||||
name: responseCode
|
||||
valueType: I64
|
||||
```
|
||||
|
||||
To actually report metrics at run time a mapping from attributes to a metric's labels must be provided in
|
||||
the form of a metric:
|
||||
|
||||
```yaml
|
||||
metric:
|
||||
descriptorName: "responseCode" # must match metricDescriptor.name
|
||||
value: $requestCount # Istio expression syntax for the attribute named "requestCount"
|
||||
labels:
|
||||
# either the attribute named 'apiMethod' or the literal string 'unknown'; must eval to a string
|
||||
apiMethod: $apiMethod | "unknown"
|
||||
# either the attribute named 'responseCode' or the literal int64 500; must eval to an int64
|
||||
responseCode: $responseCode | 500
|
||||
```
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.MetricsParams.Metric.descriptorName"></a>
|
||||
<tr>
|
||||
<td><code>descriptorName</code></td>
|
||||
<td>string</td>
|
||||
<td>Must match the name of some metricDescriptor in the global config.</td>
|
||||
</tr>
|
||||
<a name="aspect.MetricsParams.Metric.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>string</td>
|
||||
<td>Attribute expression to evaluate to determine the value for this metric; the result of the evaluation must match the value ValueType of the metricDescriptor.</td>
|
||||
</tr>
|
||||
<a name="aspect.MetricsParams.Metric.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of metricDescriptor label name to attribute expression. At run time each expression will be evaluated to determine the value provided to the aspect. The result of evaluating the expression must match the ValueType of the label in the metricDescriptor.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
---
|
||||
title: quotas
|
||||
overview: quotas aspect configuration schema
|
||||
|
||||
order: 1180
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="aspect.QuotasParams"></a>
|
||||
### QuotasParams
|
||||
Configures a quotas aspect.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.QuotasParams.quotas"></a>
|
||||
<tr>
|
||||
<td><code>quotas[]</code></td>
|
||||
<td>repeated <a href="#aspect.QuotasParams.Quota">Quota</a></td>
|
||||
<td>The set of quotas that will be populated and handed to aspects at run time.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="aspect.QuotasParams.Quota"></a>
|
||||
### Quota
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="aspect.QuotasParams.Quota.descriptorName"></a>
|
||||
<tr>
|
||||
<td><code>descriptorName</code></td>
|
||||
<td>string</td>
|
||||
<td>Must match the name of some quotaDescriptor in the global config.</td>
|
||||
</tr>
|
||||
<a name="aspect.QuotasParams.Quota.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Map of quotaDescriptor label name to attribute expression. At run time each expression will be evaluated to determine the value provided to the aspect. The result of evaluating the expression must match the ValueType of the label in the quotaDescriptor.</td>
|
||||
</tr>
|
||||
<a name="aspect.QuotasParams.Quota.maxAmount"></a>
|
||||
<tr>
|
||||
<td><code>maxAmount</code></td>
|
||||
<td>int64</td>
|
||||
<td>The upper limit for this quota.</td>
|
||||
</tr>
|
||||
<a name="aspect.QuotasParams.Quota.expiration"></a>
|
||||
<tr>
|
||||
<td><code>expiration</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 quotas annotated as rate limits, otherwise the value must be zero.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,972 +0,0 @@
|
|||
---
|
||||
title: Mixer
|
||||
overview: Mixer's configuration schema
|
||||
|
||||
order: 1190
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="istio.mixer.v1.config.Adapter"></a>
|
||||
### Adapter
|
||||
Adapter allows the operator to configure a specific adapter implementation.
|
||||
Each adapter implementation defines its own `params` proto. Note that unlike
|
||||
[Aspect](#istio.mixer.v1.config.Aspect), the type of `params` varies with `impl`
|
||||
and not with `kind`.
|
||||
|
||||
In the following example we define a `metrics` adapter using the Mixer's prepackaged
|
||||
prometheus adapter. This adapter doesn't require any parameters.
|
||||
|
||||
|
||||
```yaml
|
||||
kind: metrics
|
||||
name: prometheus-adapter
|
||||
impl: prometheus
|
||||
params:
|
||||
```
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Adapter.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required, must be unique per <code>kind</code>. Used by <a href="#istio.mixer.v1.config.Aspect">Aspect</a> to refer to this adapter. The name "default" is special: when an Aspect does not specify a name, the Adapter named "default" of the same <code>kind</code> is used to execute the intention described by the <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a>s.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Adapter.kind"></a>
|
||||
<tr>
|
||||
<td><code>kind</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The aspect this implementation with these params will implement; a single adapter implementation may implement many aspects, but an <code>Adapter</code> entry is required per kind.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Adapter.impl"></a>
|
||||
<tr>
|
||||
<td><code>impl</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of a specific adapter implementation. An adapter's implementation name is typically a constant in its code.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Adapter.params"></a>
|
||||
<tr>
|
||||
<td><code>params</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></td>
|
||||
<td>Optional, depends on adapter implementation. Struct representation of a proto defined by the implementation; this varies depending on <code>impl</code>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.Aspect"></a>
|
||||
### Aspect
|
||||
Aspect describes how an adapter is intended to operate in the context of the
|
||||
rule it's embedded in. The value for `params` depends on the `kind` of this
|
||||
aspect: each kind of aspect defines its own `params` proto.
|
||||
|
||||
The following example instructs Mixer to populate a metric named "responseTime"
|
||||
that was declared to have three labels: srcConsumerId, destinationResponseStatusCode,
|
||||
and destinationServiceName. For each label and the metric's `value` we provide
|
||||
an expression over Istio's attributes. Mixer evaluates these expressions for
|
||||
each request.
|
||||
|
||||
|
||||
```yaml
|
||||
kind: metrics
|
||||
params:
|
||||
metrics:
|
||||
- descriptorName: responseTime # tie this metric to a descriptor of the same name
|
||||
value: response.time # from the set of canonical attributes
|
||||
labels:
|
||||
srcConsumerId: source.user | source.uid
|
||||
destinationResponseStatusCode: response.code
|
||||
destinationServiceName: destination.service
|
||||
```
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Aspect.kind"></a>
|
||||
<tr>
|
||||
<td><code>kind</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The kind of aspect this intent is targeting.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Aspect.adapter"></a>
|
||||
<tr>
|
||||
<td><code>adapter</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. The name of the adapter this Aspect targets. If no name is provided, Mixer will use the adapter of the target kind named "default".</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Aspect.params"></a>
|
||||
<tr>
|
||||
<td><code>params</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></td>
|
||||
<td>Required. Struct representation of a proto defined by each aspect kind.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.AspectRule"></a>
|
||||
### AspectRule
|
||||
An AspectRule is a selector and a set of intentions to be executed when the
|
||||
selector is `true`. The selectors of the this rule's child AspectRules are only
|
||||
evaluated if this rule's selector is true.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AspectRule.selector"></a>
|
||||
<tr>
|
||||
<td><code>selector</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Required. Selector is an attribute based predicate. When Mixer receives a request it evaluates all selectors in scope and executes the rules for all selectors that evaluated to true.</p><p>A few example selectors:</p>
|
||||
<ul>
|
||||
<li>an empty selector evaluates to <code>true</code></li>
|
||||
<li><code>true</code>, a boolean literal; a rule with this selector will always be executed</li>
|
||||
<li><code>destination.service == ratings*</code> selects any request targeting a service whose name starts with "ratings"</li>
|
||||
<li><code>attr1 == "20" && attr2 == "30"</code> logical AND, OR, and NOT are also available</li>
|
||||
</ul></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AspectRule.aspects"></a>
|
||||
<tr>
|
||||
<td><code>aspects[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.Aspect">Aspect</a></td>
|
||||
<td>The aspects that apply when selector evaluates to <code>true</code>.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AspectRule.rules"></a>
|
||||
<tr>
|
||||
<td><code>rules[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a></td>
|
||||
<td>Nested aspect rules; their selectors are evaluated if this selector predicate evaluates to <code>true</code>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.AttributeManifest"></a>
|
||||
### AttributeManifest
|
||||
AttributeManifest describes a set of Attributes produced by some component
|
||||
of an Istio deployment.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.revision"></a>
|
||||
<tr>
|
||||
<td><code>revision</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. The revision of this document. Assigned by server.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. Name of the component producing these attributes. This can be the proxy (with the canonical name "istio-proxy") or the name of an <code>attributes</code> kind adapter in Mixer.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.attributes"></a>
|
||||
<tr>
|
||||
<td><code>attributes</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.AttributeManifest.AttributeInfo">AttributeInfo</a>></td>
|
||||
<td><p>The set of attributes this Istio component will be responsible for producing at runtime. We map from attribute name to the attribute's specification. The name of an attribute, which is how attributes are referred to in aspect configuration, must conform to:</p>
|
||||
<pre><code>Name = IDENT { SEPARATOR IDENT };
|
||||
</code></pre><p>Where <code>IDENT</code> must match the regular expression <code>a-z+</code> and <code>SEPARATOR</code> must match the regular expression
|
||||
<code>[\.-]</code>.</p><p>Attribute names must be unique within a single Istio deployment. The set of canonical attributes are described <a href="./attribute-vocabulary.html">here</a>. Attributes not in that list should be named with a
|
||||
component-specific suffix such as request.count-my.component</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo"></a>
|
||||
### AttributeInfo
|
||||
AttributeInfo describes the schema of an Istio `Attribute`.
|
||||
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection"></a>
|
||||
#### Istio Attributes
|
||||
Istio uses `attributes` to describe runtime activities of Istio services.
|
||||
An Istio attribute carries a specific piece of information about an activity,
|
||||
such as the error code of an API request, the latency of an API request, or the
|
||||
original IP address of a TCP connection. The attributes are often generated
|
||||
and consumed by different services. For example, a frontend service can
|
||||
generate an authenticated user attribute and pass it to a backend service for
|
||||
access control purpose.
|
||||
|
||||
To simplify the system and improve developer experience, Istio uses
|
||||
shared attribute definitions across all components. For example, the same
|
||||
authenticated user attribute will be used for logging, monitoring, analytics,
|
||||
billing, access control, auditing. Many Istio components provide their
|
||||
functionality by collecting, generating, and operating on attributes.
|
||||
For example, the proxy collects the error code attribute, and the logging
|
||||
stores it into a log.
|
||||
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection_1"></a>
|
||||
#### Design
|
||||
Each Istio attribute must conform to an `AttributeInfo` in an
|
||||
`AttributeManifest` in the current Istio deployment at runtime. An
|
||||
`AttributeInfo` is used to define an attribute's
|
||||
metadata: the type of its value and a detailed description that explains
|
||||
the semantics of the attribute type. Each attribute's name is globally unique;
|
||||
in other words an attribute name can only appear once across all manifests.
|
||||
|
||||
The runtime presentation of an attribute is intentionally left out of this
|
||||
specification, because passing attribute using JSON, XML, or Protocol Buffers
|
||||
does not change the semantics of the attribute. Different implementations
|
||||
can choose different representations based on their needs.
|
||||
|
||||
|
||||
|
||||
<a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection_2"></a>
|
||||
#### HTTP Mapping
|
||||
Because many systems already have REST APIs, it makes sense to define a
|
||||
standard HTTP mapping for Istio attributes that are compatible with typical
|
||||
REST APIs. The design is to map one attribute to one HTTP header, the
|
||||
attribute name and value becomes the HTTP header name and value. The actual
|
||||
encoding scheme will be decided later.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A human-readable description of the attribute's purpose.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo.valueType"></a>
|
||||
<tr>
|
||||
<td><code>valueType</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a></td>
|
||||
<td>Required. The type of data carried by this attribute.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.DnsName"></a>
|
||||
### DnsName
|
||||
DnsName holds a valid domain name.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.DnsName.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.EmailAddress"></a>
|
||||
### EmailAddress
|
||||
EmailAddress holds a properly formatted email address.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.EmailAddress.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.GlobalConfig"></a>
|
||||
### GlobalConfig
|
||||
|
||||
WARNING: GlobalConfig is deprecated, see the Config API's
|
||||
swagger spec.
|
||||
|
||||
GlobalConfig defines configuration elements that are available for the rest
|
||||
of the config. It is used to configure adapters and make them available in
|
||||
AspectRules.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.revision"></a>
|
||||
<tr>
|
||||
<td><code>revision</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.adapters"></a>
|
||||
<tr>
|
||||
<td><code>adapters[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.Adapter">Adapter</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.manifests"></a>
|
||||
<tr>
|
||||
<td><code>manifests[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.AttributeManifest">AttributeManifest</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.logs"></a>
|
||||
<tr>
|
||||
<td><code>logs[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.descriptor.LogEntryDescriptor">LogEntryDescriptor</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.metrics"></a>
|
||||
<tr>
|
||||
<td><code>metrics[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.descriptor.MetricDescriptor">MetricDescriptor</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.monitoredResources"></a>
|
||||
<tr>
|
||||
<td><code>monitoredResources[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor">MonitoredResourceDescriptor</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.principals"></a>
|
||||
<tr>
|
||||
<td><code>principals[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.descriptor.PrincipalDescriptor">PrincipalDescriptor</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.GlobalConfig.quotas"></a>
|
||||
<tr>
|
||||
<td><code>quotas[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.descriptor.QuotaDescriptor">QuotaDescriptor</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.IpAddress"></a>
|
||||
### IpAddress
|
||||
IpAddress holds an IPv4 or IPv6 address.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.IpAddress.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>bytes</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.ServiceConfig"></a>
|
||||
### ServiceConfig
|
||||
|
||||
WARNING: ServiceConfig is deprecated, see the Config API's
|
||||
swagger spec.
|
||||
|
||||
Configures a set of services.
|
||||
|
||||
The following example configures a metric that will be recorded for all services:
|
||||
|
||||
|
||||
```yaml
|
||||
subject: "namespace:ns1"
|
||||
revision: "1011"
|
||||
rules:
|
||||
- selector: destination.service == "*"
|
||||
aspects:
|
||||
- kind: metrics
|
||||
params:
|
||||
metrics: # defines metric collection across the board.
|
||||
- descriptorName: responseTimeByStatusCode
|
||||
value: response.time
|
||||
labels:
|
||||
statusCode: response.code
|
||||
```
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.ServiceConfig.subject"></a>
|
||||
<tr>
|
||||
<td><code>subject</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. Subject is unique for a config type. 2 config with the same subject will overwrite each other</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.ServiceConfig.revision"></a>
|
||||
<tr>
|
||||
<td><code>revision</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. revision of this config. This is assigned by the server</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.ServiceConfig.rules"></a>
|
||||
<tr>
|
||||
<td><code>rules[]</code></td>
|
||||
<td>repeated <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.Uri"></a>
|
||||
### Uri
|
||||
Uri represents a properly formed URI.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.Uri.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="rpcIstio.mixer.v1.configDescriptor"></a>
|
||||
## Package istio.mixer.v1.config.descriptor
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor"></a>
|
||||
### LogEntryDescriptor
|
||||
Defines the format of a single log entry.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of this descriptor.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.displayName"></a>
|
||||
<tr>
|
||||
<td><code>displayName</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A concise name for the log entry type, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A description of the log entry type, which can be used in documentation.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.payloadFormat"></a>
|
||||
<tr>
|
||||
<td><code>payloadFormat</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat">PayloadFormat</a></td>
|
||||
<td>Required. Format of the value of the payload attribute.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.logTemplate"></a>
|
||||
<tr>
|
||||
<td><code>logTemplate</code></td>
|
||||
<td>string</td>
|
||||
<td><p>Required. The template that will be populated with labels at runtime to generate a log message; the labels describe the parameters for this template.</p><p>The template strings must conform to go's text/template syntax.</p></td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Labels describe the parameters of this log's template string. The log definition allows the user to map attribute expressions to actual values for these labels at run time; the result of the evaluation must be of the type described by the kind for each label.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat"></a>
|
||||
### PayloadFormat
|
||||
PayloadFormat details the currently supported logging payload formats.
|
||||
TEXT is the default payload format.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.PAYLOADFORMATUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>PAYLOADFORMATUNSPECIFIED</td>
|
||||
<td>Invalid, default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.TEXT"></a>
|
||||
<tr>
|
||||
<td>TEXT</td>
|
||||
<td>Indicates a payload format of raw text.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.JSON"></a>
|
||||
<tr>
|
||||
<td>JSON</td>
|
||||
<td>Indicates that the payload is a serialized JSON object.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor"></a>
|
||||
### MetricDescriptor
|
||||
Defines a metric type and its schema.
|
||||
|
||||
A metric is dimensioned by a set of labels whose values are derived at runtime
|
||||
from attributes. A given metric holds a unique value for potentially any
|
||||
combination of these dimensions.
|
||||
|
||||
The following is an example descriptor for a metric capturing the number of
|
||||
RPCs served, dimensioned by the method being called and response code returned
|
||||
by the server:
|
||||
|
||||
|
||||
```yaml
|
||||
metrics:
|
||||
name: "responseCode"
|
||||
kind: COUNTER
|
||||
value: INT64
|
||||
labels:
|
||||
apiMethod: STRING
|
||||
responseCode: INT64
|
||||
```
|
||||
|
||||
|
||||
To actually report metrics at run time a mapping from attributes to a metric's
|
||||
labels must be provided. This is provided in the aspect config; using our above
|
||||
descriptor we might describe the metric as:
|
||||
|
||||
|
||||
```yaml
|
||||
metric:
|
||||
descriptor: "responseCode" # must match metricDescriptor.name
|
||||
value: request.count # expression syntax for the attribute named "request.count"
|
||||
labels:
|
||||
# either the attribute named 'api.method' or the literal string 'unknown'; must eval to a string
|
||||
apiMethod: api.method | "unknown"
|
||||
# either the attribute named 'response.code' or the literal int64 500; must eval to an int64
|
||||
responseCode: response.code | 500
|
||||
```
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of this descriptor. This is used to refer to this descriptor in other contexts.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.displayName"></a>
|
||||
<tr>
|
||||
<td><code>displayName</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A description of the metric, which should be used as the documentation for the metric.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.kind"></a>
|
||||
<tr>
|
||||
<td><code>kind</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind">MetricKind</a></td>
|
||||
<td>Required. Whether the metric records instantaneous values, changes to a value, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.value"></a>
|
||||
<tr>
|
||||
<td><code>value</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a></td>
|
||||
<td>Required. The type of data this metric records.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Labels that dimension the data recorded by this metric. The metric definition allows the user to map attribute expressions to actual values for these labels at run time; the result of the evaluation must be of the type described by the kind for each label.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.buckets"></a>
|
||||
<tr>
|
||||
<td><code>buckets</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.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>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition"></a>
|
||||
### BucketsDefinition
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.linearBuckets"></a>
|
||||
<tr>
|
||||
<td><code>linearBuckets</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear">Linear</a> (oneof )</td>
|
||||
<td>The linear buckets.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.exponentialBuckets"></a>
|
||||
<tr>
|
||||
<td><code>exponentialBuckets</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential">Exponential</a> (oneof )</td>
|
||||
<td>The exponential buckets.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.explicitBuckets"></a>
|
||||
<tr>
|
||||
<td><code>explicitBuckets</code></td>
|
||||
<td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Explicit">Explicit</a> (oneof )</td>
|
||||
<td>The explicit buckets.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.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="istio.mixer.v1.config.descriptor.MetricDescriptor.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="istio.mixer.v1.config.descriptor.MetricDescriptor.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="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.growthFactor"></a>
|
||||
<tr>
|
||||
<td><code>growthFactor</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 1.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.scale"></a>
|
||||
<tr>
|
||||
<td><code>scale</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.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="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear.numFiniteBuckets"></a>
|
||||
<tr>
|
||||
<td><code>numFiniteBuckets</code></td>
|
||||
<td>int32</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear.width"></a>
|
||||
<tr>
|
||||
<td><code>width</code></td>
|
||||
<td>double</td>
|
||||
<td>Must be greater than 0.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.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="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind"></a>
|
||||
### MetricKind
|
||||
The kind of measurement. It describes how the data is recorded.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.METRICKINDUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>METRICKINDUNSPECIFIED</td>
|
||||
<td>Do not use this default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.GAUGE"></a>
|
||||
<tr>
|
||||
<td>GAUGE</td>
|
||||
<td>An instantaneous measurement of a value. For example, the number of VMs.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.COUNTER"></a>
|
||||
<tr>
|
||||
<td>COUNTER</td>
|
||||
<td>A count of occurrences over an interval, always a positive integer. For example, the number of API requests.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.DISTRIBUTION"></a>
|
||||
<tr>
|
||||
<td>DISTRIBUTION</td>
|
||||
<td><p>Summary statistics for a population of values. At the moment, only histograms representing the distribution of those values across a set of buckets
|
||||
are supported (configured via the buckets field).</p><p>Values for DISTRIBUTIONs will be reported in singular form. It will be up to Mixer adapters and backend systems to transform single reported values into the distribution form as needed (and as supported).</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor"></a>
|
||||
### MonitoredResourceDescriptor
|
||||
An object that describes the schema of a `MonitoredResource`. A
|
||||
`MonitoredResource` is used to define a type of resources for
|
||||
monitoring purpose. For example, the monitored resource "VM" refers
|
||||
to virtual machines, which requires 3 attributes "owner", "zone",
|
||||
"name" to uniquely identify a specific instance. When reporting
|
||||
a metric against a monitored resource, the metric attributes will
|
||||
be used to associate the right value with the right instance,
|
||||
such as memory usage of a VM.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of this descriptor.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A detailed description of the monitored resource descriptor that might be used in documentation.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Labels represent the dimensions that uniquely identify this monitored resource. At runtime expressions will be evaluated to provide values for each label. Label names are mapped to expressions as part of aspect configuration.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor"></a>
|
||||
### PrincipalDescriptor
|
||||
Defines a a security principal.
|
||||
|
||||
A principal is described by a set of attributes.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of this descriptor.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>Labels represent the dimensions that uniquely identify this security principal. At runtime expressions will be evaluated to provide values for each label. Label names are mapped to expressions as part of aspect configuration.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor"></a>
|
||||
### QuotaDescriptor
|
||||
Configuration state for a particular quota.
|
||||
|
||||
Quotas are similar to metrics, except that they are mutated through method
|
||||
calls and there are limits on the allowed values.
|
||||
The descriptor below lets you define a quota and indicate the maximum
|
||||
amount values of this quota are allowed to hold.
|
||||
|
||||
A given quota is described by a set of attributes. These attributes represent
|
||||
the different dimensions to associate with the quota. A given quota holds a
|
||||
unique value for potentially any combination of these attributes.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td>string</td>
|
||||
<td>Required. The name of this descriptor.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.displayName"></a>
|
||||
<tr>
|
||||
<td><code>displayName</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A concise name for the quota which can be displayed in user interfaces.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.description"></a>
|
||||
<tr>
|
||||
<td><code>description</code></td>
|
||||
<td>string</td>
|
||||
<td>Optional. A description of the quota which can be used in documentation.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.labels"></a>
|
||||
<tr>
|
||||
<td><code>labels</code></td>
|
||||
<td>repeated map<string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>></td>
|
||||
<td>The set of labels that are necessary to describe a specific value cell for a quota of this type.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.rateLimit"></a>
|
||||
<tr>
|
||||
<td><code>rateLimit</code></td>
|
||||
<td>bool</td>
|
||||
<td>Indicates whether the quota represents a rate limit or represents a resource quota.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType"></a>
|
||||
### ValueType
|
||||
ValueType describes the types that values in the Istio system can take. These
|
||||
are used to describe the type of Attributes at run time, describe the type of
|
||||
the result of evaluating an expression, and to describe the runtime type of
|
||||
fields of other descriptors.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
|
||||
<tr>
|
||||
<td>VALUETYPEUNSPECIFIED</td>
|
||||
<td>Invalid, default value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRING"></a>
|
||||
<tr>
|
||||
<td>STRING</td>
|
||||
<td>An undiscriminated variable-length string.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.INT64"></a>
|
||||
<tr>
|
||||
<td>INT64</td>
|
||||
<td>An undiscriminated 64-bit signed integer.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DOUBLE"></a>
|
||||
<tr>
|
||||
<td>DOUBLE</td>
|
||||
<td>An undiscriminated 64-bit floating-point value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.BOOL"></a>
|
||||
<tr>
|
||||
<td>BOOL</td>
|
||||
<td>An undiscriminated boolean value.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.TIMESTAMP"></a>
|
||||
<tr>
|
||||
<td>TIMESTAMP</td>
|
||||
<td>A point in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.IPADDRESS"></a>
|
||||
<tr>
|
||||
<td>IPADDRESS</td>
|
||||
<td>An IP address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.EMAILADDRESS"></a>
|
||||
<tr>
|
||||
<td>EMAILADDRESS</td>
|
||||
<td>An email address.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.URI"></a>
|
||||
<tr>
|
||||
<td>URI</td>
|
||||
<td>A URI.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DNSNAME"></a>
|
||||
<tr>
|
||||
<td>DNSNAME</td>
|
||||
<td>A DNS name.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.DURATION"></a>
|
||||
<tr>
|
||||
<td>DURATION</td>
|
||||
<td>A span between two points in time.</td>
|
||||
</tr>
|
||||
<a name="istio.mixer.v1.config.descriptor.ValueType.STRINGMAP"></a>
|
||||
<tr>
|
||||
<td>STRINGMAP</td>
|
||||
<td>A map string -> string, typically used by headers.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,273 +0,0 @@
|
|||
---
|
||||
title: Destination Policies
|
||||
overview: Client-side traffic management policies configuration schema
|
||||
|
||||
order: 30
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy"></a>
|
||||
### DestinationPolicy
|
||||
DestinationPolicy defines client/caller-side policies that determine how
|
||||
to handle traffic bound to a particular destination service. The policy
|
||||
specifies configuration for load balancing and circuit breakers. For
|
||||
example, a simple load balancing policy for the reviews service would
|
||||
look as follows:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing:
|
||||
name: RANDOM
|
||||
|
||||
|
||||
Policies are applicable per individual service versions. ONLY
|
||||
ONE policy can be defined per service version. Policy CANNOT be empty.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td>string</td>
|
||||
<td>REQUIRED. Service name for which the service version is defined. The value MUST BE a fully-qualified domain name, e.g. <em>my-service.default.svc.cluster.local</em>.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.policy"></a>
|
||||
<tr>
|
||||
<td><code>policy[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.DestinationVersionPolicy">DestinationVersionPolicy</a></td>
|
||||
<td>REQUIRED. List of policies, one per service version.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy"></a>
|
||||
#### DestinationVersionPolicy
|
||||
A destination policy can be restricted to a particular version of a
|
||||
service or applied to all versions. The tags field in the
|
||||
DestinationVersionPolicy allow restricting the scope of a
|
||||
DestinationPolicy. For example, the following load balancing policy
|
||||
applies to version v1 of the reviews service running in the prod
|
||||
environment:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- tags:
|
||||
env: prod
|
||||
version: v1
|
||||
loadBalancing:
|
||||
name: RANDOM
|
||||
|
||||
|
||||
If tags are omitted, the policy applies for all versions of the
|
||||
service. Policy CANNOT BE empty.
|
||||
*Note:* Destination policies will be applied only if the corresponding
|
||||
tagged instances are explicitly routed to. In other words, for every
|
||||
destination policy defined, at least one route rule must refer to the
|
||||
service version indicated in the destination policy.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Optional set of tags that identify a particular version of the destination service. If omitted, the policy will apply to all versions of the service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.loadBalancing"></a>
|
||||
<tr>
|
||||
<td><code>loadBalancing</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing">LoadBalancing</a></td>
|
||||
<td>Load balancing policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.circuitBreaker"></a>
|
||||
<tr>
|
||||
<td><code>circuitBreaker</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.CircuitBreaker">CircuitBreaker</a></td>
|
||||
<td>Circuit breaker policy.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing"></a>
|
||||
### LoadBalancing
|
||||
Load balancing policy to use when forwarding traffic. These policies
|
||||
directly correlate to [load balancer
|
||||
types](https://envoyproxy.github.io/envoy/intro/arch_overview/load_balancing.html)
|
||||
supported by Envoy. Example,
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing:
|
||||
name: RANDOM
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy">SimpleLBPolicy</a></td>
|
||||
<td>Load balancing policy name (as defined in SimpleLBPolicy below)</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy"></a>
|
||||
#### SimpleLBPolicy
|
||||
Load balancing algorithms supported by Envoy proxy.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.ROUND_ROBIN"></a>
|
||||
<tr>
|
||||
<td>ROUND_ROBIN</td>
|
||||
<td>Simple round robin policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.LEAST_CONN"></a>
|
||||
<tr>
|
||||
<td>LEAST_CONN</td>
|
||||
<td>The least request load balancer uses an O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.RANDOM"></a>
|
||||
<tr>
|
||||
<td>RANDOM</td>
|
||||
<td>The random load balancer selects a random healthy host. The random load balancer generally performs better than round robin if no health checking policy is configured.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker"></a>
|
||||
### CircuitBreaker
|
||||
Circuit breaker configuration for Envoy. The circuit breaker
|
||||
implementation is fine-grained in that it tracks the success/failure
|
||||
rates of individual hosts in the load balancing pool. Hosts that
|
||||
continually return errors for API calls are ejected from the pool for a
|
||||
pre-defined period of time. See Envoy's
|
||||
[circuit breaker](https://envoyproxy.github.io/envoy/intro/arch_overview/circuit_breaking.html)
|
||||
and [outlier detection](https://envoyproxy.github.io/envoy/intro/arch_overview/outlier.html)
|
||||
for more details.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.simpleCb"></a>
|
||||
<tr>
|
||||
<td><code>simpleCb</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy">SimpleCircuitBreakerPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy"></a>
|
||||
#### SimpleCircuitBreakerPolicy
|
||||
A simple circuit breaker can be set based on a number of criteria such as
|
||||
connection and request limits. For example, the following destination
|
||||
policy sets a limit of 100 connections to "reviews" service version
|
||||
"v1" backends.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- tags:
|
||||
version: v1
|
||||
circuitBreaker:
|
||||
simpleCb:
|
||||
maxConnections: 100
|
||||
|
||||
|
||||
The following destination policy sets a limit of 100 connections and
|
||||
1000 concurrent requests, with no more than 10 req/connection to
|
||||
"reviews" service version "v1" backends. In addition, it configures
|
||||
hosts to be scanned every 5 minutes, such that any host that fails 7
|
||||
consecutive times with 5XX error code will be ejected for 15 minutes.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- tags:
|
||||
version: v1
|
||||
circuitBreaker:
|
||||
simpleCb:
|
||||
maxConnections: 100
|
||||
httpMaxRequests: 1000
|
||||
httpMaxRequestsPerConnection: 10
|
||||
httpConsecutiveErrors: 7
|
||||
sleepWindow: 15m
|
||||
httpDetectionInterval: 5m
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.maxConnections"></a>
|
||||
<tr>
|
||||
<td><code>maxConnections</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum number of connections to a backend.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpMaxPendingRequests"></a>
|
||||
<tr>
|
||||
<td><code>httpMaxPendingRequests</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum number of pending requests to a backend. Default 1024</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpMaxRequests"></a>
|
||||
<tr>
|
||||
<td><code>httpMaxRequests</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum number of requests to a backend. Default 1024</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.sleepWindow"></a>
|
||||
<tr>
|
||||
<td><code>sleepWindow</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Minimum time the circuit will be closed. format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is 30s.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpConsecutiveErrors"></a>
|
||||
<tr>
|
||||
<td><code>httpConsecutiveErrors</code></td>
|
||||
<td>int32</td>
|
||||
<td>Number of 5XX errors before circuit is opened. Defaults to 5.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpDetectionInterval"></a>
|
||||
<tr>
|
||||
<td><code>httpDetectionInterval</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Time interval between ejection sweep analysis. format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is 10s.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpMaxRequestsPerConnection"></a>
|
||||
<tr>
|
||||
<td><code>httpMaxRequestsPerConnection</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum number of requests per connection to a backend. Setting this parameter to 1 disables keep alive.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy.httpMaxEjectionPercent"></a>
|
||||
<tr>
|
||||
<td><code>httpMaxEjectionPercent</code></td>
|
||||
<td>int32</td>
|
||||
<td>Maximum % of hosts in the load balancing pool for the destination service that can be ejected by the circuit breaker. Defaults to 10%.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -1,516 +0,0 @@
|
|||
---
|
||||
title: Routing Rules
|
||||
overview: Traffic routing rule configuration schema
|
||||
|
||||
order: 20
|
||||
draft: true
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="istio.proxy.v1.config.RouteRule"></a>
|
||||
### RouteRule
|
||||
|
||||
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:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
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>string</td>
|
||||
<td>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. The value MUST BE a fully-qualified domain name, e.g. "my-service.default.svc.cluster.local".</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.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.MatchCondition"></a>
|
||||
### MatchCondition
|
||||
Match condition specifies a set of criteria 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",
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
source: reviews.default.svc.cluster.local
|
||||
sourceTags:
|
||||
version: v2
|
||||
httpHeaders:
|
||||
cookie:
|
||||
regex: "^(.*?;)?(user=jason)(;.*)?$"
|
||||
uri:
|
||||
prefix: "/ratings/v2/"
|
||||
|
||||
|
||||
MatchCondition CANNOT BE empty. At least one of source, sourceTags or
|
||||
httpHeaders 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>string</td>
|
||||
<td>Identifies the service initiating a connection or a request by its name. If specified, name MUST BE a fully qualified domain name such as foo.bar.com</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.sourceTags"></a>
|
||||
<tr>
|
||||
<td><code>sourceTags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>One or more tags that uniquely identify the source service version. In Kubernetes, tags correspond to the labels associated with pods.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.httpHeaders"></a>
|
||||
<tr>
|
||||
<td><code>httpHeaders</code></td>
|
||||
<td>repeated map<string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>></td>
|
||||
<td><p>Set of HTTP match conditions based on HTTP/1.1, HTTP/2, GRPC request metadata, such as <em>uri</em>, <em>scheme</em>, <em>authority</em>. The header keys must be lowercase and use hyphen as the separator, e.g. <em>x-request-id</em>.</p><p><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 URL matches (Uri_), only prefix and exact (see StringMatch) matches are supported. For other HTTP headers, exact, prefix and ECMA style regular expression matches are supported.</p></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>
|
||||
|
||||
<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".
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v2
|
||||
weight: 25
|
||||
- tags:
|
||||
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>string</td>
|
||||
<td>Destination uniquely identifies the destination service. If not specified, the value is inherited from the parent route rule. Value must be in fully qualified domain name format (e.g., "my-service.default.svc.cluster.local").</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Service version identifier for the destination service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.weight"></a>
|
||||
<tr>
|
||||
<td><code>weight</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. The proportion of traffic to be forwarded to the service version. (0-100). Sum of weights across destinations SHOULD BE == 100. If there is only destination in a rule, the weight value is assumed to be 100.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.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.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
exact: /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.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.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
prefix: /ratings
|
||||
rewrite:
|
||||
uri: /v1/bookRatings
|
||||
route:
|
||||
- tags:
|
||||
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
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqTimeout:
|
||||
simpleTimeout:
|
||||
timeout: 10s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.simpleTimeout"></a>
|
||||
<tr>
|
||||
<td><code>simpleTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy">SimpleTimeoutPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy"></a>
|
||||
#### SimpleTimeoutPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.timeout"></a>
|
||||
<tr>
|
||||
<td><code>timeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Timeout for a HTTP request. Includes retries as well. Default 15s. format: 1h/1m/1s/1ms. MUST BE >=1ms. It is possible to control timeout per request by supplying the timeout value via x-envoy-upstream-rq-timeout-ms HTTP header.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.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.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqRetries:
|
||||
simpleRetry:
|
||||
attempts: 3
|
||||
perTryTimeout: 2s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.simpleRetry"></a>
|
||||
<tr>
|
||||
<td><code>simpleRetry</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy">SimpleRetryPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy"></a>
|
||||
#### SimpleRetryPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.attempts"></a>
|
||||
<tr>
|
||||
<td><code>attempts</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.perTryTimeout"></a>
|
||||
<tr>
|
||||
<td><code>perTryTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.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".
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
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.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -6,4 +6,5 @@ User-agent: *
|
|||
{% for node in site.pages %}{% if node.noindex %}{% assign isset = true %}Disallow: {{ node.url }}
|
||||
{% endif %}{% endfor %}{% if isset != true %}Disallow:
|
||||
{% endif %}
|
||||
Disallow: /v-0.1
|
||||
Sitemap: https://istio.io/sitemap.xml
|
||||
|
|
|
|||
Loading…
Reference in New Issue