Update reference docs. (#937)

This commit is contained in:
Martin Taillefer 2018-02-06 09:48:31 -08:00 committed by GitHub
parent ff84954b62
commit 428af2c847
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
58 changed files with 4529 additions and 2039 deletions

View File

@ -4,48 +4,47 @@ overview: API definitions to interact with Mixer
location: https://istio.io/docs/reference/api/istio.mixer.v1.html
layout: protoc-gen-docs
redirect_from: /docs/reference/api/mixer/mixer.html
number_of_entries: 17
---
<h2 id="Enumerations">Enumerations</h2>
<h3 id="ReferencedAttributes.Condition">ReferencedAttributes.Condition</h3>
{% raw %}
<p>This package defines the Mixer API that the sidecar proxy uses to perform
precondition checks, manage quotas, and report telemetry.</p>
<h2 id="Services">Services</h2>
<h3 id="Mixer">Mixer</h3>
<section>
<p>How an attribute&rsquo;s value was matched</p>
<p>Mixer provides three core features:</p>
<table class="enum-values">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr id="ReferencedAttributes.Condition.CONDITION_UNSPECIFIED">
<td><code>CONDITION_UNSPECIFIED</code></td>
<td>
<p>should not occur</p>
<ul>
<li><p><em>Precondition Checking</em>. Enables callers to verify a number of preconditions
before responding to an incoming request from a service consumer.
Preconditions can include whether the service consumer is properly
authenticated, is on the services whitelist, passes ACL checks, and more.</p></li>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.ABSENCE">
<td><code>ABSENCE</code></td>
<td>
<p>match when attribute doesn&rsquo;t exist</p>
<li><p><em>Quota Management</em>. 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.</p></li>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.EXACT">
<td><code>EXACT</code></td>
<td>
<p>match when attribute value is an exact byte-for-byte match</p>
<li><p><em>Telemetry Reporting</em>. 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.</p></li>
</ul>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.REGEX">
<td><code>REGEX</code></td>
<td>
<p>match when attribute value matches the included regex</p>
<pre id="Mixer.Check"><code class="language-proto">rpc Check(CheckRequest) returns (CheckResponse)
</code></pre>
<p>Checks preconditions and allocate quota before performing an operation.
The preconditions enforced depend on the set of supplied attributes and
the active configuration.</p>
<pre id="Mixer.Report"><code class="language-proto">rpc Report(ReportRequest) returns (ReportResponse)
</code></pre>
<p>Reports telemetry, such as logs and metrics.
The reported information depends on the set of supplied attributes and the
active configuration.</p>
</td>
</tr>
</table>
</section>
<h2 id="Messages">Messages</h2>
<h2 id="Types">Types</h2>
<h3 id="Attributes">Attributes</h3>
<section>
<p>Attributes represents a set of typed name/value pairs. Many of Mixer&rsquo;s
@ -57,13 +56,12 @@ environment this traffic occurs in. An Istio attribute carries a specific piece
of information such as the error code of an API request, the latency of an API request, or the
original IP address of a TCP connection. For example:</p>
<p><code>
request.path: xyz/abc
<pre><code>request.path: xyz/abc
request.size: 234
request.time: 12:34:56.789 04/17/2017
source.ip: 192.168.0.1
target.service: example
</code></p>
</code></pre>
<p>A given Istio deployment has a fixed vocabulary of attributes that it understands.
The specific vocabulary is determined by the set of attribute producers being used
@ -85,11 +83,14 @@ Following places may use this message:
3) Forward attributes from client proxy to server proxy for HTTP requests.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Attributes.attributes">
<td><code>attributes</code></td>
<td><code>map&lt;string, <a href="#Attributes.AttributeValue">Attributes.AttributeValue</a>&gt;</code></td>
@ -98,6 +99,7 @@ Following places may use this message:
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="Attributes.AttributeValue">Attributes.AttributeValue</h3>
@ -105,59 +107,79 @@ Following places may use this message:
<p>Specifies one attribute value with different type.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Attributes.AttributeValue.string_value" class="oneof oneof-start">
<td><code>stringValue</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>Used for values of type STRING, DNS<em>NAME, EMAIL</em>ADDRESS, and URI</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.int64_value" class="oneof">
<td><code>int64Value</code></td>
<td><code>int64 (oneof)</code></td>
<td>
<p>Used for values of type INT64</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.double_value" class="oneof">
<td><code>doubleValue</code></td>
<td><code>double (oneof)</code></td>
<td>
<p>Used for values of type DOUBLE</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.bool_value" class="oneof">
<td><code>boolValue</code></td>
<td><code>bool (oneof)</code></td>
<td>
<p>Used for values of type BOOL</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.bytes_value" class="oneof">
<td><code>bytesValue</code></td>
<td><code>bytes (oneof)</code></td>
<td>
<p>Used for values of type BYTES</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.timestamp_value" class="oneof">
<td><code>timestampValue</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">google.protobuf.Timestamp (oneof)</a></code></td>
<td>
<p>Used for values of type TIMESTAMP</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.duration_value" class="oneof">
<td><code>durationValue</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration (oneof)</a></code></td>
<td>
<p>Used for values of type DURATION</p>
</td>
</tr>
<tr id="Attributes.AttributeValue.string_map_value" class="oneof">
<td><code>stringMapValue</code></td>
<td><code><a href="#Attributes.StringMap">Attributes.StringMap (oneof)</a></code></td>
<td>
<p>Used for values of type STRING_MAP</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="Attributes.StringMap">Attributes.StringMap</h3>
@ -165,17 +187,23 @@ Following places may use this message:
<p>Defines a string map.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Attributes.StringMap.entries">
<td><code>entries</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>Holds a set of name/value pairs.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CheckRequest">CheckRequest</h3>
@ -183,11 +211,14 @@ Following places may use this message:
<p>Used to get a thumbs-up/thumbs-down before performing an action.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CheckRequest.attributes">
<td><code>attributes</code></td>
<td><code><a href="#CompressedAttributes">CompressedAttributes</a></code></td>
@ -226,6 +257,7 @@ per call, where the same UUID is used for retries of the same call.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CheckRequest.QuotaParams">CheckRequest.QuotaParams</h3>
@ -233,11 +265,14 @@ per call, where the same UUID is used for retries of the same call.</p>
<p>parameters for a quota allocation</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CheckRequest.QuotaParams.amount">
<td><code>amount</code></td>
<td><code>int64</code></td>
@ -254,16 +289,22 @@ per call, where the same UUID is used for retries of the same call.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CheckResponse">CheckResponse</h3>
<section>
<p>The response generated by the Check method.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CheckResponse.precondition">
<td><code>precondition</code></td>
<td><code><a href="#CheckResponse.PreconditionResult">CheckResponse.PreconditionResult</a></code></td>
@ -280,16 +321,22 @@ per call, where the same UUID is used for retries of the same call.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CheckResponse.PreconditionResult">CheckResponse.PreconditionResult</h3>
<section>
<p>Expresses the result of a precondition check.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CheckResponse.PreconditionResult.status">
<td><code>status</code></td>
<td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td>
@ -337,16 +384,22 @@ along with matching conditions.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CheckResponse.QuotaResult">CheckResponse.QuotaResult</h3>
<section>
<p>Expresses the result of a quota allocation.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CheckResponse.QuotaResult.valid_duration">
<td><code>validDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
@ -373,6 +426,7 @@ along with matching conditions.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CompressedAttributes">CompressedAttributes</h3>
@ -386,11 +440,14 @@ dictionary instead. The message-level dictionary is carried by the
configuration.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CompressedAttributes.words">
<td><code>words</code></td>
<td><code>string[]</code></td>
@ -403,10 +460,7 @@ configuration.</p>
<td><code>strings</code></td>
<td><code>map&lt;int32, int32&gt;</code></td>
<td>
<p>Attribute payload. All <code>sint32</code> values represent indices into
one of the word dictionaries. Positive values are indices into the
global deployment-wide dictionary, negative values are indices into
the message-level dictionary.</p>
<p>Holds attributes of type STRING, DNS<em>NAME, EMAIL</em>ADDRESS, URI</p>
</td>
</tr>
@ -414,44 +468,59 @@ the message-level dictionary.</p>
<td><code>int64s</code></td>
<td><code>map&lt;int32, int64&gt;</code></td>
<td>
<p>Holds attributes of type INT64</p>
</td>
</tr>
<tr id="CompressedAttributes.doubles">
<td><code>doubles</code></td>
<td><code>map&lt;int32, double&gt;</code></td>
<td>
<p>Holds attributes of type DOUBLE</p>
</td>
</tr>
<tr id="CompressedAttributes.bools">
<td><code>bools</code></td>
<td><code>map&lt;int32, bool&gt;</code></td>
<td>
<p>Holds attributes of type BOOL</p>
</td>
</tr>
<tr id="CompressedAttributes.timestamps">
<td><code>timestamps</code></td>
<td><code>map&lt;int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">google.protobuf.Timestamp</a>&gt;</code></td>
<td>
<p>Holds attributes of type TIMESTAMP</p>
</td>
</tr>
<tr id="CompressedAttributes.durations">
<td><code>durations</code></td>
<td><code>map&lt;int32, <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a>&gt;</code></td>
<td>
<p>Holds attributes of type DURATION</p>
</td>
</tr>
<tr id="CompressedAttributes.bytes">
<td><code>bytes</code></td>
<td><code>map&lt;int32, bytes&gt;</code></td>
<td>
<p>Holds attributes of type BYTES</p>
</td>
</tr>
<tr id="CompressedAttributes.string_maps">
<td><code>stringMaps</code></td>
<td><code>map&lt;int32, <a href="#StringMap">StringMap</a>&gt;</code></td>
<td>
<p>Holds attributes of type STRING_MAP</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ReferencedAttributes">ReferencedAttributes</h3>
@ -460,11 +529,14 @@ the message-level dictionary.</p>
This can be used to construct a response cache.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ReferencedAttributes.words">
<td><code>words</code></td>
<td><code>string[]</code></td>
@ -482,16 +554,22 @@ on using dictionaries.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ReferencedAttributes.AttributeMatch">ReferencedAttributes.AttributeMatch</h3>
<section>
<p>Describes a single attribute match.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ReferencedAttributes.AttributeMatch.name">
<td><code>name</code></td>
<td><code>int32</code></td>
@ -535,6 +613,50 @@ entire STRING_MAP will be used.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ReferencedAttributes.Condition">ReferencedAttributes.Condition</h3>
<section>
<p>How an attribute&rsquo;s value was matched</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ReferencedAttributes.Condition.CONDITION_UNSPECIFIED">
<td><code>CONDITION_UNSPECIFIED</code></td>
<td>
<p>should not occur</p>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.ABSENCE">
<td><code>ABSENCE</code></td>
<td>
<p>match when attribute doesn&rsquo;t exist</p>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.EXACT">
<td><code>EXACT</code></td>
<td>
<p>match when attribute value is an exact byte-for-byte match</p>
</td>
</tr>
<tr id="ReferencedAttributes.Condition.REGEX">
<td><code>REGEX</code></td>
<td>
<p>match when attribute value matches the included regex</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ReportRequest">ReportRequest</h3>
@ -542,11 +664,14 @@ entire STRING_MAP will be used.</p>
<p>Used to report telemetry after performing one or more actions.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ReportRequest.attributes">
<td><code>attributes</code></td>
<td><code><a href="#CompressedAttributes">CompressedAttributes[]</a></code></td>
@ -592,28 +717,37 @@ To detect global dictionary out of sync between client and server.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ReportResponse">ReportResponse</h3>
<section>
<p>Used to carry responses to telemetry reports</p>
</section>
<h3 id="StringMap">StringMap</h3>
<section>
<p>A map of string to string. The keys and values in this map are dictionary
indices (see the <a href="#Attributes">Attributes</a> message for an explanation)</p>
indices (see the <a href="#CompressedAttributes">Attributes</a> message for an explanation)</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="StringMap.entries">
<td><code>entries</code></td>
<td><code>map&lt;int32, int32&gt;</code></td>
<td>
<p>Holds a set of name/value pairs.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="google.rpc.Status">google.rpc.Status</h3>
@ -676,11 +810,14 @@ be used directly after any stripping needed for security/privacy reasons.</p></l
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="google.rpc.Status.code">
<td><code>code</code></td>
<td><code>int32</code></td>
@ -708,39 +845,7 @@ message types for APIs to use.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Services">Services</h2>
<h3 id="Mixer">Mixer</h3>
<section>
<p>Mixer provides three core features:</p>
<ul>
<li><p><em>Precondition Checking</em>. Enables callers to verify a number of preconditions
before responding to an incoming request from a service consumer.
Preconditions can include whether the service consumer is properly
authenticated, is on the services whitelist, passes ACL checks, and more.</p></li>
<li><p><em>Quota Management</em>. 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.</p></li>
<li><p><em>Telemetry Reporting</em>. 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.</p></li>
</ul>
<pre id="Mixer.Check"><code class="language-proto">rpc Check(CheckRequest) returns (CheckResponse)
</code></pre>
<p>Checks preconditions and allocate quota before performing an operation.
The preconditions enforced depend on the set of supplied attributes and
the active configuration.</p>
<pre id="Mixer.Report"><code class="language-proto">rpc Report(ReportRequest) returns (ReportResponse)
</code></pre>
<p>Reports telemetry, such as logs and metrics.
The reported information depends on the set of supplied attributes and the
active configuration.</p>
</section>
{% endraw %}

View File

@ -2,6 +2,7 @@
title: istio_ca
overview: Istio Certificate Authority (CA)
layout: pkg-collateral-docs
number_of_entries: 3
---
<p>Istio Certificate Authority (CA)</p>
<pre class="language-bash"><code>istio_ca [flags]
@ -49,6 +50,16 @@ layout: pkg-collateral-docs
<td>Specifies path to kubeconfig file. This must be specified when not running inside a Kubernetes pod. (default ``)</td>
</tr>
<tr>
<td><code>--livenessProbeInterval &lt;duration&gt;</code></td>
<td></td>
<td>Interval of updating file for the liveness probe. (default `0s`)</td>
</tr>
<tr>
<td><code>--livenessProbePath &lt;string&gt;</code></td>
<td></td>
<td>Path to the file for the liveness probe. (default ``)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
<td></td>
<td>Whether to format output as JSON or in plain console-friendly format </td>

View File

@ -2,6 +2,7 @@
title: istioctl
overview: Istio control interface
layout: pkg-collateral-docs
number_of_entries: 13
---
<p>
Istio configuration command line utility.</p>
@ -27,7 +28,7 @@ and destination policies.</p>
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -130,7 +131,7 @@ and destination policies.</p>
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -233,7 +234,7 @@ istioctl context-create --api-server http://127.0.0.1:8080
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -334,7 +335,7 @@ istioctl context-create --api-server http://127.0.0.1:8080
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -435,7 +436,7 @@ istioctl delete routerule productpage-default
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -558,7 +559,7 @@ istioctl delete routerule productpage-default
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -664,7 +665,7 @@ istioctl delete routerule productpage-default
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -826,7 +827,7 @@ kube-inject on deployments to get the most up-to-date changes.
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -972,7 +973,7 @@ kubectl get deployment -o yaml | istioctl kube-inject -f - | kubectl apply -f -
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--labels &lt;stringSlice&gt;</code></td>
@ -1080,7 +1081,7 @@ kubectl get deployment -o yaml | istioctl kube-inject -f - | kubectl apply -f -
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>
@ -1176,7 +1177,7 @@ kubectl get deployment -o yaml | istioctl kube-inject -f - | kubectl apply -f -
<tr>
<td><code>--kubeconfig &lt;string&gt;</code></td>
<td><code>-c</code></td>
<td>Kubernetes configuration file (default `/Users/mtail/.kube/config`)</td>
<td>Kubernetes configuration file (default `$KUBECONFIG else $HOME/.kube/config`)</td>
</tr>
<tr>
<td><code>--log_as_json</code></td>

View File

@ -2,6 +2,7 @@
title: mixc
overview: Utility to trigger direct calls to Mixer&#39;s API.
layout: pkg-collateral-docs
number_of_entries: 5
---
<p>This command lets you interact with a running instance of
Mixer. Note that you need a pretty good understanding of Mixer&#39;s

View File

@ -2,6 +2,7 @@
title: mixs
overview: Mixer is Istio&#39;s abstraction on top of infrastructure backends.
layout: pkg-collateral-docs
number_of_entries: 10
---
<p>Mixer is Istio&#39;s point of integration with infrastructure backends and is the
nexus for policy evaluation and telemetry reporting.</p>

View File

@ -2,6 +2,7 @@
title: node_agent
overview: Istio security per-node agent
layout: pkg-collateral-docs
number_of_entries: 3
---
<p>Istio security per-node agent</p>
<pre class="language-bash"><code>node_agent [flags]

View File

@ -2,6 +2,7 @@
title: pilot-agent
overview: Istio Pilot agent
layout: pkg-collateral-docs
number_of_entries: 4
---
<p>Istio Pilot provides management plane functionality to the Istio service mesh and Istio Mixer.</p>
<table class="command-flags">
@ -95,6 +96,11 @@ layout: pkg-collateral-docs
<td>Path to the proxy binary (default `/usr/local/bin/envoy`)</td>
</tr>
<tr>
<td><code>--bootstrapv2</code></td>
<td></td>
<td>Use bootstrap v2 </td>
</tr>
<tr>
<td><code>--configPath &lt;string&gt;</code></td>
<td></td>
<td>Path to the generated configuration file directory (default `/etc/istio/proxy`)</td>

View File

@ -2,6 +2,7 @@
title: pilot-discovery
overview: Istio Pilot
layout: pkg-collateral-docs
number_of_entries: 4
---
<p>Istio Pilot provides fleet-wide traffic management capabilities in the Istio Service Mesh.</p>
<table class="command-flags">

View File

@ -2,6 +2,7 @@
title: sidecar-injector
overview: Kubernetes webhook for automatic Istio sidecar injection
layout: pkg-collateral-docs
number_of_entries: 3
---
<p>Kubernetes webhook for automatic Istio sidecar injection</p>
<pre class="language-bash"><code>sidecar-injector [flags]

View File

@ -0,0 +1,113 @@
---
title: Circonus
overview: Adapter for circonus.com's monitoring solution.
location: https://istio.io/docs/reference/config/adapters/circonus.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>circonus</code> adapter enables Istio to deliver metric data to the
<a href="https://www.circonus.com">Circonus</a> monitoring backend.</p>
<h2 id="Params">Params</h2>
<section>
<p>Cnofiguration format for the Circonus adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.submission_url">
<td><code>submissionUrl</code></td>
<td><code>string</code></td>
<td>
<p>Circonus SubmissionURL to HTTPTrap check</p>
</td>
</tr>
<tr id="Params.submission_interval">
<td><code>submissionInterval</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
</td>
</tr>
<tr id="Params.metrics">
<td><code>metrics</code></td>
<td><code><a href="#Params.MetricInfo">Params.MetricInfo[]</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo">Params.MetricInfo</h2>
<section>
<p>Describes how to represent a metric</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>name</p>
</td>
</tr>
<tr id="Params.MetricInfo.type">
<td><code>type</code></td>
<td><code><a href="#Params.MetricInfo.Type">Params.MetricInfo.Type</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.Type">Params.MetricInfo.Type</h2>
<section>
<p>The type of metric.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.Type.UNKNOWN">
<td><code>UNKNOWN</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.COUNTER">
<td><code>COUNTER</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.GAUGE">
<td><code>GAUGE</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.DISTRIBUTION">
<td><code>DISTRIBUTION</code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,150 @@
---
title: Denier
overview: Adapter that always returns a precondition denial.
location: https://istio.io/docs/reference/config/adapters/denier.html
layout: protoc-gen-docs
number_of_entries: 2
---
{% raw %}
<p>The <code>denier</code> adapter is designed to always return a denial to precondition
checks. You can specify the exact error to return for these denials.</p>
<h2 id="Params">Params</h2>
<section>
<p>Cnofiguration format for the Denier adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.status">
<td><code>status</code></td>
<td><code><a href="#google.rpc.Status">google.rpc.Status</a></code></td>
<td>
<p>The error to return when denying a request.</p>
</td>
</tr>
<tr id="Params.valid_duration">
<td><code>validDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>The duration for which the denial is valid.</p>
</td>
</tr>
<tr id="Params.valid_use_count">
<td><code>validUseCount</code></td>
<td><code>int32</code></td>
<td>
<p>The number of times the denial may be used.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="google.rpc.Status">google.rpc.Status</h2>
<section>
<p>The <code>Status</code> type defines a logical error model that is suitable for different
programming environments, including REST APIs and RPC APIs. It is used by
<a href="https://github.com/grpc">gRPC</a>. The error model is designed to be:</p>
<ul>
<li>Simple to use and understand for most users</li>
<li>Flexible enough to meet unexpected needs</li>
</ul>
<h3 id="overview">Overview</h3>
<p>The <code>Status</code> message contains three pieces of data: error code, error message,
and error details. The error code should be an enum value of
<em>google.rpc.Code</em>, but it may accept additional error codes if needed. The
error message should be a developer-facing English message that helps
developers <em>understand</em> and <em>resolve</em> the error. If a localized user-facing
error message is needed, put the localized message in the error details or
localize it in the client. The optional error details may contain arbitrary
information about the error. There is a predefined set of error detail types
in the package <code>google.rpc</code> that can be used for common error conditions.</p>
<h3 id="language-mapping">Language mapping</h3>
<p>The <code>Status</code> message is the logical representation of the error model, but it
is not necessarily the actual wire format. When the <code>Status</code> message is
exposed in different client libraries and different wire protocols, it can be
mapped differently. For example, it will likely be mapped to some exceptions
in Java, but more likely mapped to some error codes in C.</p>
<h3 id="other-uses">Other uses</h3>
<p>The error model and the <code>Status</code> message can be used in a variety of
environments, either with or without APIs, to provide a
consistent developer experience across different environments.</p>
<p>Example uses of this error model include:</p>
<ul>
<li><p>Partial errors. If a service needs to return partial errors to the client,
it may embed the <code>Status</code> in the normal response to indicate the partial
errors.</p></li>
<li><p>Workflow errors. A typical workflow has multiple steps. Each step may
have a <code>Status</code> message for error reporting.</p></li>
<li><p>Batch operations. If a client uses batch request and batch response, the
<code>Status</code> message should be used directly inside batch response, one for
each error sub-response.</p></li>
<li><p>Asynchronous operations. If an API call embeds asynchronous operation
results in its response, the status of those operations should be
represented directly using the <code>Status</code> message.</p></li>
<li><p>Logging. If some API errors are stored in logs, the message <code>Status</code> could
be used directly after any stripping needed for security/privacy reasons.</p></li>
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="google.rpc.Status.code">
<td><code>code</code></td>
<td><code>int32</code></td>
<td>
<p>The status code, which should be an enum value of <em>google.rpc.Code</em>.</p>
</td>
</tr>
<tr id="google.rpc.Status.message">
<td><code>message</code></td>
<td><code>string</code></td>
<td>
<p>A developer-facing error message, which should be in English. Any
user-facing error message should be localized and sent in the
<a href="#google.rpc.Status.details">google.rpc.Status.details</a> field, or localized by the client.</p>
</td>
</tr>
<tr id="google.rpc.Status.details">
<td><code>details</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">google.protobuf.Any[]</a></code></td>
<td>
<p>A list of messages that carry the error details. There is a common set of
message types for APIs to use.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,34 +0,0 @@
---
title: denier Config
overview: Generated documentation for Mixer's denier Adapter Configuration Schema
order: 100
layout: docs
type: markdown
---
<a name="rpcAdapter.denier.configIndex"></a>
### Index
* [Params](#adapter.denier.config.Params)
(message)
<a name="adapter.denier.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.denier.config.Params.status"></a>
<tr>
<td><code>status</code></td>
<td>Status</td>
<td>The error to return when denying a request.</td>
</tr>
</table>

View File

@ -0,0 +1,43 @@
---
title: Fluentd
overview: Adapter that delivers logs to a fluentd daemon.
location: https://istio.io/docs/reference/config/adapters/fluentd.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>fluentd</code> adapter is designed to deliver Istio log entries to a
listening <a href="https://www.fluentd.org">fluentd</a> daemon.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration parameters for the fluentd adapter.</p>
<p>This adapter accepts instances of kind: logentry. It then routes
those logentries to a listening fluentd daemon with minimal
transformation. Fluentd uses a &ldquo;tag&rdquo; for all logs. The &ldquo;Name&rdquo; of
the logentry is used as the &ldquo;tag&rdquo;, unless the logentry already has
a variable &ldquo;tag&rdquo;.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.address">
<td><code>address</code></td>
<td><code>string</code></td>
<td>
<p>Address of listening fluentd daemon. Example: fluentd-server:24224
Default value is localhost:24224</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,168 +0,0 @@
---
title: kubernetes Config
overview: Generated documentation for Mixer's kubernetes Adapter Configuration Schema
order: 10
layout: docs
type: markdown
---
<a name="rpcAdapter.kubernetes.configIndex"></a>
### Index
* [Params](#adapter.kubernetes.config.Params)
(message)
<a name="adapter.kubernetes.config.Params"></a>
### Params
Configuration parameters for the kubernetes adapter. These params
control the manner in which the kubernetes adapter discovers and
generates values related to pod information.
The adapter works by looking up pod information by UIDs (of the
form: "kubernetes://pod.namespace"). It expects that the UIDs will be
supplied in an input map for three distinct traffic classes (source,
destination, and origin).
For all valid UIDs supplied, this adapter generates a map of output
values containing information about the related pods. The generated map
is keyed by value names generated by concatenating a pod identifier
prefix with a value name. For example, for the pod corresponding to a
sourceUID and the output value of pod ip, this adapter will output a map
that includes a key of "sourcePodIP" (assuming parameter defaults).
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.kubernetes.config.Params.kubeconfigPath"></a>
<tr>
<td><code>kubeconfigPath</code></td>
<td>string</td>
<td><p>File path to discover kubeconfig. For in-cluster configuration, this should be left unset. For local configuration, this should be set to the path of a kubeconfig file that can be used to reach a kubernetes API server.</p><p>NOTE: The kubernetes adapter will use the value of the env var KUBECONFIG in the case where it is set (overriding any value configured through this proto).</p><p>Default: "" (unset)</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.cacheRefreshDuration"></a>
<tr>
<td><code>cacheRefreshDuration</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td><p>Controls the resync period of the kubernetes cluster info cache. The cache will watch for events and every so often completely resync. This controls how frequently the complete resync occurs.</p><p>Default: 5 minutes</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.sourceUidInputName"></a>
<tr>
<td><code>sourceUidInputName</code></td>
<td>string</td>
<td><p>Configures how the UID for the source pod for traffic is identified in the input map.</p><p>Default: sourceUID</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.destinationUidInputName"></a>
<tr>
<td><code>destinationUidInputName</code></td>
<td>string</td>
<td><p>Configures how the UID for the destination pod for traffic is identified in the input map.</p><p>Default: destinationUID</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.originUidInputName"></a>
<tr>
<td><code>originUidInputName</code></td>
<td>string</td>
<td><p>Configures how the UID for the origin pod for traffic is identified in the input map.</p><p>Default: originUID</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.sourceIpInputName"></a>
<tr>
<td><code>sourceIpInputName</code></td>
<td>string</td>
<td><p>Configures how the IP for the source pod for traffic is identified in the input map.</p><p>Default: sourceIP</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.destinationIpInputName"></a>
<tr>
<td><code>destinationIpInputName</code></td>
<td>string</td>
<td><p>Configures how the IP for the destination pod for traffic is identified in the input map.</p><p>Default: destinationIP</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.originIpInputName"></a>
<tr>
<td><code>originIpInputName</code></td>
<td>string</td>
<td><p>Configures how the IP for the origin pod for traffic is identified in the input map.</p><p>Default: originIP</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.clusterDomainName"></a>
<tr>
<td><code>clusterDomainName</code></td>
<td>string</td>
<td><p>Configures the cluster domain name to use for service name normalization.</p><p>Default: svc.cluster.local</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.podLabelForService"></a>
<tr>
<td><code>podLabelForService</code></td>
<td>string</td>
<td><p>In order to extract the service associated with a source, destination, or origin, this adapter relies on pod labels. In particular, it looks for the value of a specific label, as specified by this parameter.</p><p>Default: app</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.podLabelForIstioComponentService"></a>
<tr>
<td><code>podLabelForIstioComponentService</code></td>
<td>string</td>
<td><p>In order to extract the service associated with a source, destination, or origin, this adapter relies on pod labels. In particular, it looks for the value of a specific label for istio component services, as specified by this parameter.</p><p>Default: istio</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.sourcePrefix"></a>
<tr>
<td><code>sourcePrefix</code></td>
<td>string</td>
<td><p>The prefix used for source pod output value names.</p><p>Default: source</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.destinationPrefix"></a>
<tr>
<td><code>destinationPrefix</code></td>
<td>string</td>
<td><p>The prefix used for destination pod output value names.</p><p>Default: destination</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.originPrefix"></a>
<tr>
<td><code>originPrefix</code></td>
<td>string</td>
<td><p>The prefix used for origin pod output value names.</p><p>Default: origin</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.labelsValueName"></a>
<tr>
<td><code>labelsValueName</code></td>
<td>string</td>
<td><p>The value name for the pod labels output value.</p><p>Default: Labels</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.podNameValueName"></a>
<tr>
<td><code>podNameValueName</code></td>
<td>string</td>
<td><p>The value name for the pod name output value.</p><p>Default: PodName</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.podIpValueName"></a>
<tr>
<td><code>podIpValueName</code></td>
<td>string</td>
<td><p>The value name for the pod ip address output value.</p><p>Default: PodIP</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.hostIpValueName"></a>
<tr>
<td><code>hostIpValueName</code></td>
<td>string</td>
<td><p>The value name for the pod host ip address output value.</p><p>Default: HostIP</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.namespaceValueName"></a>
<tr>
<td><code>namespaceValueName</code></td>
<td>string</td>
<td><p>The value name for the pod namespace output value.</p><p>Default: Namespace</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.serviceAccountValueName"></a>
<tr>
<td><code>serviceAccountValueName</code></td>
<td>string</td>
<td><p>The value name for the pod service account name output value.</p><p>Default: ServiceAccountName</p></td>
</tr>
<a name="adapter.kubernetes.config.Params.serviceValueName"></a>
<tr>
<td><code>serviceValueName</code></td>
<td>string</td>
<td><p>The value name for the service output value.</p><p>Default: Service</p></td>
</tr>
</table>

View File

@ -0,0 +1,121 @@
---
title: Kubernetes Env
overview: Adapter that extracts information from a Kubernetes environment.
location: https://istio.io/docs/reference/config/adapters/kubernetesenv.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>kubernetesenv</code> adapter extracts information from a Kubernetes environment
and produces attribtes that can be used in downstream adapters.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration parameters for the kubernetes adapter. These params
control the manner in which the kubernetes adapter discovers and
generates values related to pod information.</p>
<p>The adapter works by looking up pod information by UIDs (of the
form: &ldquo;kubernetes://pod.namespace&rdquo;). It expects that the UIDs will be
supplied in an input map for three distinct traffic classes (source,
destination, and origin).</p>
<p>For all valid UIDs supplied, this adapter generates output
values containing information about the related pods.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.kubeconfig_path">
<td><code>kubeconfigPath</code></td>
<td><code>string</code></td>
<td>
<p>File path to discover kubeconfig. For in-cluster configuration,
this should be left unset. For local configuration, this should
be set to the path of a kubeconfig file that can be used to
reach a kubernetes API server.</p>
<p>NOTE: The kubernetes adapter will use the value of the env var
KUBECONFIG in the case where it is set (overriding any value configured
through this proto).</p>
<p>Default: &ldquo;&rdquo; (unset)</p>
</td>
</tr>
<tr id="Params.cache_refresh_duration">
<td><code>cacheRefreshDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></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>
<tr id="Params.cluster_domain_name">
<td><code>clusterDomainName</code></td>
<td><code>string</code></td>
<td>
<p>Configures the cluster domain name to use for service name normalization.</p>
<p>Default: svc.cluster.local</p>
</td>
</tr>
<tr id="Params.pod_label_for_service">
<td><code>podLabelForService</code></td>
<td><code>string</code></td>
<td>
<p>In order to extract the service associated with a source, destination, or
origin, this adapter relies on pod labels. In particular, it looks for
the value of a specific label, as specified by this parameter.</p>
<p>Default: app</p>
</td>
</tr>
<tr id="Params.pod_label_for_istio_component_service">
<td><code>podLabelForIstioComponentService</code></td>
<td><code>string</code></td>
<td>
<p>In order to extract the service associated with a source, destination, or
origin, this adapter relies on pod labels. In particular, it looks for
the value of a specific label for istio component services, as specified
by this parameter.</p>
<p>Default: istio</p>
</td>
</tr>
<tr id="Params.lookup_ingress_source_and_origin_values">
<td><code>lookupIngressSourceAndOriginValues</code></td>
<td><code>bool</code></td>
<td>
<p>Default: false</p>
</td>
</tr>
<tr id="Params.fully_qualified_istio_ingress_service_name">
<td><code>fullyQualifiedIstioIngressServiceName</code></td>
<td><code>string</code></td>
<td>
<p>Istio ingress service string. This is used to identify the
ingress service in requests.</p>
<p>Default: &ldquo;ingress.istio-system.svc.cluster.local&rdquo;</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,139 @@
---
title: List
overview: Adapter that performs whitelist or blacklist checks
location: https://istio.io/docs/reference/config/adapters/list.html
layout: protoc-gen-docs
number_of_entries: 2
---
{% raw %}
<p>The <code>list</code> adapter makes it possible to perform simple whitelist or blacklist
checks. You can configure the adapter with the list to check, or you can point
it to a URL from where the list should be fetched. Lists can be simple strings,
IP addresses, or regex patterns.</p>
<h2 id="Params">Params</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.provider_url">
<td><code>providerUrl</code></td>
<td><code>string</code></td>
<td>
<p>Where to find the list to check against. This may be ommited for a completely local list.</p>
</td>
</tr>
<tr id="Params.refresh_interval">
<td><code>refreshInterval</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>Determines how often the provider is polled for
an updated list</p>
</td>
</tr>
<tr id="Params.ttl">
<td><code>ttl</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>Indicates how long to keep a list before discarding it.
Typically, the TTL value should be set to noticeably longer (&gt; 2x) than the
refresh interval to ensure continued operation in the face of transient
server outages.</p>
</td>
</tr>
<tr id="Params.caching_interval">
<td><code>cachingInterval</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>Indicates the amount of time a caller of this adapter can cache an answer
before it should ask the adapter again.</p>
</td>
</tr>
<tr id="Params.caching_use_count">
<td><code>cachingUseCount</code></td>
<td><code>int32</code></td>
<td>
<p>Indicates the number of times a caller of this adapter can use a cached answer
before it should ask the adapter again.</p>
</td>
</tr>
<tr id="Params.overrides">
<td><code>overrides</code></td>
<td><code>string[]</code></td>
<td>
<p>List entries that are consulted first, before the list from the server</p>
</td>
</tr>
<tr id="Params.entry_type">
<td><code>entryType</code></td>
<td><code><a href="#Params.ListEntryType">Params.ListEntryType</a></code></td>
<td>
<p>Determines the kind of list entry and overrides.</p>
</td>
</tr>
<tr id="Params.blacklist">
<td><code>blacklist</code></td>
<td><code>bool</code></td>
<td>
<p>Whether the list operates as a blacklist or a whitelist.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.ListEntryType">Params.ListEntryType</h2>
<section>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.ListEntryType.STRINGS">
<td><code>STRINGS</code></td>
<td>
<p>List entries are treated as plain strings.</p>
</td>
</tr>
<tr id="Params.ListEntryType.CASE_INSENSITIVE_STRINGS">
<td><code>CASE_INSENSITIVE_STRINGS</code></td>
<td>
<p>List entries are treated as case-insensitive strings.</p>
</td>
</tr>
<tr id="Params.ListEntryType.IP_ADDRESSES">
<td><code>IP_ADDRESSES</code></td>
<td>
<p>List entries are treated as IP addresses and ranges.</p>
</td>
</tr>
<tr id="Params.ListEntryType.REGEX">
<td><code>REGEX</code></td>
<td>
<p>List entries are treated as re2 regexp. See https://github.com/google/re2/wiki/Syntax for syntax.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,103 +0,0 @@
---
title: list Config
overview: Generated documentation for Mixer's list Adapter Configuration Schema
order: 20
layout: docs
type: markdown
---
<a name="rpcAdapter.list.configIndex"></a>
### Index
* [Params](#adapter.list.config.Params)
(message)
* [Params.ListEntryType](#adapter.list.config.Params.ListEntryType)
(enum)
<a name="adapter.list.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.list.config.Params.providerUrl"></a>
<tr>
<td><code>providerUrl</code></td>
<td>string</td>
<td>Where to find the list to check against. This may be ommited for a completely local list.</td>
</tr>
<a name="adapter.list.config.Params.refreshInterval"></a>
<tr>
<td><code>refreshInterval</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>Determines how often the provider is polled for an updated list</td>
</tr>
<a name="adapter.list.config.Params.ttl"></a>
<tr>
<td><code>ttl</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>Indicates how long to keep a list before discarding it. Typically, the TTL value should be set to noticeably longer (&gt; 2x) than the refresh interval to ensure continued operation in the face of transient server outages.</td>
</tr>
<a name="adapter.list.config.Params.cachingInterval"></a>
<tr>
<td><code>cachingInterval</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>Indicates the amount of time a caller of this adapter can cache an answer before it should ask the adapter again.</td>
</tr>
<a name="adapter.list.config.Params.cachingUseCount"></a>
<tr>
<td><code>cachingUseCount</code></td>
<td>int32</td>
<td>Indicates the number of times a caller of this adapter can use a cached answer before it should ask the adapter again.</td>
</tr>
<a name="adapter.list.config.Params.overrides"></a>
<tr>
<td><code>overrides[]</code></td>
<td>repeated string</td>
<td>List entries that are consulted first, before the list from the server</td>
</tr>
<a name="adapter.list.config.Params.entryType"></a>
<tr>
<td><code>entryType</code></td>
<td><a href="#adapter.list.config.Params.ListEntryType">ListEntryType</a></td>
<td>Determines the kind of list entry and overrides.</td>
</tr>
<a name="adapter.list.config.Params.blacklist"></a>
<tr>
<td><code>blacklist</code></td>
<td>bool</td>
<td>Whether the list operates as a blacklist or a whitelist.</td>
</tr>
</table>
<a name="adapter.list.config.Params.ListEntryType"></a>
### ListEntryType
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="adapter.list.config.Params.ListEntryType.STRINGS"></a>
<tr>
<td>STRINGS</td>
<td>List entries are treated as plain strings.</td>
</tr>
<a name="adapter.list.config.Params.ListEntryType.CASE_INSENSITIVE_STRINGS"></a>
<tr>
<td>CASE_INSENSITIVE_STRINGS</td>
<td>List entries are treated as case-insensitive strings.</td>
</tr>
<a name="adapter.list.config.Params.ListEntryType.IP_ADDRESSES"></a>
<tr>
<td>IP_ADDRESSES</td>
<td>List entries are treated as IP addresses and ranges.</td>
</tr>
</table>

View File

@ -0,0 +1,139 @@
---
title: Memory quota
overview: Adapter for a simple in-memory quota management system.
location: https://istio.io/docs/reference/config/adapters/memquota.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>memquota</code> adapter can be used to support Istio&rsquo;s quota management
system. Although functional, this adapter is not intended for production
use and is suited for local testing only. The reason for this limitation
is that this adapter can only be used in meshes where there is a single
instance of Mixer running for the whole mesh (i.e. non-HA configuration)
and if that single instance crashes, all outstanding quota values will
be lost.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>memquota</code> adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.quotas">
<td><code>quotas</code></td>
<td><code><a href="#Params.Quota">Params.Quota[]</a></code></td>
<td>
<p>The set of known quotas.</p>
</td>
</tr>
<tr id="Params.min_deduplication_duration">
<td><code>minDeduplicationDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>Minimum number of seconds that deduplication is possible for a given operation.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Override">Params.Override</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Override.dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>The specific dimensions for which this override applies.
String representation of instance dimensions is used to check against configured dimensions.</p>
</td>
</tr>
<tr id="Params.Override.max_amount">
<td><code>maxAmount</code></td>
<td><code>int64</code></td>
<td>
<p>The upper limit for this quota.</p>
</td>
</tr>
<tr id="Params.Override.valid_duration">
<td><code>validDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>The amount of time allocated quota remains valid before it is
automatically released. This is only meaningful for rate limit
quotas, otherwise the value must be zero.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Quota">Params.Quota</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Quota.name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>The name of the quota</p>
</td>
</tr>
<tr id="Params.Quota.max_amount">
<td><code>maxAmount</code></td>
<td><code>int64</code></td>
<td>
<p>The upper limit for this quota.</p>
</td>
</tr>
<tr id="Params.Quota.valid_duration">
<td><code>validDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>The amount of time allocated quota remains valid before it is
automatically released. This is only meaningful for rate limit
quotas, otherwise the value must be zero.</p>
</td>
</tr>
<tr id="Params.Quota.overrides">
<td><code>overrides</code></td>
<td><code><a href="#Params.Override">Params.Override[]</a></code></td>
<td>
<p>Overrides associated with this quota.
The first matching override is applied.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,107 +0,0 @@
---
title: memquota Config
overview: Generated documentation for Mixer's memquota Adapter Configuration Schema
order: 30
layout: docs
type: markdown
---
<a name="rpcAdapter.memquota.configIndex"></a>
### Index
* [Params](#adapter.memquota.config.Params)
(message)
* [Params.Override](#adapter.memquota.config.Params.Override)
(message)
* [Params.Quota](#adapter.memquota.config.Params.Quota)
(message)
<a name="adapter.memquota.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.memquota.config.Params.quotas"></a>
<tr>
<td><code>quotas[]</code></td>
<td>repeated <a href="#adapter.memquota.config.Params.Quota">Quota</a></td>
<td>The set of known quotas.</td>
</tr>
<a name="adapter.memquota.config.Params.minDeduplicationDuration"></a>
<tr>
<td><code>minDeduplicationDuration</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>Minimum number of seconds that deduplication is possible for a given operation.</td>
</tr>
</table>
<a name="adapter.memquota.config.Params.Override"></a>
### Override
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.memquota.config.Params.Override.dimensions"></a>
<tr>
<td><code>dimensions</code></td>
<td>repeated map&lt;string, string&gt;</td>
<td>The specific dimensions for which this override applies. String representation of instance dimensions is used to check against configured dimensions.</td>
</tr>
<a name="adapter.memquota.config.Params.Override.maxAmount"></a>
<tr>
<td><code>maxAmount</code></td>
<td>int64</td>
<td>The upper limit for this quota.</td>
</tr>
<a name="adapter.memquota.config.Params.Override.validDuration"></a>
<tr>
<td><code>validDuration</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>The amount of time allocated quota remains valid before it is automatically released. This is only meaningful for rate limit quotas, otherwise the value must be zero.</td>
</tr>
</table>
<a name="adapter.memquota.config.Params.Quota"></a>
### Quota
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.memquota.config.Params.Quota.name"></a>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>The name of the quota</td>
</tr>
<a name="adapter.memquota.config.Params.Quota.maxAmount"></a>
<tr>
<td><code>maxAmount</code></td>
<td>int64</td>
<td>The upper limit for this quota.</td>
</tr>
<a name="adapter.memquota.config.Params.Quota.validDuration"></a>
<tr>
<td><code>validDuration</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>The amount of time allocated quota remains valid before it is automatically released. This is only meaningful for rate limit quotas, otherwise the value must be zero.</td>
</tr>
<a name="adapter.memquota.config.Params.Quota.overrides"></a>
<tr>
<td><code>overrides[]</code></td>
<td>repeated <a href="#adapter.memquota.config.Params.Override">Override</a></td>
<td>Overrides associated with this quota. The first matching override is applied.</td>
</tr>
</table>

View File

@ -0,0 +1,84 @@
---
title: OPA
overview: Adapter that implements an Open Policy Agent engine
location: https://istio.io/docs/reference/config/adapters/opa.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>opa</code> adapter exposes an <a href="http://www.openpolicyagent.org">Open Policy Agent</a> engine
that provides sophisticated access control mechanisms.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>opa</code> adapter.</p>
<p>Example configuration:</p>
<pre><code>policy:
- |+
package mixerauthz
policy = [
{
&quot;rule&quot;: {
&quot;verbs&quot;: [
&quot;storage.buckets.get&quot;
],
&quot;users&quot;: [
&quot;bucket-admins&quot;
]
}
}
]
default allow = false
allow = true {
rule = policy[_].rule
input.subject.user = rule.users[_]
input.action.method = rule.verbs[_]
}
checkMethod: &quot;data.mixerauthz.allow&quot;
failClose: true
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.policy">
<td><code>policy</code></td>
<td><code>string[]</code></td>
<td>
<p>List of OPA policies</p>
</td>
</tr>
<tr id="Params.check_method">
<td><code>checkMethod</code></td>
<td><code>string</code></td>
<td>
<p>Query method to check.
Format: data.<package name>.<method name></p>
</td>
</tr>
<tr id="Params.fail_close">
<td><code>failClose</code></td>
<td><code>bool</code></td>
<td>
<p>Close the client request when adapter has a issue.
If failClose is set to true and there is a runtime error,
instead of disabling the adapter, close the client request</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,321 @@
---
title: Prometheus
overview: Adapter that exposes Istio metrics for ingestion by a Prometheus harvester.
location: https://istio.io/docs/reference/config/adapters/prometheus.html
layout: protoc-gen-docs
number_of_entries: 7
---
{% raw %}
<p>The <code>prometheus</code> adapter collects Istio metrics and makes them available to
<a href="https://prometheus.io">Prometheus</a>.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>prometheus</code> adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.metrics">
<td><code>metrics</code></td>
<td><code><a href="#Params.MetricInfo">Params.MetricInfo[]</a></code></td>
<td>
<p>The set of metrics to represent in Prometheus. If a metric is defined in Istio but doesn&rsquo;t have a corresponding
shape here, it will not be populated at runtime.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo">Params.MetricInfo</h2>
<section>
<p>Describes how a metric should be represented in Prometheus.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>Recommended. The name is used to register the prometheus metric.
It must be unique across all prometheus metrics as prometheus does not allow duplicate names.
If name is not specified a sanitized version of instance_name is used.</p>
</td>
</tr>
<tr id="Params.MetricInfo.instance_name">
<td><code>instanceName</code></td>
<td><code>string</code></td>
<td>
<p>Required. The name is the fully qualified name of the Istio metric instance
that this MetricInfo processes.</p>
</td>
</tr>
<tr id="Params.MetricInfo.description">
<td><code>description</code></td>
<td><code>string</code></td>
<td>
<p>Optional. A human readable description of this metric.</p>
</td>
</tr>
<tr id="Params.MetricInfo.kind">
<td><code>kind</code></td>
<td><code><a href="#Params.MetricInfo.Kind">Params.MetricInfo.Kind</a></code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.buckets">
<td><code>buckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition">Params.MetricInfo.BucketsDefinition</a></code></td>
<td>
<p>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.</p>
</td>
</tr>
<tr id="Params.MetricInfo.label_names">
<td><code>labelNames</code></td>
<td><code>string[]</code></td>
<td>
<p>The names of labels to use: these need to match the dimensions of the Istio metric.
TODO: see if we can remove this and rely on only the dimensions in the future.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition">Params.MetricInfo.BucketsDefinition</h2>
<section>
<p>Describes buckets for DISTRIBUTION kind metrics.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.linear_buckets" class="oneof oneof-start">
<td><code>linearBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Linear">Params.MetricInfo.BucketsDefinition.Linear (oneof)</a></code></td>
<td>
<p>The linear buckets.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.exponential_buckets" class="oneof">
<td><code>exponentialBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Exponential">Params.MetricInfo.BucketsDefinition.Exponential (oneof)</a></code></td>
<td>
<p>The exponential buckets.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.explicit_buckets" class="oneof">
<td><code>explicitBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Explicit">Params.MetricInfo.BucketsDefinition.Explicit (oneof)</a></code></td>
<td>
<p>The explicit buckets.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Explicit">Params.MetricInfo.BucketsDefinition.Explicit</h2>
<section>
<p>Specifies a set of buckets with arbitrary widths.</p>
<p>There are <code>size(bounds) + 1</code> (= <code>N</code>) buckets. Bucket <code>i</code> has the following
boundaries:</p>
<ul>
<li>Upper bound (<code>0 &lt;= i &lt; N-1</code>): <code>bounds[i]</code></li>
<li>Lower bound (<code>1 &lt;= i &lt; N</code>): <code>bounds[i - 1]</code></li>
</ul>
<p>The <code>bounds</code> field must contain at least one element. If <code>bounds</code> has
only one element, then there are no finite buckets, and that single
element is the common boundary of the overflow and underflow buckets.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Explicit.bounds">
<td><code>bounds</code></td>
<td><code>double[]</code></td>
<td>
<p>The values must be monotonically increasing.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Exponential">Params.MetricInfo.BucketsDefinition.Exponential</h2>
<section>
<p>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.</p>
<p>There are <code>num_finite_buckets + 2</code> (= <code>N</code>) buckets. The two additional
buckets are the underflow and overflow buckets.</p>
<p>Bucket <code>i</code> has the following boundaries:</p>
<ul>
<li>Upper bound (0 &lt;= i &lt; N-1): <code>scale * (growth_factor ^ i)</code></li>
<li>Lower bound (1 &lt;= i &lt; N): <code>scale * (growth_factor ^ (i - 1))</code></li>
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.num_finite_buckets">
<td><code>numFiniteBuckets</code></td>
<td><code>int32</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.growth_factor">
<td><code>growthFactor</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 1.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.scale">
<td><code>scale</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Linear">Params.MetricInfo.BucketsDefinition.Linear</h2>
<section>
<p>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.</p>
<p>There are <code>num_finite_buckets + 2</code> (= <code>N</code>) buckets. The two additional
buckets are the underflow and overflow buckets.</p>
<p>Bucket <code>i</code> has the following boundaries:</p>
<ul>
<li>Upper bound (<code>0 &lt;= i &lt; N-1</code>): <code>offset + (width * i)</code></li>
<li>Lower bound (<code>1 &lt;= i &lt; N</code>): <code>offset + (width * (i - 1))</code></li>
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.num_finite_buckets">
<td><code>numFiniteBuckets</code></td>
<td><code>int32</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.width">
<td><code>width</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.offset">
<td><code>offset</code></td>
<td><code>double</code></td>
<td>
<p>Lower bound of the first bucket.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.Kind">Params.MetricInfo.Kind</h2>
<section>
<p>Describes what kind of metric this is.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.Kind.UNSPECIFIED">
<td><code>UNSPECIFIED</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Kind.GAUGE">
<td><code>GAUGE</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Kind.COUNTER">
<td><code>COUNTER</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Kind.DISTRIBUTION">
<td><code>DISTRIBUTION</code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,263 +0,0 @@
---
title: prometheus Config
overview: Generated documentation for Mixer's prometheus Adapter Configuration Schema
order: 40
layout: docs
type: markdown
---
<a name="rpcAdapter.prometheus.configIndex"></a>
### Index
* [Params](#adapter.prometheus.config.Params)
(message)
* [Params.MetricInfo](#adapter.prometheus.config.Params.MetricInfo)
(message)
* [Params.MetricInfo.BucketsDefinition](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition)
(message)
* [Params.MetricInfo.BucketsDefinition.Explicit](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit)
(message)
* [Params.MetricInfo.BucketsDefinition.Exponential](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential)
(message)
* [Params.MetricInfo.BucketsDefinition.Linear](#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear)
(message)
* [Params.MetricInfo.Kind](#adapter.prometheus.config.Params.MetricInfo.Kind)
(enum)
<a name="adapter.prometheus.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.metrics"></a>
<tr>
<td><code>metrics[]</code></td>
<td>repeated <a href="#adapter.prometheus.config.Params.MetricInfo">MetricInfo</a></td>
<td>The set of metrics to represent in Prometheus. If a metric is defined in Istio but doesn't have a corresponding shape here, it will not be populated at runtime.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo"></a>
### MetricInfo
Describes how a metric should be represented in Prometheus.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.name"></a>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>Recommended. The name is used to register the prometheus metric. It must be unique across all prometheus metrics as prometheus does not allow duplicate names. If name is not specified a sanitized version of instanceName is used.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.instanceName"></a>
<tr>
<td><code>instanceName</code></td>
<td>string</td>
<td>Required. The name is the fully qualified name of the Istio metric instance that this MetricInfo processes.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.description"></a>
<tr>
<td><code>description</code></td>
<td>string</td>
<td>Optional. A human readable description of this metric.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.kind"></a>
<tr>
<td><code>kind</code></td>
<td><a href="#adapter.prometheus.config.Params.MetricInfo.Kind">Kind</a></td>
<td></td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.buckets"></a>
<tr>
<td><code>buckets</code></td>
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition">BucketsDefinition</a></td>
<td>For metrics with a metric kind of DISTRIBUTION, this provides a mechanism for configuring the buckets that will be used to store the aggregated values. This field must be provided for metrics declared to be of type DISTRIBUTION. This field will be ignored for non-distribution metric kinds.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.labelNames"></a>
<tr>
<td><code>labelNames[]</code></td>
<td>repeated string</td>
<td>The names of labels to use: these need to match the dimensions of the Istio metric.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition"></a>
### BucketsDefinition
Describes buckets for DISTRIBUTION kind metrics.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.linearBuckets"></a>
<tr>
<td><code>linearBuckets</code></td>
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear">Linear</a> (oneof )</td>
<td>The linear buckets.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.exponentialBuckets"></a>
<tr>
<td><code>exponentialBuckets</code></td>
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential">Exponential</a> (oneof )</td>
<td>The exponential buckets.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.explicitBuckets"></a>
<tr>
<td><code>explicitBuckets</code></td>
<td><a href="#adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit">Explicit</a> (oneof )</td>
<td>The explicit buckets.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit"></a>
### Explicit
Specifies a set of buckets with arbitrary widths.
There are `size(bounds) + 1` (= `N`) buckets. Bucket `i` has the following
boundaries:
* Upper bound (`0 <= i < N-1`): `bounds[i]`
* Lower bound (`1 <= i < N`): `bounds[i - 1]`
The `bounds` field must contain at least one element. If `bounds` has
only one element, then there are no finite buckets, and that single
element is the common boundary of the overflow and underflow buckets.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Explicit.bounds"></a>
<tr>
<td><code>bounds[]</code></td>
<td>repeated double</td>
<td>The values must be monotonically increasing.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential"></a>
### Exponential
Specifies an exponential sequence of buckets that have a width that is
proportional to the value of the lower bound. Each bucket represents a
constant relative uncertainty on a specific value in the bucket.
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
buckets are the underflow and overflow buckets.
Bucket `i` has the following boundaries:
* Upper bound (0 <= i < N-1): `scale * (growthFactor ^ i)`
* Lower bound (1 <= i < N): `scale * (growthFactor ^ (i - 1))`
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.numFiniteBuckets"></a>
<tr>
<td><code>numFiniteBuckets</code></td>
<td>int32</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.growthFactor"></a>
<tr>
<td><code>growthFactor</code></td>
<td>double</td>
<td>Must be greater than 1.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Exponential.scale"></a>
<tr>
<td><code>scale</code></td>
<td>double</td>
<td>Must be greater than 0.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear"></a>
### Linear
Specifies a linear sequence of buckets that all have the same width
(except overflow and underflow). Each bucket represents a constant
absolute uncertainty on the specific value in the bucket.
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
buckets are the underflow and overflow buckets.
Bucket `i` has the following boundaries:
* Upper bound (`0 <= i < N-1`): `offset + (width * i)`
* Lower bound (`1 <= i < N`): `offset + (width * (i - 1))`
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.numFiniteBuckets"></a>
<tr>
<td><code>numFiniteBuckets</code></td>
<td>int32</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.width"></a>
<tr>
<td><code>width</code></td>
<td>double</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.BucketsDefinition.Linear.offset"></a>
<tr>
<td><code>offset</code></td>
<td>double</td>
<td>Lower bound of the first bucket.</td>
</tr>
</table>
<a name="adapter.prometheus.config.Params.MetricInfo.Kind"></a>
### Kind
Describes what kind of metric this is.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.UNSPECIFIED"></a>
<tr>
<td>UNSPECIFIED</td>
<td></td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.GAUGE"></a>
<tr>
<td>GAUGE</td>
<td></td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.COUNTER"></a>
<tr>
<td>COUNTER</td>
<td></td>
</tr>
<a name="adapter.prometheus.config.Params.MetricInfo.Kind.DISTRIBUTION"></a>
<tr>
<td>DISTRIBUTION</td>
<td></td>
</tr>
</table>

View File

@ -0,0 +1,61 @@
---
title: RBAC
overview: Adapter that exposes Istio's Role-Based Access Control model.
location: https://istio.io/docs/reference/config/adapters/rbac.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>rbac</code> adapter provides Role-Based Access Control (RBAC) functionality for
for services within the Istio mesh.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>rbac</code> adapter.</p>
<p>For example, the following configuration defines a RBAC handler with
configuration store URL pointing to Kubernetes etcd (&ldquo;k8s://&rdquo;).
If you want to run Mixer locally, you can set the configuration store
URL to a local directory (e.g., &ldquo;fs:///tmp/testdata/configroot&rdquo;).</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: rbac
metadata:
name: rbachandler
namespace: istio-system
spec:
config_store_url: &quot;fs:///tmp/testdata/config&quot;
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.config_store_url">
<td><code>configStoreUrl</code></td>
<td><code>string</code></td>
<td>
<p>URL for the config store. It is used to initiate a new Store instance.
Following are some examples of the config store URL:
* &ldquo;k8s://&rdquo;
* &ldquo;fs:///tmp/testdata/configroot&rdquo;</p>
</td>
</tr>
<tr id="Params.cache_duration">
<td><code>cacheDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>The duration for which authorization results may be cached.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,202 @@
---
title: Redis Quota
overview: Adapter for a Redis-based quota management system.
location: https://istio.io/docs/reference/config/adapters/redisquota.html
layout: protoc-gen-docs
number_of_entries: 4
---
{% raw %}
<p>The <code>redisquota</code> adapter can be used to support Istio&rsquo;s quota management
system. It depends on a Redis server to store quota values.</p>
<h2 id="Params">Params</h2>
<section>
<p>redisquota adapter supports the rate limit quota using either fixed or
rolling window algorithm. And it is using Redis as a shared data storage.</p>
<p>Example configuration:</p>
<p>redisServerUrl: localhost:6379
connectionPoolSize: 10
quotas:
- name: requestCount.quota.istio-system
maxAmount: 50
validDuration: 60s
bucketDuration: 1s
rateLimitAlgorithm: ROLLING_WINDOW
overrides:
- dimensions:
destination: ratings
source: reviews
maxAmount: 12
- dimensions:
destination: reviews
maxAmount: 5</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.quotas">
<td><code>quotas</code></td>
<td><code><a href="#Params.Quota">Params.Quota[]</a></code></td>
<td>
<p>The set of known quotas. At least one quota configuration is required</p>
</td>
</tr>
<tr id="Params.redis_server_url">
<td><code>redisServerUrl</code></td>
<td><code>string</code></td>
<td>
<p>Redis connection string <hostname>:<port number>
ex) localhost:6379</p>
</td>
</tr>
<tr id="Params.connection_pool_size">
<td><code>connectionPoolSize</code></td>
<td><code>int64</code></td>
<td>
<p>Maximum number of idle connections to redis
Default is 10 connections per every CPU as reported by runtime.NumCPU.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Override">Params.Override</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Override.dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>The specific dimensions for which this override applies.
String representation of instance dimensions is used to check against configured dimensions.
dimensions should not be empty</p>
</td>
</tr>
<tr id="Params.Override.max_amount">
<td><code>maxAmount</code></td>
<td><code>int64</code></td>
<td>
<p>The upper limit for this quota override.
This value should be bigger than 0</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Quota">Params.Quota</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Quota.name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>The name of the quota</p>
</td>
</tr>
<tr id="Params.Quota.max_amount">
<td><code>maxAmount</code></td>
<td><code>int64</code></td>
<td>
<p>The upper limit for this quota. max_amount should be bigger than 0</p>
</td>
</tr>
<tr id="Params.Quota.valid_duration">
<td><code>validDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>The amount of time allocated quota remains valid before it is
automatically released. This is only meaningful for rate limit quotas.
value should be 0 &lt; valid_duration</p>
</td>
</tr>
<tr id="Params.Quota.bucket_duration">
<td><code>bucketDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>bucket<em>duration will be ignored if rate</em>limit<em>algorithm is FIXED</em>WINDOW
value should be 0 &lt; bucket<em>duration &lt; valid</em>duration</p>
</td>
</tr>
<tr id="Params.Quota.rate_limit_algorithm">
<td><code>rateLimitAlgorithm</code></td>
<td><code><a href="#Params.QuotaAlgorithm">Params.QuotaAlgorithm</a></code></td>
<td>
<p>Quota management algorithm. The default value is FIXED_WINDOW</p>
</td>
</tr>
<tr id="Params.Quota.overrides">
<td><code>overrides</code></td>
<td><code><a href="#Params.Override">Params.Override[]</a></code></td>
<td>
<p>Overrides associated with this quota.
The first matching override is applied.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.QuotaAlgorithm">Params.QuotaAlgorithm</h2>
<section>
<p>Algorithms for rate-limiting:</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.QuotaAlgorithm.FIXED_WINDOW">
<td><code>FIXED_WINDOW</code></td>
<td>
<p>FIXED_WINDOW The fixed window approach can allow 2x peak specified rate, whereas the rolling-window doesn&rsquo;t.</p>
</td>
</tr>
<tr id="Params.QuotaAlgorithm.ROLLING_WINDOW">
<td><code>ROLLING_WINDOW</code></td>
<td>
<p>ROLLING_WINDOW The rolling window algorithm&rsquo;s additional precision comes at the cost of increased redis resource usage.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,175 @@
---
title: Service Control
overview: Adapter that delivers logs and metrics to Google Service Control
location: https://istio.io/docs/reference/config/adapters/servicecontrol.html
layout: protoc-gen-docs
number_of_entries: 4
---
{% raw %}
<p>The <code>servicecontrol</code> adapter delivers logs and metrics to
<a href="https://cloud.google.com/service-control">Google Service Control</a>.</p>
<h2 id="GcpServiceSetting">GcpServiceSetting</h2>
<section>
<p>Adapter setting for a managed GCP service.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="GcpServiceSetting.mesh_service_name">
<td><code>meshServiceName</code></td>
<td><code>string</code></td>
<td>
<p>Local service name on the mesh, which matches destination.service attribute.</p>
</td>
</tr>
<tr id="GcpServiceSetting.google_service_name">
<td><code>googleServiceName</code></td>
<td><code>string</code></td>
<td>
<p>Fully qualified GCP service name.</p>
</td>
</tr>
<tr id="GcpServiceSetting.quotas">
<td><code>quotas</code></td>
<td><code><a href="#Quota">Quota[]</a></code></td>
<td>
<p>Quota configs</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>servicecontrol</code> adapter.</p>
<p>Sample adapter config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: servicecontrol
metadata:
name: testhandler
namespace: istio-system
spec:
runtime_config:
check_cache_size: 200
check_result_expiration: 60s
credential_path: &quot;/path/to/token.json&quot;
service_configs:
- mesh_service_name: &quot;echo.local.svc&quot;
google_service_name: &quot;echo.endpoints.cloud.goog&quot;
quotas:
- name: ratelimit.quota.istio-system
google_quota_metric_name: read-requests
expiration: 1m
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.runtime_config">
<td><code>runtimeConfig</code></td>
<td><code><a href="#RuntimeConfig">RuntimeConfig</a></code></td>
<td>
</td>
</tr>
<tr id="Params.credential_path">
<td><code>credentialPath</code></td>
<td><code>string</code></td>
<td>
<p>A path to JSON token file, usually mounted as Kubernetes secret on pod.</p>
</td>
</tr>
<tr id="Params.service_configs">
<td><code>serviceConfigs</code></td>
<td><code><a href="#GcpServiceSetting">GcpServiceSetting[]</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Quota">Quota</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Quota.name">
<td><code>name</code></td>
<td><code>string</code></td>
<td>
<p>Istio quota name.</p>
</td>
</tr>
<tr id="Quota.google_quota_metric_name">
<td><code>googleQuotaMetricName</code></td>
<td><code>string</code></td>
<td>
<p>The corresponding Google quota metric name.</p>
</td>
</tr>
<tr id="Quota.expiration">
<td><code>expiration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>Quota token expiration time period.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="RuntimeConfig">RuntimeConfig</h2>
<section>
<p>Adapter runtime config paramters.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="RuntimeConfig.check_cache_size">
<td><code>checkCacheSize</code></td>
<td><code>int32</code></td>
<td>
</td>
</tr>
<tr id="RuntimeConfig.check_result_expiration">
<td><code>checkResultExpiration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,195 @@
---
title: SolarWinds
overview: Adapter to deliver logs and metrics to Papertrail and AppOptics backends
location: https://istio.io/docs/reference/config/adapters/solarwinds.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>solarwinds</code> adapter enables Istio to deliver log and metric data to the
<a href="https://www.papertrailapp.com">Papertrail</a> logging backendu and the
<a href="https://www.appoptics.com">AppOptics</a> monitoring backend.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>solarwinds</code> adapter.</p>
<p>Example config usage:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: solarwinds
metadata:
name: handler
namespace: istio-system
spec:
appoptics_access_token: &lt;APPOPTICS SAMPLE TOKEN&gt;
papertrail_url: &lt;PAPERTRAIL URL&gt;
papertrail_local_retention_duration: &lt;RETENTION PERIOD FOR LOGS LOCALLY, Optional&gt;
metrics:
requestcount.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
- response_code
requestduration.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
- response_code
requestsize.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
- response_code
responsesize.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
- response_code
tcpbytesent.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
tcpbytereceived.metric.istio-system:
label_names:
- source_service
- source_version
- destination_service
- destination_version
logs:
solarwindslogentry.logentry.istio-system:
payloadTemplate: '{{or (.originIp) &quot;-&quot;}} - {{or (.sourceUser) &quot;-&quot;}} [{{or (.timestamp.Format &quot;2006-01-02T15:04:05Z07:00&quot;) &quot;-&quot;}}] &quot;{{or (.method) &quot;-&quot;}} {{or (.url) &quot;-&quot;}} {{or (.protocol) &quot;-&quot;}}&quot; {{or (.responseCode) &quot;-&quot;}} {{or (.responseSize) &quot;-&quot;}}'
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.appoptics_access_token">
<td><code>appopticsAccessToken</code></td>
<td><code>string</code></td>
<td>
<p>AppOptics Access Token needed to send metrics to AppOptics. If no access token is given then metrics
will NOT be shipped to AppOptics</p>
</td>
</tr>
<tr id="Params.appoptics_batch_size">
<td><code>appopticsBatchSize</code></td>
<td><code>int32</code></td>
<td>
<p>Optional. Max batch size of metrics to be sent to AppOptics.
AppOptics does not allow batch size greater than 1000.
If this is unspecified or given a value 0 explicitely, a default batch size of 1000 will be used.</p>
</td>
</tr>
<tr id="Params.papertrail_url">
<td><code>papertrailUrl</code></td>
<td><code>string</code></td>
<td>
<p>Papertrail url to ship logs to. If no papertrail url is given then the logs will NOT be shipped but rather
dropped.</p>
</td>
</tr>
<tr id="Params.papertrail_local_retention_duration">
<td><code>papertrailLocalRetentionDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>This is the duration for which logs will be persisted locally until it is shipped to papertrail in the event
of a network failure. Default value is 1 hour.</p>
</td>
</tr>
<tr id="Params.metrics">
<td><code>metrics</code></td>
<td><code>map&lt;string, <a href="#Params.MetricInfo">Params.MetricInfo</a>&gt;</code></td>
<td>
<p>A map of Istio metric name to solarwinds metric info.</p>
</td>
</tr>
<tr id="Params.logs">
<td><code>logs</code></td>
<td><code>map&lt;string, <a href="#Params.LogInfo">Params.LogInfo</a>&gt;</code></td>
<td>
<p>A map of Istio logentry name to solarwinds log info.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.LogInfo">Params.LogInfo</h2>
<section>
<p>Describes how to represent an Istio log entry in Solarwinds AppOptics</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.LogInfo.payload_template">
<td><code>payloadTemplate</code></td>
<td><code>string</code></td>
<td>
<p>Optional. A golang text/template template (more details about golang text/template&rsquo;s templating can be
found here: https://golang.org/pkg/text/template/) that will be executed to construct the payload for
this log entry.
An example template that could be used:
{{or (.originIp) &ldquo;-&rdquo;}} - {{or (.sourceUser) &ldquo;-&rdquo;}} [{{or (.timestamp.Format &ldquo;2006-01-02T15:04:05Z07:00&rdquo;) &ldquo;-&rdquo;}}] &ldquo;{{or (.method) &ldquo;-&rdquo;}} {{or (.url) &ldquo;-&rdquo;}} {{or (.protocol) &ldquo;-&rdquo;}}&rdquo; {{or (.responseCode) &ldquo;-&rdquo;}} {{or (.responseSize) &ldquo;-&rdquo;}}
A sample log that will be created after parsing the template with appropriate variables will look like this:
Jan 23 21:53:02 istio-mixer-57d88dc4b4-rbgmc istio: 10.32.0.15 - kubernetes://istio-ingress-78545c5bc9-wbr6g.istio-system [2018-01-24T02:53:02Z] &ldquo;GET /productpage http&rdquo; 200 5599
It will be given the full set of variables for the log to use to construct its result.
If it is not provided, a default template in place will be used.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo">Params.MetricInfo</h2>
<section>
<p>Describes how to represent an Istio metric in Solarwinds AppOptics</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.label_names">
<td><code>labelNames</code></td>
<td><code>string[]</code></td>
<td>
<p>The names of labels to use: these need to match the dimensions of the Istio metric.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,542 @@
---
title: Stackdriver
overview: Adapter to deliver logs and metrics to Stackdriver
location: https://istio.io/docs/reference/config/adapters/stackdriver.html
layout: protoc-gen-docs
number_of_entries: 10
---
{% raw %}
<p>The <code>stackdriver</code> adapter enables Istio to deliver log and metric data to the
<a href="https://cloud.google.com/stackdriver/">Stackdriver</a> logging and monitoring backend.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>stackdriver</code> adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.endpoint">
<td><code>endpoint</code></td>
<td><code>string</code></td>
<td>
<p>Endpoint URL to send stackdriver data - leave empty to use the
StackDriver SDK&rsquo;s default value (monitoring.googleapis.com).</p>
</td>
</tr>
<tr id="Params.project_id">
<td><code>projectId</code></td>
<td><code>string</code></td>
<td>
<p>GCP Project to attach metrics to.</p>
</td>
</tr>
<tr id="Params.push_interval">
<td><code>pushInterval</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>This adapter batches the data it sends to Stackdriver; we will push to stackdriver every push_interval.
If no value is provided we default to once per minute.</p>
</td>
</tr>
<tr id="Params.app_credentials" class="oneof oneof-start">
<td><code>appCredentials</code></td>
<td><code>bool (oneof)</code></td>
<td>
<p>Use Google&rsquo;s Application Default Credentials to authorize calls made
by the StackDriver SDK.</p>
<p><a href="https://developers.google.com/identity/protocols/application-default-credentials">See Google&rsquo;s documentation</a>.</p>
</td>
</tr>
<tr id="Params.api_key" class="oneof">
<td><code>apiKey</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>The API Key to be used for auth.</p>
</td>
</tr>
<tr id="Params.service_account_path" class="oneof">
<td><code>serviceAccountPath</code></td>
<td><code>string (oneof)</code></td>
<td>
<p>The path to a Google service account credential file, relative to
the Mixer. E.g. <code>/etc/opt/mixer/gcp-serviceaccount-creds.json</code>
or <code>./testdata/my-test-account-creds.json</code>.</p>
</td>
</tr>
<tr id="Params.metric_info">
<td><code>metricInfo</code></td>
<td><code>map&lt;string, <a href="#Params.MetricInfo">Params.MetricInfo</a>&gt;</code></td>
<td>
<p>A map of Istio metric name to Stackdriver metric info.</p>
</td>
</tr>
<tr id="Params.log_info">
<td><code>logInfo</code></td>
<td><code>map&lt;string, <a href="#Params.LogInfo">Params.LogInfo</a>&gt;</code></td>
<td>
<p>A map of Istio LogEntry name to Stackdriver log info.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.LogInfo">Params.LogInfo</h2>
<section>
<p>Describes how to represent an Istio Log in Stackdriver.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.LogInfo.label_names">
<td><code>labelNames</code></td>
<td><code>string[]</code></td>
<td>
<p>The logging template provides a set of variables; these list the subset of variables that should be used to
form Stackdriver labels for the log entry.</p>
</td>
</tr>
<tr id="Params.LogInfo.payload_template">
<td><code>payloadTemplate</code></td>
<td><code>string</code></td>
<td>
<p>A golang text/template template that will be executed to construct the payload for this log entry.
It will be given the full set of variables for the log to use to construct its result.</p>
</td>
</tr>
<tr id="Params.LogInfo.http_mapping">
<td><code>httpMapping</code></td>
<td><code><a href="#Params.LogInfo.HttpRequestMapping">Params.LogInfo.HttpRequestMapping</a></code></td>
<td>
<p>If an HttpRequestMapping is provided, a HttpRequest object will be filled out for this log entry using the
variables named in the mapping to populate the fields of the request struct from the instance&rsquo;s variables.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.LogInfo.HttpRequestMapping">Params.LogInfo.HttpRequestMapping</h2>
<section>
<p>Maps from template variable names to the various fields of Stackdriver&rsquo;s HTTP request struct.
See https://godoc.org/cloud.google.com/go/logging#HTTPRequest</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.LogInfo.HttpRequestMapping.status">
<td><code>status</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.Status</p>
</td>
</tr>
<tr id="Params.LogInfo.HttpRequestMapping.request_size">
<td><code>requestSize</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.RequestSize</p>
</td>
</tr>
<tr id="Params.LogInfo.HttpRequestMapping.response_size">
<td><code>responseSize</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.ResponseSize</p>
</td>
</tr>
<tr id="Params.LogInfo.HttpRequestMapping.latency">
<td><code>latency</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.Latency</p>
</td>
</tr>
<tr id="Params.LogInfo.HttpRequestMapping.local_ip">
<td><code>localIp</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.LocalIP</p>
</td>
</tr>
<tr id="Params.LogInfo.HttpRequestMapping.remote_ip">
<td><code>remoteIp</code></td>
<td><code>string</code></td>
<td>
<p>template variable name to map into HTTPRequest.RemoteIP</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo">Params.MetricInfo</h2>
<section>
<p>Describes how to represent an Istio metric in Stackdriver.
See https://github.com/googleapis/googleapis/blob/master/google/api/metric.proto</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.kind">
<td><code>kind</code></td>
<td><code><a href="#google.api.MetricDescriptor.MetricKind">google.api.MetricDescriptor.MetricKind</a></code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.value">
<td><code>value</code></td>
<td><code><a href="#google.api.MetricDescriptor.ValueType">google.api.MetricDescriptor.ValueType</a></code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.buckets">
<td><code>buckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition">Params.MetricInfo.BucketsDefinition</a></code></td>
<td>
<p>For metrics with a metric value of DISTRIBUTION, this provides a mechanism
for configuring the buckets that will be used to store the aggregated values.
This field must be provided for metrics declared to be of type DISTRIBUTION.
This field will be ignored for non-distribution metric kinds.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition">Params.MetricInfo.BucketsDefinition</h2>
<section>
<p>Describes buckets for DISTRIBUTION valued metrics.
TODO: look into using google.api.distribution.proto instead - we would pull it in but it has a ton of
dependencies it doesn&rsquo;t actually use.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.linear_buckets" class="oneof oneof-start">
<td><code>linearBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Linear">Params.MetricInfo.BucketsDefinition.Linear (oneof)</a></code></td>
<td>
<p>The linear buckets.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.exponential_buckets" class="oneof">
<td><code>exponentialBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Exponential">Params.MetricInfo.BucketsDefinition.Exponential (oneof)</a></code></td>
<td>
<p>The exponential buckets.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.explicit_buckets" class="oneof">
<td><code>explicitBuckets</code></td>
<td><code><a href="#Params.MetricInfo.BucketsDefinition.Explicit">Params.MetricInfo.BucketsDefinition.Explicit (oneof)</a></code></td>
<td>
<p>The explicit buckets.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Explicit">Params.MetricInfo.BucketsDefinition.Explicit</h2>
<section>
<p>Specifies a set of buckets with arbitrary widths.</p>
<p>There are <code>size(bounds) + 1</code> (= <code>N</code>) buckets. Bucket <code>i</code> has the following
boundaries:</p>
<ul>
<li>Upper bound (<code>0 &lt;= i &lt; N-1</code>): <code>bounds[i]</code></li>
<li>Lower bound (<code>1 &lt;= i &lt; N</code>): <code>bounds[i - 1]</code></li>
</ul>
<p>The <code>bounds</code> field must contain at least one element. If <code>bounds</code> has
only one element, then there are no finite buckets, and that single
element is the common boundary of the overflow and underflow buckets.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Explicit.bounds">
<td><code>bounds</code></td>
<td><code>double[]</code></td>
<td>
<p>The values must be monotonically increasing.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Exponential">Params.MetricInfo.BucketsDefinition.Exponential</h2>
<section>
<p>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.</p>
<p>There are <code>num_finite_buckets + 2</code> (= <code>N</code>) buckets. The two additional
buckets are the underflow and overflow buckets.</p>
<p>Bucket <code>i</code> has the following boundaries:</p>
<ul>
<li>Upper bound (0 &lt;= i &lt; N-1): <code>scale * (growth_factor ^ i)</code></li>
<li>Lower bound (1 &lt;= i &lt; N): <code>scale * (growth_factor ^ (i - 1))</code></li>
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.num_finite_buckets">
<td><code>numFiniteBuckets</code></td>
<td><code>int32</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.growth_factor">
<td><code>growthFactor</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 1.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Exponential.scale">
<td><code>scale</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.BucketsDefinition.Linear">Params.MetricInfo.BucketsDefinition.Linear</h2>
<section>
<p>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.</p>
<p>There are <code>num_finite_buckets + 2</code> (= <code>N</code>) buckets. The two additional
buckets are the underflow and overflow buckets.</p>
<p>Bucket <code>i</code> has the following boundaries:</p>
<ul>
<li>Upper bound (<code>0 &lt;= i &lt; N-1</code>): <code>offset + (width * i)</code></li>
<li>Lower bound (<code>1 &lt;= i &lt; N</code>): <code>offset + (width * (i - 1))</code></li>
</ul>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.num_finite_buckets">
<td><code>numFiniteBuckets</code></td>
<td><code>int32</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.width">
<td><code>width</code></td>
<td><code>double</code></td>
<td>
<p>Must be greater than 0.</p>
</td>
</tr>
<tr id="Params.MetricInfo.BucketsDefinition.Linear.offset">
<td><code>offset</code></td>
<td><code>double</code></td>
<td>
<p>Lower bound of the first bucket.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="google.api.MetricDescriptor.MetricKind">google.api.MetricDescriptor.MetricKind</h2>
<section>
<p>The kind of measurement. It describes how the data is reported.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="google.api.MetricDescriptor.MetricKind.METRIC_KIND_UNSPECIFIED">
<td><code>METRIC_KIND_UNSPECIFIED</code></td>
<td>
<p>Do not use this default value.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.MetricKind.GAUGE">
<td><code>GAUGE</code></td>
<td>
<p>An instantaneous measurement of a value.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.MetricKind.DELTA">
<td><code>DELTA</code></td>
<td>
<p>The change in a value during a time interval.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.MetricKind.CUMULATIVE">
<td><code>CUMULATIVE</code></td>
<td>
<p>A value accumulated over a time interval. Cumulative
measurements in a time series should have the same start time
and increasing end times, until an event resets the cumulative
value to zero and sets a new start time for the following
points.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="google.api.MetricDescriptor.ValueType">google.api.MetricDescriptor.ValueType</h2>
<section>
<p>The value type of a metric.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="google.api.MetricDescriptor.ValueType.VALUE_TYPE_UNSPECIFIED">
<td><code>VALUE_TYPE_UNSPECIFIED</code></td>
<td>
<p>Do not use this default value.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.BOOL">
<td><code>BOOL</code></td>
<td>
<p>The value is a boolean.
This value type can be used only if the metric kind is <code>GAUGE</code>.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.INT64">
<td><code>INT64</code></td>
<td>
<p>The value is a signed 64-bit integer.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.DOUBLE">
<td><code>DOUBLE</code></td>
<td>
<p>The value is a double precision floating point number.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.STRING">
<td><code>STRING</code></td>
<td>
<p>The value is a text string.
This value type can be used only if the metric kind is <code>GAUGE</code>.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.DISTRIBUTION">
<td><code>DISTRIBUTION</code></td>
<td>
<p>The value is a <em><code>Distribution</code></em>.</p>
</td>
</tr>
<tr id="google.api.MetricDescriptor.ValueType.MONEY">
<td><code>MONEY</code></td>
<td>
<p>The value is money.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,437 +0,0 @@
---
title: stackdriver Config
overview: Generated documentation for Mixer's stackdriver Adapter Configuration Schema
order: 50
layout: docs
type: markdown
---
<a name="rpcAdapter.stackdriver.configIndex"></a>
### Index
* [Params](#adapter.stackdriver.config.Params)
(message)
* [Params.LogInfo](#adapter.stackdriver.config.Params.LogInfo)
(message)
* [Params.LogInfo.HttpRequestMapping](#adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping)
(message)
* [Params.MetricInfo](#adapter.stackdriver.config.Params.MetricInfo)
(message)
* [Params.MetricInfo.BucketsDefinition](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition)
(message)
* [Params.MetricInfo.BucketsDefinition.Explicit](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit)
(message)
* [Params.MetricInfo.BucketsDefinition.Exponential](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential)
(message)
* [Params.MetricInfo.BucketsDefinition.Linear](#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear)
(message)
<a name="adapter.stackdriver.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.endpoint"></a>
<tr>
<td><code>endpoint</code></td>
<td>string</td>
<td>Endpoint URL to send stackdriver data - leave empty to use the StackDriver SDK's default value (monitoring.googleapis.com).</td>
</tr>
<a name="adapter.stackdriver.config.Params.projectId"></a>
<tr>
<td><code>projectId</code></td>
<td>string</td>
<td>GCP Project to attach metrics to.</td>
</tr>
<a name="adapter.stackdriver.config.Params.pushInterval"></a>
<tr>
<td><code>pushInterval</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>This adapter batches the data it sends to Stackdriver; we will push to stackdriver every pushInterval. If no value is provided we default to once per minute.</td>
</tr>
<a name="adapter.stackdriver.config.Params.metricInfo"></a>
<tr>
<td><code>metricInfo</code></td>
<td>repeated map&lt;string, <a href="#adapter.stackdriver.config.Params.MetricInfo">MetricInfo</a>&gt;</td>
<td>A map of Istio metric name to Stackdriver metric info.</td>
</tr>
<a name="adapter.stackdriver.config.Params.logInfo"></a>
<tr>
<td><code>logInfo</code></td>
<td>repeated map&lt;string, <a href="#adapter.stackdriver.config.Params.LogInfo">LogInfo</a>&gt;</td>
<td>A map of Istio LogEntry name to Stackdriver log info.</td>
</tr>
<a name="adapter.stackdriver.config.Params.appCredentials"></a>
<tr>
<td><code>appCredentials</code></td>
<td>bool (oneof )</td>
<td><p>Use Google's Application Default Credentials to authorize calls made by the StackDriver SDK.</p><p><a href="https://developers.google.com/identity/protocols/application-default-credentials">See Google's documentation</a>.</p></td>
</tr>
<a name="adapter.stackdriver.config.Params.apiKey"></a>
<tr>
<td><code>apiKey</code></td>
<td>string (oneof )</td>
<td>The API Key to be used for auth.</td>
</tr>
<a name="adapter.stackdriver.config.Params.serviceAccountPath"></a>
<tr>
<td><code>serviceAccountPath</code></td>
<td>string (oneof )</td>
<td>The path to a Google service account credential file, relative to the Mixer. E.g. <code>/etc/opt/mixer/gcp-serviceaccount-creds.json</code> or <code>./testdata/my-test-account-creds.json</code>.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.LogInfo"></a>
### LogInfo
Describes how to represent an Istio Log in Stackdriver.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.labelNames"></a>
<tr>
<td><code>labelNames[]</code></td>
<td>repeated string</td>
<td>The logging template provides a set of variables; these list the subset of variables that should be used to form Stackdriver labels for the log entry.</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.payloadTemplate"></a>
<tr>
<td><code>payloadTemplate</code></td>
<td>string</td>
<td>A golang text/template template that will be executed to construct the payload for this log entry. It will be given the full set of variables for the log to use to construct its result.</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.httpMapping"></a>
<tr>
<td><code>httpMapping</code></td>
<td><a href="#adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping">HttpRequestMapping</a></td>
<td>If an HttpRequestMapping is provided, a HttpRequest object will be filled out for this log entry using the variables named in the mapping to populate the fields of the request struct from the instance's variables.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping"></a>
### HttpRequestMapping
Maps from template variable names to the various fields of Stackdriver's HTTP request struct.
See https://godoc.org/cloud.google.com/go/logging#HTTPRequest
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.status"></a>
<tr>
<td><code>status</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.Status</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.requestSize"></a>
<tr>
<td><code>requestSize</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.RequestSize</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.responseSize"></a>
<tr>
<td><code>responseSize</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.ResponseSize</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.latency"></a>
<tr>
<td><code>latency</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.Latency</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.localIp"></a>
<tr>
<td><code>localIp</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.LocalIP</td>
</tr>
<a name="adapter.stackdriver.config.Params.LogInfo.HttpRequestMapping.remoteIp"></a>
<tr>
<td><code>remoteIp</code></td>
<td>string</td>
<td>template variable name to map into HTTPRequest.RemoteIP</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.MetricInfo"></a>
### MetricInfo
Describes how to represent an Istio metric in Stackdriver.
See https://github.com/googleapis/googleapis/blob/master/google/api/metric.proto
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.kind"></a>
<tr>
<td><code>kind</code></td>
<td><a href="#google.api.MetricDescriptor.MetricKind">MetricKind</a></td>
<td></td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.value"></a>
<tr>
<td><code>value</code></td>
<td><a href="#google.api.MetricDescriptor.ValueType">ValueType</a></td>
<td></td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.buckets"></a>
<tr>
<td><code>buckets</code></td>
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition">BucketsDefinition</a></td>
<td>For metrics with a metric value of DISTRIBUTION, this provides a mechanism for configuring the buckets that will be used to store the aggregated values. This field must be provided for metrics declared to be of type DISTRIBUTION. This field will be ignored for non-distribution metric kinds.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition"></a>
### BucketsDefinition
Describes buckets for DISTRIBUTION valued metrics.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.linearBuckets"></a>
<tr>
<td><code>linearBuckets</code></td>
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear">Linear</a> (oneof )</td>
<td>The linear buckets.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.exponentialBuckets"></a>
<tr>
<td><code>exponentialBuckets</code></td>
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential">Exponential</a> (oneof )</td>
<td>The exponential buckets.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.explicitBuckets"></a>
<tr>
<td><code>explicitBuckets</code></td>
<td><a href="#adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit">Explicit</a> (oneof )</td>
<td>The explicit buckets.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit"></a>
### Explicit
Specifies a set of buckets with arbitrary widths.
There are `size(bounds) + 1` (= `N`) buckets. Bucket `i` has the following
boundaries:
* Upper bound (`0 <= i < N-1`): `bounds[i]`
* Lower bound (`1 <= i < N`): `bounds[i - 1]`
The `bounds` field must contain at least one element. If `bounds` has
only one element, then there are no finite buckets, and that single
element is the common boundary of the overflow and underflow buckets.
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Explicit.bounds"></a>
<tr>
<td><code>bounds[]</code></td>
<td>repeated double</td>
<td>The values must be monotonically increasing.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential"></a>
### Exponential
Specifies an exponential sequence of buckets that have a width that is
proportional to the value of the lower bound. Each bucket represents a
constant relative uncertainty on a specific value in the bucket.
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
buckets are the underflow and overflow buckets.
Bucket `i` has the following boundaries:
* Upper bound (0 <= i < N-1): `scale * (growthFactor ^ i)`
* Lower bound (1 <= i < N): `scale * (growthFactor ^ (i - 1))`
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.numFiniteBuckets"></a>
<tr>
<td><code>numFiniteBuckets</code></td>
<td>int32</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.growthFactor"></a>
<tr>
<td><code>growthFactor</code></td>
<td>double</td>
<td>Must be greater than 1.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Exponential.scale"></a>
<tr>
<td><code>scale</code></td>
<td>double</td>
<td>Must be greater than 0.</td>
</tr>
</table>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear"></a>
### Linear
Specifies a linear sequence of buckets that all have the same width
(except overflow and underflow). Each bucket represents a constant
absolute uncertainty on the specific value in the bucket.
There are `numFiniteBuckets + 2` (= `N`) buckets. The two additional
buckets are the underflow and overflow buckets.
Bucket `i` has the following boundaries:
* Upper bound (`0 <= i < N-1`): `offset + (width * i)`
* Lower bound (`1 <= i < N`): `offset + (width * (i - 1))`
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.numFiniteBuckets"></a>
<tr>
<td><code>numFiniteBuckets</code></td>
<td>int32</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.width"></a>
<tr>
<td><code>width</code></td>
<td>double</td>
<td>Must be greater than 0.</td>
</tr>
<a name="adapter.stackdriver.config.Params.MetricInfo.BucketsDefinition.Linear.offset"></a>
<tr>
<td><code>offset</code></td>
<td>double</td>
<td>Lower bound of the first bucket.</td>
</tr>
</table>
<a name="rpcGoogle.api"></a>
## Package google.api
<a name="rpcGoogle.apiIndex"></a>
### Index
* [MetricDescriptor](#google.api.MetricDescriptor)
(message)
* [MetricDescriptor.MetricKind](#google.api.MetricDescriptor.MetricKind)
(enum)
* [MetricDescriptor.ValueType](#google.api.MetricDescriptor.ValueType)
(enum)
<a name="google.api.MetricDescriptor"></a>
### MetricDescriptor
Defines a metric type and its schema. Once a metric descriptor is created,
deleting or altering it stops data collection and makes the metric type's
existing data unusable.
NOTE: _No fields in this message type.__
<a name="google.api.MetricDescriptor.MetricKind"></a>
### MetricKind
The kind of measurement. It describes how the data is reported.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="google.api.MetricDescriptor.MetricKind.METRICKINDUNSPECIFIED"></a>
<tr>
<td>METRICKINDUNSPECIFIED</td>
<td>Do not use this default value.</td>
</tr>
<a name="google.api.MetricDescriptor.MetricKind.GAUGE"></a>
<tr>
<td>GAUGE</td>
<td>An instantaneous measurement of a value.</td>
</tr>
<a name="google.api.MetricDescriptor.MetricKind.DELTA"></a>
<tr>
<td>DELTA</td>
<td>The change in a value during a time interval.</td>
</tr>
<a name="google.api.MetricDescriptor.MetricKind.CUMULATIVE"></a>
<tr>
<td>CUMULATIVE</td>
<td>A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.</td>
</tr>
</table>
<a name="google.api.MetricDescriptor.ValueType"></a>
### ValueType
The value type of a metric.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="google.api.MetricDescriptor.ValueType.VALUETYPEUNSPECIFIED"></a>
<tr>
<td>VALUETYPEUNSPECIFIED</td>
<td>Do not use this default value.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.BOOL"></a>
<tr>
<td>BOOL</td>
<td>The value is a boolean. This value type can be used only if the metric kind is <code>GAUGE</code>.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.INT64"></a>
<tr>
<td>INT64</td>
<td>The value is a signed 64-bit integer.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.DOUBLE"></a>
<tr>
<td>DOUBLE</td>
<td>The value is a double precision floating point number.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.STRING"></a>
<tr>
<td>STRING</td>
<td>The value is a text string. This value type can be used only if the metric kind is <code>GAUGE</code>.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.DISTRIBUTION"></a>
<tr>
<td>DISTRIBUTION</td>
<td>The value is a <code>Distribution</code>.</td>
</tr>
<a name="google.api.MetricDescriptor.ValueType.MONEY"></a>
<tr>
<td>MONEY</td>
<td>The value is money.</td>
</tr>
</table>

View File

@ -0,0 +1,149 @@
---
title: StatsD
overview: Adapter to deliver metrics to a StatsD backend
location: https://istio.io/docs/reference/config/adapters/statsd.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>statsd</code> adapter enables Istio to deliver metric data to a
<a href="https://github.com/etsy/statsd">StatsD</a> monitoring backend.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>statsd</code> adapter.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.address">
<td><code>address</code></td>
<td><code>string</code></td>
<td>
<p>Address of the statsd server, e.g. localhost:8125</p>
</td>
</tr>
<tr id="Params.prefix">
<td><code>prefix</code></td>
<td><code>string</code></td>
<td>
<p>Metric prefix, do not specify for no prefix</p>
</td>
</tr>
<tr id="Params.flush_duration">
<td><code>flushDuration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
<td>
<p>FlushDuration controls the maximum amount of time between sending metrics to the statsd collection server.
Metrics are reported when either flush<em>bytes is full or flush</em>duration time has elapsed since the last report.</p>
</td>
</tr>
<tr id="Params.flush_bytes">
<td><code>flushBytes</code></td>
<td><code>int32</code></td>
<td>
<p>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.</p>
</td>
</tr>
<tr id="Params.sampling_rate">
<td><code>samplingRate</code></td>
<td><code>float</code></td>
<td>
<p>Chance that any particular metric is sampled when incremented; can take the range [0, 1], defaults to 1 if unspecified.</p>
</td>
</tr>
<tr id="Params.metrics">
<td><code>metrics</code></td>
<td><code>map&lt;string, <a href="#Params.MetricInfo">Params.MetricInfo</a>&gt;</code></td>
<td>
<p>Map of metric name -&gt; info. If a metric&rsquo;s name is not in the map then the metric will not be exported to statsd.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo">Params.MetricInfo</h2>
<section>
<p>Describes how to represent this metric in statsd</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.type">
<td><code>type</code></td>
<td><code><a href="#Params.MetricInfo.Type">Params.MetricInfo.Type</a></code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.name_template">
<td><code>nameTemplate</code></td>
<td><code>string</code></td>
<td>
<p>The template will be filled with values from the metric&rsquo;s labels and the resulting string will be used as
the statsd metric name. This allows easier creation of statsd metrics like <code>action_name-response_code</code>.
The template strings must conform to go&rsquo;s text/template syntax. For the example of <code>action_name-response_code</code>,
we use the template:
<code>{{.apiMethod}}-{{.responseCode}}</code></p>
<p>If name_template is the empty string the Istio metric name will be used for statsd metric&rsquo;s name.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.MetricInfo.Type">Params.MetricInfo.Type</h2>
<section>
<p>The type of metric.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.MetricInfo.Type.UNKNOWN">
<td><code>UNKNOWN</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.COUNTER">
<td><code>COUNTER</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.GAUGE">
<td><code>GAUGE</code></td>
<td>
</td>
</tr>
<tr id="Params.MetricInfo.Type.DISTRIBUTION">
<td><code>DISTRIBUTION</code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,123 +0,0 @@
---
title: statsd Config
overview: Generated documentation for Mixer's statsd Adapter Configuration Schema
order: 60
layout: docs
type: markdown
---
<a name="rpcAdapter.statsd.configIndex"></a>
### Index
* [Params](#adapter.statsd.config.Params)
(message)
* [Params.MetricInfo](#adapter.statsd.config.Params.MetricInfo)
(message)
* [Params.MetricInfo.Type](#adapter.statsd.config.Params.MetricInfo.Type)
(enum)
<a name="adapter.statsd.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.statsd.config.Params.address"></a>
<tr>
<td><code>address</code></td>
<td>string</td>
<td>Address of the statsd server, e.g. localhost:8125</td>
</tr>
<a name="adapter.statsd.config.Params.prefix"></a>
<tr>
<td><code>prefix</code></td>
<td>string</td>
<td>Metric prefix, do not specify for no prefix</td>
</tr>
<a name="adapter.statsd.config.Params.flushDuration"></a>
<tr>
<td><code>flushDuration</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
<td>FlushDuration controls the maximum amount of time between sending metrics to the statsd collection server. Metrics are reported when either flushBytes is full or flushDuration time has elapsed since the last report.</td>
</tr>
<a name="adapter.statsd.config.Params.flushBytes"></a>
<tr>
<td><code>flushBytes</code></td>
<td>int32</td>
<td>Maximum UDP packet size to send; if not specified defaults to 512 bytes. If the statsd server is running on the same (private) network 1432 bytes is recommended for better performance.</td>
</tr>
<a name="adapter.statsd.config.Params.samplingRate"></a>
<tr>
<td><code>samplingRate</code></td>
<td>float</td>
<td>Chance that any particular metric is sampled when incremented; can take the range [0, 1], defaults to 1 if unspecified.</td>
</tr>
<a name="adapter.statsd.config.Params.metrics"></a>
<tr>
<td><code>metrics</code></td>
<td>repeated map&lt;string, <a href="#adapter.statsd.config.Params.MetricInfo">MetricInfo</a>&gt;</td>
<td>Map of metric name -&gt; info. If a metric's name is not in the map then the metric will not be exported to statsd.</td>
</tr>
</table>
<a name="adapter.statsd.config.Params.MetricInfo"></a>
### MetricInfo
Describes how to represent this metric in statsd
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.type"></a>
<tr>
<td><code>type</code></td>
<td><a href="#adapter.statsd.config.Params.MetricInfo.Type">Type</a></td>
<td></td>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.nameTemplate"></a>
<tr>
<td><code>nameTemplate</code></td>
<td>string</td>
<td><p>The template will be filled with values from the metric's labels and the resulting string will be used as the statsd metric name. This allows easier creation of statsd metrics like <code>actionName-responseCode</code>. The template strings must conform to go's text/template syntax. For the example of <code>actionName-responseCode</code>, we use the template: <code>\{\{.apiMethod\}\}-\{\{.responseCode\}\}</code></p><p>If nameTemplate is the empty string the Istio metric name will be used for statsd metric's name.</p></td>
</tr>
</table>
<a name="adapter.statsd.config.Params.MetricInfo.Type"></a>
### Type
The type of metric.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.Type.UNKNOWN"></a>
<tr>
<td>UNKNOWN</td>
<td></td>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.Type.COUNTER"></a>
<tr>
<td>COUNTER</td>
<td></td>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.Type.GAUGE"></a>
<tr>
<td>GAUGE</td>
<td></td>
</tr>
<a name="adapter.statsd.config.Params.MetricInfo.Type.DISTRIBUTION"></a>
<tr>
<td>DISTRIBUTION</td>
<td></td>
</tr>
</table>

View File

@ -0,0 +1,212 @@
---
title: Stdio
overview: Adapter for outputting logs and metrics locally.
location: https://istio.io/docs/reference/config/adapters/stdio.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>stdio</code> adapter enables Istio to output logs and metrics to
the local machine. Logs and metrics can be directed to Mixer&rsquo;s
standard output stream, standard error stream, or to any locally
reachable file. When outputting to files, you can enable file rotation
such that the adapter will automatically manage a set of file backups
as data is generated.</p>
<h2 id="Params">Params</h2>
<section>
<p>Configuration format for the <code>stdio</code> adapter</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.log_stream">
<td><code>logStream</code></td>
<td><code><a href="#Params.Stream">Params.Stream</a></code></td>
<td>
<p>Selects which standard stream to write to for log entries.
STDERR is the default Stream.</p>
</td>
</tr>
<tr id="Params.severity_levels">
<td><code>severityLevels</code></td>
<td><code>map&lt;string, <a href="#Params.Level">Params.Level</a>&gt;</code></td>
<td>
<p>Maps from severity strings as specified in LogEntry instances to
the set of levels supported by this adapter. This defaults to a map of</p>
<pre><code>&quot;INFORMATIONAL&quot; : INFO,
&quot;informational&quot; : INFO,
&quot;INFO&quot; : INFO,
&quot;info&quot; : INFO,
&quot;WARNING&quot; : WARNING,
&quot;warning&quot; : WARNING,
&quot;WARN&quot;: WARNING,
&quot;warning&quot;: WARNING,
&quot;ERROR&quot;: ERROR,
&quot;error&quot;: ERROR,
&quot;ERR&quot;: ERROR,
&quot;err&quot;: ERROR,
&quot;FATAL&quot;: ERROR,
&quot;fatal&quot;: ERROR,
</code></pre>
</td>
</tr>
<tr id="Params.metric_level">
<td><code>metricLevel</code></td>
<td><code><a href="#Params.Level">Params.Level</a></code></td>
<td>
<p>The level to assign to metrics being output. Defaults to INFO.</p>
</td>
</tr>
<tr id="Params.output_as_json">
<td><code>outputAsJson</code></td>
<td><code>bool</code></td>
<td>
<p>Whether to output a console-friendly or json-friendly format. Defaults to true.</p>
</td>
</tr>
<tr id="Params.output_level">
<td><code>outputLevel</code></td>
<td><code><a href="#Params.Level">Params.Level</a></code></td>
<td>
<p>The minimum level to output, anything less than this level is ignored. Defaults to INFO (everything).</p>
</td>
</tr>
<tr id="Params.output_path">
<td><code>outputPath</code></td>
<td><code>string</code></td>
<td>
<p>The file system path when outputting to a file or rotating file.</p>
<p>When using rotated log files, this path is used as a foundational path. This is where log
output is normally saved. When a rotation needs to take place because the file got too big
or too old, then the file is renamed by appending a timestamp to the name. Such renamed
files are called backups. Once a backup has been created, output resumes to this path.</p>
</td>
</tr>
<tr id="Params.max_megabytes_before_rotation">
<td><code>maxMegabytesBeforeRotation</code></td>
<td><code>int32</code></td>
<td>
<p>The maximum size in megabytes of a log file before it gets
rotated. It defaults to 100 megabytes.</p>
</td>
</tr>
<tr id="Params.max_days_before_rotation">
<td><code>maxDaysBeforeRotation</code></td>
<td><code>int32</code></td>
<td>
<p>The maximum number of days to retain old rotated log files based on the
timestamp encoded in their filename. Note that a day is defined as 24
hours and may not exactly correspond to calendar days due to daylight
savings, leap seconds, etc. The default is to remove log files
older than 30 days. 0 indicates no limit.</p>
</td>
</tr>
<tr id="Params.max_rotated_files">
<td><code>maxRotatedFiles</code></td>
<td><code>int32</code></td>
<td>
<p>The maximum number of old rotated log files to retain. The default
is to retain at most 1000 logs. 0 indicates no limit.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Level">Params.Level</h2>
<section>
<p>Importance level for individual items output by this adapter.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Level.INFO">
<td><code>INFO</code></td>
<td>
<p>informational, warning, and error log messages are included</p>
</td>
</tr>
<tr id="Params.Level.WARNING">
<td><code>WARNING</code></td>
<td>
<p>warning and error log messges are included</p>
</td>
</tr>
<tr id="Params.Level.ERROR">
<td><code>ERROR</code></td>
<td>
<p>only error log messages are included</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Params.Stream">Params.Stream</h2>
<section>
<p>Stream is used to select between different log output sinks.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Params.Stream.STDOUT">
<td><code>STDOUT</code></td>
<td>
<p>Output to the Mixer process&rsquo; standard output stream. This is the default value.</p>
</td>
</tr>
<tr id="Params.Stream.STDERR">
<td><code>STDERR</code></td>
<td>
<p>Output to the Mixer process&rsquo; standard error stream.</p>
</td>
</tr>
<tr id="Params.Stream.FILE">
<td><code>FILE</code></td>
<td>
<p>Output to a specific file.</p>
</td>
</tr>
<tr id="Params.Stream.ROTATED_FILE">
<td><code>ROTATED_FILE</code></td>
<td>
<p>Output to a specific rotating file, controlled by the various file rotation options.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,104 +0,0 @@
---
title: stdio Config
overview: Generated documentation for Mixer's stdio Adapter Configuration Schema
order: 70
layout: docs
type: markdown
---
<a name="rpcAdapter.stdio.configIndex"></a>
### Index
* [Params](#adapter.stdio.config.Params)
(message)
* [Params.Level](#adapter.stdio.config.Params.Level)
(enum)
* [Params.Stream](#adapter.stdio.config.Params.Stream)
(enum)
<a name="adapter.stdio.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.stdio.config.Params.logStream"></a>
<tr>
<td><code>logStream</code></td>
<td><a href="#adapter.stdio.config.Params.Stream">Stream</a></td>
<td>Selects which standard stream to write to for log entries. STDERR is the default Stream.</td>
</tr>
<a name="adapter.stdio.config.Params.severityLevels"></a>
<tr>
<td><code>severityLevels</code></td>
<td>repeated map&lt;string, <a href="#adapter.stdio.config.Params.Level">Level</a>&gt;</td>
<td>Maps from severity strings as specified in LogEntry instances to the set of levels supported by this adapter.</td>
</tr>
<a name="adapter.stdio.config.Params.metricLevel"></a>
<tr>
<td><code>metricLevel</code></td>
<td><a href="#adapter.stdio.config.Params.Level">Level</a></td>
<td>The level to assign to metrics being output.</td>
</tr>
<a name="adapter.stdio.config.Params.outputAsJson"></a>
<tr>
<td><code>outputAsJson</code></td>
<td>bool</td>
<td>Whether to output a console-friendly or json-friendly format</td>
</tr>
</table>
<a name="adapter.stdio.config.Params.Level"></a>
### Level
Importance level for individual items output by this adapter.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="adapter.stdio.config.Params.Level.INFO"></a>
<tr>
<td>INFO</td>
<td></td>
</tr>
<a name="adapter.stdio.config.Params.Level.WARNING"></a>
<tr>
<td>WARNING</td>
<td></td>
</tr>
<a name="adapter.stdio.config.Params.Level.ERROR"></a>
<tr>
<td>ERROR</td>
<td></td>
</tr>
</table>
<a name="adapter.stdio.config.Params.Stream"></a>
### Stream
Stream is used to select between different log output sinks.
<table>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
<a name="adapter.stdio.config.Params.Stream.STDOUT"></a>
<tr>
<td>STDOUT</td>
<td></td>
</tr>
<a name="adapter.stdio.config.Params.Stream.STDERR"></a>
<tr>
<td>STDERR</td>
<td></td>
</tr>
</table>

View File

@ -1,33 +0,0 @@
---
title: svcctrl Config
overview: Generated documentation for Mixer's svcctrl Adapter Configuration Schema
order: 80
layout: docs
type: markdown
---
<a name="rpcAdapter.svcctrl.configIndex"></a>
### Index
* [Params](#adapter.svcctrl.config.Params)
(message)
<a name="adapter.svcctrl.config.Params"></a>
### Params
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="adapter.svcctrl.config.Params.serviceName"></a>
<tr>
<td><code>serviceName</code></td>
<td>string</td>
<td>Fully qualified GCP service name.</td>
</tr>
</table>

View File

@ -4,9 +4,10 @@ overview: Configuration affecting the service mesh as a whole
location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
layout: protoc-gen-docs
redirect_from: /docs/reference/config/service-mesh.html
number_of_entries: 5
---
<h2 id="Enumerations">Enumerations</h2>
<h3 id="AuthenticationPolicy">AuthenticationPolicy</h3>
{% raw %}
<h2 id="AuthenticationPolicy">AuthenticationPolicy</h2>
<section>
<p>AuthenticationPolicy defines authentication policy. It can be set for
different scopes (mesh, service …), and the most narrow scope with
@ -14,10 +15,13 @@ non-INHERIT value will be used.
Mesh policy cannot be INHERIT.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AuthenticationPolicy.NONE">
<td><code>NONE</code></td>
<td>
@ -40,83 +44,23 @@ policy.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="MeshConfig.AuthPolicy">MeshConfig.AuthPolicy</h3>
<section>
<p>TODO AuthPolicy needs to be removed and merged with AuthPolicy defined above</p>
<table class="enum-values">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr id="MeshConfig.AuthPolicy.NONE">
<td><code>NONE</code></td>
<td>
<p>Do not encrypt Envoy to Envoy traffic.</p>
</td>
</tr>
<tr id="MeshConfig.AuthPolicy.MUTUAL_TLS">
<td><code>MUTUAL_TLS</code></td>
<td>
<p>Envoy to Envoy traffic is wrapped into mutual TLS connections.</p>
</td>
</tr>
</table>
</section>
<h3 id="MeshConfig.IngressControllerMode">MeshConfig.IngressControllerMode</h3>
<section>
<table class="enum-values">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr id="MeshConfig.IngressControllerMode.OFF">
<td><code>OFF</code></td>
<td>
<p>Disables Istio ingress controller.</p>
</td>
</tr>
<tr id="MeshConfig.IngressControllerMode.DEFAULT">
<td><code>DEFAULT</code></td>
<td>
<p>Istio ingress controller will act on ingress resources that do not
contain any annotation or whose annotations match the value
specified in the ingress_class parameter described earlier. Use this
mode if Istio ingress controller will be the default ingress
controller for the entire kubernetes cluster.</p>
</td>
</tr>
<tr id="MeshConfig.IngressControllerMode.STRICT">
<td><code>STRICT</code></td>
<td>
<p>Istio ingress controller will only act on ingress resources whose
annotations match the value specified in the ingress_class parameter
described earlier. Use this mode if Istio ingress controller will be
a secondary ingress controller (e.g., in addition to a
cloud-provided ingress controller).</p>
</td>
</tr>
</table>
</section>
<h2 id="Messages">Messages</h2>
<h3 id="MeshConfig">MeshConfig</h3>
<h2 id="MeshConfig">MeshConfig</h2>
<section>
<p>MeshConfig defines mesh-wide variables shared by all Envoy instances in the
Istio service mesh.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MeshConfig.egress_proxy_address">
<td><code>egressProxyAddress</code></td>
<td><code>string</code></td>
@ -256,18 +200,93 @@ Instead, use service-level annotations to overwrite the authentication policy.</
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ProxyConfig">ProxyConfig</h3>
<h2 id="MeshConfig.AuthPolicy">MeshConfig.AuthPolicy</h2>
<section>
<p>TODO AuthPolicy needs to be removed and merged with AuthPolicy defined above</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MeshConfig.AuthPolicy.NONE">
<td><code>NONE</code></td>
<td>
<p>Do not encrypt Envoy to Envoy traffic.</p>
</td>
</tr>
<tr id="MeshConfig.AuthPolicy.MUTUAL_TLS">
<td><code>MUTUAL_TLS</code></td>
<td>
<p>Envoy to Envoy traffic is wrapped into mutual TLS connections.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="MeshConfig.IngressControllerMode">MeshConfig.IngressControllerMode</h2>
<section>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MeshConfig.IngressControllerMode.OFF">
<td><code>OFF</code></td>
<td>
<p>Disables Istio ingress controller.</p>
</td>
</tr>
<tr id="MeshConfig.IngressControllerMode.DEFAULT">
<td><code>DEFAULT</code></td>
<td>
<p>Istio ingress controller will act on ingress resources that do not
contain any annotation or whose annotations match the value
specified in the ingress_class parameter described earlier. Use this
mode if Istio ingress controller will be the default ingress
controller for the entire kubernetes cluster.</p>
</td>
</tr>
<tr id="MeshConfig.IngressControllerMode.STRICT">
<td><code>STRICT</code></td>
<td>
<p>Istio ingress controller will only act on ingress resources whose
annotations match the value specified in the ingress_class parameter
described earlier. Use this mode if Istio ingress controller will be
a secondary ingress controller (e.g., in addition to a
cloud-provided ingress controller).</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="ProxyConfig">ProxyConfig</h2>
<section>
<p>ProxyConfig defines variables for individual Envoy instances.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ProxyConfig.config_path">
<td><code>configPath</code></td>
<td><code>string</code></td>
@ -420,5 +439,7 @@ Increase the value of this field if you find that the metrics from Envoys are tr
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -3,33 +3,10 @@ title: Mixer Client
overview: Configuration state for the Mixer client library
location: https://istio.io/docs/reference/config/istio.mixer.v1.config.client.html
layout: protoc-gen-docs
number_of_entries: 24
---
<h2 id="Enumerations">Enumerations</h2>
<h3 id="TransportConfig.NetworkFailPolicy">TransportConfig.NetworkFailPolicy</h3>
<section>
<table class="enum-values">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr id="TransportConfig.NetworkFailPolicy.FAIL_OPEN">
<td><code>FAIL_OPEN</code></td>
<td>
<p>If network fails, request is passed to the backend.</p>
</td>
</tr>
<tr id="TransportConfig.NetworkFailPolicy.FAIL_CLOSE">
<td><code>FAIL_CLOSE</code></td>
<td>
<p>If network fails, request is rejected.</p>
</td>
</tr>
</table>
</section>
<h2 id="Messages">Messages</h2>
<h3 id="APIKey">APIKey</h3>
{% raw %}
<h2 id="APIKey">APIKey</h2>
<section>
<p>APIKey defines the explicit configuration for generating the
<code>request.api_key</code> attribute from HTTP requests.</p>
@ -38,11 +15,14 @@ layout: protoc-gen-docs
for a general overview of API keys as defined by OpenAPI.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="APIKey.query" class="oneof oneof-start">
<td><code>query</code></td>
<td><code>string (oneof)</code></td>
@ -90,18 +70,22 @@ Cookie: X-API-KEY=abcdef12345
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="AttributeMatch">AttributeMatch</h3>
<h2 id="AttributeMatch">AttributeMatch</h2>
<section>
<p>Specifies a match clause to match Istio attributes</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AttributeMatch.clause">
<td><code>clause</code></td>
<td><code>map&lt;string, <a href="#StringMatch">StringMatch</a>&gt;</code></td>
@ -119,18 +103,22 @@ Each map element specifies one condition to match.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="EndUserAuthenticationPolicySpec">EndUserAuthenticationPolicySpec</h3>
<h2 id="EndUserAuthenticationPolicySpec">EndUserAuthenticationPolicySpec</h2>
<section>
<p>Determines how to apply auth policies for individual requests.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="EndUserAuthenticationPolicySpec.jwts">
<td><code>jwts</code></td>
<td><code><a href="#JWT">JWT[]</a></code></td>
@ -161,19 +149,23 @@ include a JWT.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="EndUserAuthenticationPolicySpecBinding">EndUserAuthenticationPolicySpecBinding</h3>
<h2 id="EndUserAuthenticationPolicySpecBinding">EndUserAuthenticationPolicySpecBinding</h2>
<section>
<p>EndUserAuthenticationPolicySpecBinding defines the binding between
EndUserAuthenticationPolicySpecs and one or more IstioService.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="EndUserAuthenticationPolicySpecBinding.services">
<td><code>services</code></td>
<td><code><a href="#IstioService">IstioService[]</a></code></td>
@ -192,16 +184,20 @@ that should be mapped to the specified service(s).</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="EndUserAuthenticationPolicySpecReference">EndUserAuthenticationPolicySpecReference</h3>
<h2 id="EndUserAuthenticationPolicySpecReference">EndUserAuthenticationPolicySpecReference</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="EndUserAuthenticationPolicySpecReference.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -222,9 +218,10 @@ metadata namespace field.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPAPISpec">HTTPAPISpec</h3>
<h2 id="HTTPAPISpec">HTTPAPISpec</h2>
<section>
<p>HTTPAPISpec defines the canonical configuration for generating
API-related attributes from HTTP requests based on the method and
@ -271,14 +268,17 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPAPISpec.attributes">
<td><code>attributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>List of attributes that are generated when <em>any</em> of the HTTP
patterns match. This list typically includes the &ldquo;api.service&rdquo;
@ -310,9 +310,10 @@ i.e. &lsquo;OR&rsquo; semantics.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPAPISpecBinding">HTTPAPISpecBinding</h3>
<h2 id="HTTPAPISpecBinding">HTTPAPISpecBinding</h2>
<section>
<p>HTTPAPISpecBinding defines the binding between HTTPAPISpecs and one or more
IstioService. For example, the following establishes a binding
@ -333,11 +334,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPAPISpecBinding.services">
<td><code>services</code></td>
<td><code><a href="#IstioService">IstioService[]</a></code></td>
@ -356,9 +360,10 @@ conditions defined in the HTTPAPISpecs should not overlap.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPAPISpecPattern">HTTPAPISpecPattern</h3>
<h2 id="HTTPAPISpecPattern">HTTPAPISpecPattern</h2>
<section>
<p>HTTPAPISpecPattern defines a single pattern to match against
incoming HTTP requests. The per-pattern list of attributes is
@ -374,14 +379,17 @@ generated.</p>
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPAPISpecPattern.attributes">
<td><code>attributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>List of attributes that are generated if the HTTP request matches
the specified http<em>method and uri</em>template. This typically
@ -430,9 +438,10 @@ example,</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPAPISpecReference">HTTPAPISpecReference</h3>
<h2 id="HTTPAPISpecReference">HTTPAPISpecReference</h2>
<section>
<p>HTTPAPISpecReference defines a reference to an HTTPAPISpec. This is
typically used for establishing bindings between an HTTPAPISpec and an
@ -444,11 +453,14 @@ HTTPAPISpecReference for service <code>foo</code> in namespace <code>bar</code>.
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPAPISpecReference.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -467,18 +479,22 @@ HTTPAPISpecBinding&rsquo;s metadata namespace field.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HttpClientConfig">HttpClientConfig</h3>
<h2 id="HttpClientConfig">HttpClientConfig</h2>
<section>
<p>Defines the client config for HTTP.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HttpClientConfig.transport">
<td><code>transport</code></td>
<td><code><a href="#TransportConfig">TransportConfig</a></code></td>
@ -508,7 +524,7 @@ client request.</p>
</tr>
<tr id="HttpClientConfig.mixer_attributes">
<td><code>mixerAttributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>Default attributes to send to Mixer in both Check and
Report. This typically includes &ldquo;destination.ip&rdquo; and
@ -518,27 +534,31 @@ Report. This typically includes &ldquo;destination.ip&rdquo; and
</tr>
<tr id="HttpClientConfig.forward_attributes">
<td><code>forwardAttributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>Default attributes to forward to upstream. This typically
includes the &ldquo;source.ip&rdquo; and &ldquo;source.uid&rdquo; attributes.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="IstioService">IstioService</h3>
<h2 id="IstioService">IstioService</h2>
<section>
<p>IstioService identifies a service and optionally service version.
The FQDN of the service is composed from the name, namespace, and implementation-specific domain suffix
(e.g. on Kubernetes, &ldquo;reviews&rdquo; + &ldquo;default&rdquo; + &ldquo;svc.cluster.local&rdquo; -&gt; &ldquo;reviews.default.svc.cluster.local&rdquo;).</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="IstioService.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -581,9 +601,10 @@ The FQDN of the service is composed from the name, namespace, and implementation
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="JWT">JWT</h3>
<h2 id="JWT">JWT</h2>
<section>
<p>JSON Web Token (JWT) token format for authentication as defined by
https://tools.ietf.org/html/rfc7519. See <a href="https://tools.ietf.org/html/rfc6749">OAuth
@ -601,11 +622,14 @@ jwks_uri: https://example.com/.well-known/jwks.json
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="JWT.issuer">
<td><code>issuer</code></td>
<td><code>string</code></td>
@ -689,9 +713,10 @@ It is the cluster name in the Envoy config for the jwks_uri.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="JWT.Location">JWT.Location</h3>
<h2 id="JWT.Location">JWT.Location</h2>
<section>
<p>Defines where to extract the JWT from an HTTP request.</p>
@ -707,11 +732,14 @@ https://tools.ietf.org/html/rfc6750#section-2.3)
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="JWT.Location.header" class="oneof oneof-start">
<td><code>header</code></td>
<td><code>string (oneof)</code></td>
@ -735,18 +763,22 @@ query parameter name.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="Quota">Quota</h3>
<h2 id="Quota">Quota</h2>
<section>
<p>Specifies a quota to use with quota name and amount.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Quota.quota">
<td><code>quota</code></td>
<td><code>string</code></td>
@ -763,19 +795,23 @@ query parameter name.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="QuotaRule">QuotaRule</h3>
<h2 id="QuotaRule">QuotaRule</h2>
<section>
<p>Specifies a rule with list of matches and list of quotas.
If any clause matched, the list of quotas will be used.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="QuotaRule.match">
<td><code>match</code></td>
<td><code><a href="#AttributeMatch">AttributeMatch[]</a></code></td>
@ -793,18 +829,22 @@ If any of match is true, it is matched.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="QuotaSpec">QuotaSpec</h3>
<h2 id="QuotaSpec">QuotaSpec</h2>
<section>
<p>Determines the quotas used for individual requests.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="QuotaSpec.rules">
<td><code>rules</code></td>
<td><code><a href="#QuotaRule">QuotaRule[]</a></code></td>
@ -813,19 +853,23 @@ If any of match is true, it is matched.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="QuotaSpecBinding">QuotaSpecBinding</h3>
<h2 id="QuotaSpecBinding">QuotaSpecBinding</h2>
<section>
<p>QuotaSpecBinding defines the binding between QuotaSpecs and one or more
IstioService.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="QuotaSpecBinding.services">
<td><code>services</code></td>
<td><code><a href="#IstioService">IstioService[]</a></code></td>
@ -844,16 +888,20 @@ conditions defined in the QuotaSpecs should not overlap.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="QuotaSpecBinding.QuotaSpecReference">QuotaSpecBinding.QuotaSpecReference</h3>
<h2 id="QuotaSpecBinding.QuotaSpecReference">QuotaSpecBinding.QuotaSpecReference</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="QuotaSpecBinding.QuotaSpecReference.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -872,18 +920,22 @@ metadata namespace field.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="ServiceConfig">ServiceConfig</h3>
<h2 id="ServiceConfig">ServiceConfig</h2>
<section>
<p>Defines the per-service client configuration.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ServiceConfig.disable_check_calls">
<td><code>disableCheckCalls</code></td>
<td><code>bool</code></td>
@ -902,7 +954,7 @@ metadata namespace field.</p>
</tr>
<tr id="ServiceConfig.mixer_attributes">
<td><code>mixerAttributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>Send these attributes to Mixer in both Check and Report. This
typically includes the &ldquo;destination.service&rdquo; attribute.</p>
@ -933,19 +985,23 @@ typically includes the &ldquo;destination.service&rdquo; attribute.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="StringMatch">StringMatch</h3>
<h2 id="StringMatch">StringMatch</h2>
<section>
<p>Describes how to match a given string in HTTP headers. Match is
case-sensitive.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="StringMatch.exact" class="oneof oneof-start">
<td><code>exact</code></td>
<td><code>string (oneof)</code></td>
@ -970,18 +1026,22 @@ case-sensitive.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="TcpClientConfig">TcpClientConfig</h3>
<h2 id="TcpClientConfig">TcpClientConfig</h2>
<section>
<p>Defines the client config for TCP.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="TcpClientConfig.transport">
<td><code>transport</code></td>
<td><code><a href="#TransportConfig">TransportConfig</a></code></td>
@ -992,7 +1052,7 @@ case-sensitive.</p>
</tr>
<tr id="TcpClientConfig.mixer_attributes">
<td><code>mixerAttributes</code></td>
<td><code><a href="https://istio.io/docs/reference/api/istio.mixer.v1.html#Attributes">istio.mixer.v1.Attributes</a></code></td>
<td><code><a href="#istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</a></code></td>
<td>
<p>Default attributes to send to Mixer in both Check and
Report. This typically includes &ldquo;destination.ip&rdquo; and
@ -1035,18 +1095,22 @@ should not be less than 1 second, otherwise it will be reset to 1 second.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="TransportConfig">TransportConfig</h3>
<h2 id="TransportConfig">TransportConfig</h2>
<section>
<p>Defines the transport config on how to call Mixer.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="TransportConfig.disable_check_cache">
<td><code>disableCheckCache</code></td>
<td><code>bool</code></td>
@ -1088,5 +1152,121 @@ memory. If not specified, the interval is 10 seconds.</p>
</td>
</tr>
<tr id="TransportConfig.check_cluster">
<td><code>checkCluster</code></td>
<td><code>string</code></td>
<td>
<p>Name of the cluster that will forward check calls to a pool of mixer
servers. Defaults to &ldquo;mixer_server&rdquo;. By using different names for
checkCluster and reportCluster, it is possible to have one set of
mixer servers handle check calls, while another set of mixer servers
handle report calls.</p>
<p>NOTE: Any value other than the default &ldquo;mixer_server&rdquo; will require the
Istio Grafana dashboards to be reconfigured to use the new name.</p>
</td>
</tr>
<tr id="TransportConfig.report_cluster">
<td><code>reportCluster</code></td>
<td><code>string</code></td>
<td>
<p>Name of the cluster that will forward report calls to a pool of mixer
servers. Defaults to &ldquo;mixer_server&rdquo;. By using different names for
checkCluster and reportCluster, it is possible to have one set of
mixer servers handle check calls, while another set of mixer servers
handle report calls.</p>
<p>NOTE: Any value other than the default &ldquo;mixer_server&rdquo; will require the
Istio Grafana dashboards to be reconfigured to use the new name.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="TransportConfig.NetworkFailPolicy">TransportConfig.NetworkFailPolicy</h2>
<section>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="TransportConfig.NetworkFailPolicy.FAIL_OPEN">
<td><code>FAIL_OPEN</code></td>
<td>
<p>If network fails, request is passed to the backend.</p>
</td>
</tr>
<tr id="TransportConfig.NetworkFailPolicy.FAIL_CLOSE">
<td><code>FAIL_CLOSE</code></td>
<td>
<p>If network fails, request is rejected.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="istio.mixer.v1.Attributes">istio.mixer.v1.Attributes</h2>
<section>
<p>Attributes represents a set of typed name/value pairs. Many of Mixer&rsquo;s
API either consume and/or return attributes.</p>
<p>Istio uses attributes to control the runtime behavior of services running in the service mesh.
Attributes are named and typed pieces of metadata describing ingress and egress traffic and the
environment this traffic occurs in. An Istio attribute carries a specific piece
of information such as the error code of an API request, the latency of an API request, or the
original IP address of a TCP connection. For example:</p>
<pre><code>request.path: xyz/abc
request.size: 234
request.time: 12:34:56.789 04/17/2017
source.ip: 192.168.0.1
target.service: example
</code></pre>
<p>A given Istio deployment has a fixed vocabulary of attributes that it understands.
The specific vocabulary is determined by the set of attribute producers being used
in the deployment. The primary attribute producer in Istio is Envoy, although
specialized Mixer adapters and services can also generate attributes.</p>
<p>The common baseline set of attributes available in most Istio deployments is defined
<a href="https://istio.io/docs/reference/config/mixer/attribute-vocabulary.html">here</a>.</p>
<p>Attributes are strongly typed. The supported attribute types are defined by
<a href="https://github.com/istio/api/blob/master/mixer/v1/config/descriptor/value_type.proto">ValueType</a>.
Each type of value is encoded into one of the so-called transport types present
in this message.</p>
<p>Defines a map of attributes in uncompressed format.
Following places may use this message:
1) Configure Istio/Proxy with static per-proxy attributes, such as source.uid.
2) Service IDL definition to extract api attributes for active requests.
3) Forward attributes from client proxy to server proxy for HTTP requests.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="istio.mixer.v1.Attributes.attributes">
<td><code>attributes</code></td>
<td><code>map&lt;string, <a href="#istio.mixer.v1.Attributes.AttributeValue">istio.mixer.v1.Attributes.AttributeValue</a>&gt;</code></td>
<td>
<p>A map of attribute name to its value.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -4,7 +4,9 @@ overview: Describes the rules used to configure Mixer's policy and telemetry fea
location: https://istio.io/docs/reference/config/istio.mixer.v1.config.html
layout: protoc-gen-docs
redirect_from: /docs/reference/config/mixer/policy-and-telemetry-rules.html
number_of_entries: 7
---
{% raw %}
<h2 id="Action">Action</h2>
<section>
<p>Action describes which <a href="#Handler">Handler</a> to invoke and what data to pass to it for processing.</p>
@ -12,18 +14,20 @@ redirect_from: /docs/reference/config/mixer/policy-and-telemetry-rules.html
<p>The following example instructs Mixer to invoke &lsquo;prometheus-handler&rsquo; handler and pass it the object
constructed using the instance &lsquo;RequestCountByService&rsquo;</p>
<p><code>yaml
handler: prometheus-handler
<pre><code class="language-yaml"> handler: prometheus-handler
instances:
- RequestCountByService
</code></p>
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Action.handler">
<td><code>handler</code></td>
<td><code>string</code></td>
@ -44,6 +48,7 @@ The constructed objects are then passed to the <code>handler</code> referenced w
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="AttributeManifest">AttributeManifest</h2>
@ -52,11 +57,14 @@ The constructed objects are then passed to the <code>handler</code> referenced w
of an Istio deployment.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AttributeManifest.revision">
<td><code>revision</code></td>
<td><code>string</code></td>
@ -96,6 +104,7 @@ request.count-my.component</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="AttributeManifest.AttributeInfo">AttributeManifest.AttributeInfo</h2>
@ -143,11 +152,14 @@ attribute name and value becomes the HTTP header name and value. The actual
encoding scheme will be decided later.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AttributeManifest.AttributeInfo.description">
<td><code>description</code></td>
<td><code>string</code></td>
@ -164,6 +176,7 @@ encoding scheme will be decided later.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Handler">Handler</h2>
@ -174,18 +187,20 @@ Each adapter implementation defines its own <code>params</code> proto.</p>
<p>In the following example we define a <code>metrics</code> handler using the Mixer&rsquo;s prepackaged
prometheus adapter. This handler doesn&rsquo;t require any parameters.</p>
<p><code>yaml
name: prometheus-handler
<pre><code class="language-yaml">name: prometheus-handler
adapter: prometheus
params:
</code></p>
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Handler.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -213,6 +228,7 @@ proto defined by the adapter implementation; this varies depending on the value
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Instance">Instance</h2>
@ -228,22 +244,24 @@ instances of the specified template at runtime.</p>
Instances produced with this instance can be referenced by <a href="#Action">Actions</a> using name
&lsquo;RequestCountByService&rsquo;.</p>
<p><code>yaml
- name: RequestCountByService
<pre><code class="language-yaml">- name: RequestCountByService
template: istio.mixer.adapter.metric.Metric
params:
value: 1
dimensions:
source: source.service
destination_ip: destination.ip
</code></p>
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Instance.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -273,6 +291,7 @@ proto defined by the template; this varies depending on the value of field <code
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Rule">Rule</h2>
@ -283,20 +302,22 @@ selector is <code>true</code></p>
<p>The following example instructs Mixer to invoke &lsquo;prometheus-handler&rsquo; handler for all services and pass it the
instance constructed using the &lsquo;RequestCountByService&rsquo; instance.</p>
<p><code>yaml
- match: destination.service == &quot;*&quot;
<pre><code class="language-yaml">- match: destination.service == &quot;*&quot;
actions:
- handler: prometheus-handler
instances:
- RequestCountByService
</code></p>
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Rule.match">
<td><code>match</code></td>
<td><code>string</code></td>
@ -325,6 +346,7 @@ name starts with &ldquo;ratings&rdquo;</li>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="google.protobuf.Struct">google.protobuf.Struct</h2>
@ -339,11 +361,14 @@ with the proto support for the language.</p>
<p>The JSON representation for <code>Struct</code> is JSON object.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="google.protobuf.Struct.fields">
<td><code>fields</code></td>
<td><code>map&lt;string, <a href="#google.protobuf.Value">google.protobuf.Value</a>&gt;</code></td>
@ -352,5 +377,7 @@ with the proto support for the language.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -3,7 +3,9 @@ title: RBAC
overview: Configuration affecting resource-based access control
location: https://istio.io/docs/reference/config/istio.rbac.v1alpha1.html
layout: protoc-gen-docs
number_of_entries: 6
---
{% raw %}
<p>Istio RBAC (Role Based Access Control) defines ServiceRole and ServiceRoleBinding
objects.</p>
@ -93,11 +95,14 @@ spec:
<p>AccessRule defines a permission to access a list of services.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AccessRule.services">
<td><code>services</code></td>
<td><code>string[]</code></td>
@ -144,6 +149,7 @@ The above ServiceRole examples shows an example of constraint &ldquo;version&rdq
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="AccessRule.Constraint">AccessRule.Constraint</h2>
@ -153,11 +159,14 @@ one of the &ldquo;properties&rdquo; in the &ldquo;action&rdquo; part of the &ldq
(https://github.com/istio/istio/blob/master/mixer/template/authorization/template.proto).</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="AccessRule.Constraint.key">
<td><code>key</code></td>
<td><code>string</code></td>
@ -178,6 +187,7 @@ or &ldquo;</em>alpha2&rdquo; (suffix match).</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="RoleRef">RoleRef</h2>
@ -185,11 +195,14 @@ or &ldquo;</em>alpha2&rdquo; (suffix match).</p>
<p>RoleRef refers to a role object.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="RoleRef.kind">
<td><code>kind</code></td>
<td><code>string</code></td>
@ -209,6 +222,7 @@ object.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="ServiceRole">ServiceRole</h2>
@ -218,11 +232,14 @@ This represent the &ldquo;Spec&rdquo; part of the ServiceRole object. The name a
of the ServiceRole is specified in &ldquo;metadata&rdquo; section of the ServiceRole object.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ServiceRole.rules">
<td><code>rules</code></td>
<td><code><a href="#AccessRule">AccessRule[]</a></code></td>
@ -231,6 +248,7 @@ of the ServiceRole is specified in &ldquo;metadata&rdquo; section of the Service
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="ServiceRoleBinding">ServiceRoleBinding</h2>
@ -241,11 +259,14 @@ of the ServiceRoleBinding is specified in &ldquo;metadata&rdquo; section of the
object.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ServiceRoleBinding.subjects">
<td><code>subjects</code></td>
<td><code><a href="#Subject">Subject[]</a></code></td>
@ -262,6 +283,7 @@ object.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Subject">Subject</h2>
@ -272,11 +294,14 @@ the &ldquo;properties&rdquo; in the &ldquo;subject&rdquo; part of the &ldquo;aut
(https://github.com/istio/istio/blob/master/mixer/template/authorization/template.proto).</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Subject.user">
<td><code>user</code></td>
<td><code>string</code></td>
@ -304,5 +329,7 @@ In the above ServiceRoleBinding example, the second subject has two properties:
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -4,7 +4,9 @@ overview: Configuration affecting traffic routing
location: https://istio.io/docs/reference/config/istio.routing.v1alpha1.html
layout: protoc-gen-docs
redirect_from: /docs/reference/config/traffic-rules/routing-rules.html
number_of_entries: 28
---
{% raw %}
<p>Configuration affecting traffic routing. Here are a few terms useful to define
in the context of routing rules.</p>
@ -35,45 +37,7 @@ without knowledge of individual service versions. The actual choice of
the version is determined by Envoy, enabling the application code to
decouple itself from the evolution of dependent services.</p>
<h2 id="Enumerations">Enumerations</h2>
<h3 id="LoadBalancing.SimpleLBPolicy">LoadBalancing.SimpleLBPolicy</h3>
<section>
<p>Load balancing algorithms supported by Envoy.</p>
<table class="enum-values">
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr id="LoadBalancing.SimpleLBPolicy.ROUND_ROBIN">
<td><code>ROUND_ROBIN</code></td>
<td>
<p>Simple round robin policy.</p>
</td>
</tr>
<tr id="LoadBalancing.SimpleLBPolicy.LEAST_CONN">
<td><code>LEAST_CONN</code></td>
<td>
<p>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.</p>
</td>
</tr>
<tr id="LoadBalancing.SimpleLBPolicy.RANDOM">
<td><code>RANDOM</code></td>
<td>
<p>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.</p>
</td>
</tr>
</table>
</section>
<h2 id="Messages">Messages</h2>
<h3 id="CircuitBreaker">CircuitBreaker</h3>
<h2 id="CircuitBreaker">CircuitBreaker</h2>
<section>
<p>Circuit breaker configuration for Envoy. The circuit breaker
implementation is fine-grained in that it tracks the success/failure
@ -86,11 +50,14 @@ and <a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/out
for more details.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CircuitBreaker.simple_cb" class="oneof oneof-start">
<td><code>simpleCb</code></td>
<td><code><a href="#CircuitBreaker.SimpleCircuitBreakerPolicy">CircuitBreaker.SimpleCircuitBreakerPolicy (oneof)</a></code></td>
@ -105,9 +72,10 @@ for more details.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CircuitBreaker.SimpleCircuitBreakerPolicy">CircuitBreaker.SimpleCircuitBreakerPolicy</h3>
<h2 id="CircuitBreaker.SimpleCircuitBreakerPolicy">CircuitBreaker.SimpleCircuitBreakerPolicy</h2>
<section>
<p>A simple circuit breaker can be set based on a number of criteria such as
connection and request limits. For example, the following destination
@ -152,11 +120,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CircuitBreaker.SimpleCircuitBreakerPolicy.max_connections">
<td><code>maxConnections</code></td>
<td><code>int32</code></td>
@ -235,9 +206,10 @@ cluster at a given time. Defaults to 3.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="CorsPolicy">CorsPolicy</h3>
<h2 id="CorsPolicy">CorsPolicy</h2>
<section>
<p>Describes the Cross-Origin Resource Sharing (CORS) policy, for a given
service. Refer to
@ -270,11 +242,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="CorsPolicy.allow_origin">
<td><code>allowOrigin</code></td>
<td><code>string[]</code></td>
@ -331,9 +306,10 @@ Access-Control-Allow-Credentials header.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="DestinationPolicy">DestinationPolicy</h3>
<h2 id="DestinationPolicy">DestinationPolicy</h2>
<section>
<p>DestinationPolicy defines client/caller-side policies that determine how
to handle traffic bound to a particular destination service. The policy
@ -384,11 +360,14 @@ destination policy defined, at least one route rule must refer to the
service version indicated in the destination policy.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="DestinationPolicy.destination">
<td><code>destination</code></td>
<td><code><a href="#IstioService">IstioService</a></code></td>
@ -431,9 +410,10 @@ with this policy.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="DestinationWeight">DestinationWeight</h3>
<h2 id="DestinationWeight">DestinationWeight</h2>
<section>
<p>Each routing rule is associated with one or more service versions (see
glossary in beginning of document). Weights associated with the version
@ -458,11 +438,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="DestinationWeight.destination">
<td><code>destination</code></td>
<td><code><a href="#IstioService">IstioService</a></code></td>
@ -494,16 +477,20 @@ specified.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="EgressRule">EgressRule</h3>
<h2 id="EgressRule">EgressRule</h2>
<section>
<p>Egress rules describe the properties of a service outside Istio. When transparent proxying
is used, egress rules signify a white listed set of domains that microserves in the mesh
is used, egress rules signify a white listed set of external services that microserves in the mesh
are allowed to access. A subset of routing rules and all destination policies can be applied
on the service targeted by an egress rule. The destination of an egress rule is allowed to
contain wildcards (e.g., *.foo.com). Currently, only HTTP-based services can be expressed
through the egress rule. If TLS origination from the sidecar is desired, the protocol
on the service targeted by an egress rule. TCP services and HTTP-based services can be expressed
by an egress rule. The destination of an egress rule for HTTP-based services must be an IP or a domain name,
optionally with a wildcard prefix (e.g., *.foo.com). For TCP based services, the destination of an
egress rule must be an IP or a block of IPs in CIDR notation.</p>
<p>If TLS origination from the sidecar is desired, the protocol
associated with the service port must be marked as HTTPS, and the service is expected to
be accessed over HTTP (e.g., http://gmail.com:443). The sidecar will automatically upgrade
the connection to TLS when initiating a connection with the external service.</p>
@ -523,25 +510,47 @@ spec:
protocol: https
</code></pre>
<p>The following egress rule describes the set of services accessed by a block of IPs</p>
<pre><code>kind: EgressRule
metadata:
name: bar-egress-rule
spec:
destination:
service: 92.198.174.192/27
ports:
- port: 111
protocol: tcp
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="EgressRule.destination">
<td><code>destination</code></td>
<td><code><a href="#IstioService">IstioService</a></code></td>
<td>
<p>REQUIRED: Hostname or a wildcard domain name associated with the external service.
ONLY the &ldquo;service&rdquo; field of destination will be taken into consideration. Name,
<p>REQUIRED: A domain name, optionally with a wildcard prefix, or an IP, or a block of IPs
associated with the external service.
ONLY the &ldquo;service&rdquo; field of &ldquo;destination&rdquo; will be taken into consideration. Name,
namespace, domain and labels are ignored. Routing rules and destination policies that
refer to these external services must have identical specification for the destination
as the corresponding egress rule. Wildcard domain specifications must conform to format
as the corresponding egress rule.</p>
<p>The &ldquo;service&rdquo; field of &ldquo;destination&rdquo; for HTTP-based services must be an IP or a domain name,
optionally with a wildcard prefix. Wildcard domain specifications must conform to format
allowed by Envoy&rsquo;s Virtual Host specification, such as “<em>.foo.com” or “</em>-bar.foo.com”.
The character &lsquo;<em>&rsquo; in a domain specification indicates a non-empty string. Hence, a wildcard
domain of form “</em>-bar.foo.com” will match “baz-bar.foo.com” but not “-bar.foo.com”.</p>
<p>The &ldquo;service&rdquo; field of &ldquo;destination&rdquo; for TCP services must be an IP or a block of IPs in CIDR notation.</p>
</td>
</tr>
<tr id="EgressRule.ports">
@ -564,18 +573,22 @@ These dedicated egress nodes could then be more closely monitored for security v
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="EgressRule.Port">EgressRule.Port</h3>
<h2 id="EgressRule.Port">EgressRule.Port</h2>
<section>
<p>Port describes the properties of a specific TCP port of an external service.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="EgressRule.Port.port">
<td><code>port</code></td>
<td><code>int32</code></td>
@ -593,9 +606,10 @@ MUST BE one of HTTP|HTTPS|GRPC|HTTP2|TCP|MONGO.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPFaultInjection">HTTPFaultInjection</h3>
<h2 id="HTTPFaultInjection">HTTPFaultInjection</h2>
<section>
<p>HTTPFaultInjection can be used to specify one or more faults to inject
while forwarding http requests to the destination specified in the route
@ -607,11 +621,14 @@ proxying of requests. A fault rule MUST HAVE delay or abort or both.</p>
both are specified simultaneously.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPFaultInjection.delay">
<td><code>delay</code></td>
<td><code><a href="#HTTPFaultInjection.Delay">HTTPFaultInjection.Delay</a></code></td>
@ -630,9 +647,10 @@ service, giving the impression that the upstream service is faulty.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPFaultInjection.Abort">HTTPFaultInjection.Abort</h3>
<h2 id="HTTPFaultInjection.Abort">HTTPFaultInjection.Abort</h2>
<section>
<p>Abort specification is used to prematurely abort a request with a
pre-specified error code. The following example will return an HTTP
@ -658,11 +676,14 @@ and 100, is used to only abort a certain percentage of requests. If
not specified, all requests are aborted.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPFaultInjection.Abort.percent">
<td><code>percent</code></td>
<td><code>float</code></td>
@ -700,9 +721,10 @@ TODO: The semantics and syntax of the headers is undefined. &ndash;)</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPFaultInjection.Delay">HTTPFaultInjection.Delay</h3>
<h2 id="HTTPFaultInjection.Delay">HTTPFaultInjection.Delay</h2>
<section>
<p>Delay specification is used to inject latency into the request
forwarding path. The following example will introduce a 5 second delay
@ -729,11 +751,14 @@ be used to only delay a certain percentage of requests. If left
unspecified, all request will be delayed.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPFaultInjection.Delay.percent">
<td><code>percent</code></td>
<td><code>float</code></td>
@ -769,9 +794,10 @@ TODO: The semantics and syntax of the headers is undefined. &ndash;)</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPRedirect">HTTPRedirect</h3>
<h2 id="HTTPRedirect">HTTPRedirect</h2>
<section>
<p>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
@ -795,11 +821,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPRedirect.uri">
<td><code>uri</code></td>
<td><code>string</code></td>
@ -819,9 +848,10 @@ this value</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPRetry">HTTPRetry</h3>
<h2 id="HTTPRetry">HTTPRetry</h2>
<section>
<p>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
@ -843,11 +873,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPRetry.simple_retry" class="oneof oneof-start">
<td><code>simpleRetry</code></td>
<td><code><a href="#HTTPRetry.SimpleRetryPolicy">HTTPRetry.SimpleRetryPolicy (oneof)</a></code></td>
@ -862,16 +895,20 @@ spec:
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPRetry.SimpleRetryPolicy">HTTPRetry.SimpleRetryPolicy</h3>
<h2 id="HTTPRetry.SimpleRetryPolicy">HTTPRetry.SimpleRetryPolicy</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPRetry.SimpleRetryPolicy.attempts">
<td><code>attempts</code></td>
<td><code>int32</code></td>
@ -899,9 +936,10 @@ Envoy, if Envoy supports such a feature. &ndash;)</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPRewrite">HTTPRewrite</h3>
<h2 id="HTTPRewrite">HTTPRewrite</h2>
<section>
<p>HTTPRewrite can be used to rewrite specific parts of a HTTP request
before forwarding the request to the destination. Rewrite primitive can
@ -928,11 +966,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPRewrite.uri">
<td><code>uri</code></td>
<td><code>string</code></td>
@ -951,9 +992,10 @@ provided in this field will replace the corresponding matched prefix.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPTimeout">HTTPTimeout</h3>
<h2 id="HTTPTimeout">HTTPTimeout</h2>
<section>
<p>Describes HTTP request timeout. For example, the following rule sets a
10 second timeout for calls to the ratings:v1 service</p>
@ -973,11 +1015,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPTimeout.simple_timeout" class="oneof oneof-start">
<td><code>simpleTimeout</code></td>
<td><code><a href="#HTTPTimeout.SimpleTimeoutPolicy">HTTPTimeout.SimpleTimeoutPolicy (oneof)</a></code></td>
@ -992,16 +1037,20 @@ spec:
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="HTTPTimeout.SimpleTimeoutPolicy">HTTPTimeout.SimpleTimeoutPolicy</h3>
<h2 id="HTTPTimeout.SimpleTimeoutPolicy">HTTPTimeout.SimpleTimeoutPolicy</h2>
<section>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="HTTPTimeout.SimpleTimeoutPolicy.timeout">
<td><code>timeout</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
@ -1022,9 +1071,10 @@ Envoy, if Envoy supports such a feature. &ndash;)</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="IngressRule">IngressRule</h3>
<h2 id="IngressRule">IngressRule</h2>
<section>
<p>Ingress rules are routing rules applied to the ingress proxy pool. The
ingress proxes serve as the receiving edge proxy for the entire mesh, but
@ -1040,11 +1090,14 @@ also effective.</p>
<p>WARNING: This API is experimental and under active development</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="IngressRule.port">
<td><code>port</code></td>
<td><code>int32</code></td>
@ -1109,20 +1162,24 @@ of the service and therefore the IstioService&rsquo;s labels field MUST be empty
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="IstioService">IstioService</h3>
<h2 id="IstioService">IstioService</h2>
<section>
<p>IstioService identifies a service and optionally service version.
The FQDN of the service is composed from the name, namespace, and implementation-specific domain suffix
(e.g. on Kubernetes, &ldquo;reviews&rdquo; + &ldquo;default&rdquo; + &ldquo;svc.cluster.local&rdquo; -&gt; &ldquo;reviews.default.svc.cluster.local&rdquo;).</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="IstioService.name">
<td><code>name</code></td>
<td><code>string</code></td>
@ -1165,9 +1222,10 @@ The FQDN of the service is composed from the name, namespace, and implementation
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="L4FaultInjection">L4FaultInjection</h3>
<h2 id="L4FaultInjection">L4FaultInjection</h2>
<section>
<p>(&ndash; Faults can be injected into the connections from downstream by the
Envoy, for testing the failure recovery capabilities of downstream
@ -1179,11 +1237,14 @@ with the rate limiting policy enforcement provided by the Mixer
component. L4 fault injection is not supported at the moment. &ndash;)</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="L4FaultInjection.throttle">
<td><code>throttle</code></td>
<td><code><a href="#L4FaultInjection.Throttle">L4FaultInjection.Throttle</a></code></td>
@ -1202,19 +1263,23 @@ We first throttle (if set) and then terminate the connection.</p>
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="L4FaultInjection.Terminate">L4FaultInjection.Terminate</h3>
<h2 id="L4FaultInjection.Terminate">L4FaultInjection.Terminate</h2>
<section>
<p>Abruptly reset (terminate) the Tcp connection after it has been
established, emulating remote server crash or link failure.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="L4FaultInjection.Terminate.percent">
<td><code>percent</code></td>
<td><code>float</code></td>
@ -1232,18 +1297,22 @@ express time interval related configs.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="L4FaultInjection.Throttle">L4FaultInjection.Throttle</h3>
<h2 id="L4FaultInjection.Throttle">L4FaultInjection.Throttle</h2>
<section>
<p>Bandwidth throttling for Tcp and Udp connections</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="L4FaultInjection.Throttle.percent">
<td><code>percent</code></td>
<td><code>float</code></td>
@ -1297,19 +1366,23 @@ will be throttled for its lifetime.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="L4MatchAttributes">L4MatchAttributes</h3>
<h2 id="L4MatchAttributes">L4MatchAttributes</h2>
<section>
<p>(&ndash; L4 connection match attributes. Note that L4 connection matching
support is incomplete. &ndash;)</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="L4MatchAttributes.source_subnet">
<td><code>sourceSubnet</code></td>
<td><code>string[]</code></td>
@ -1329,9 +1402,10 @@ service has several IPs and the application explicitly specifies a particular IP
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="LoadBalancing">LoadBalancing</h3>
<h2 id="LoadBalancing">LoadBalancing</h2>
<section>
<p>Load balancing policy to use when forwarding traffic. These policies
directly correlate to <a href="https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/load_balancing">load balancer
@ -1349,11 +1423,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="LoadBalancing.name" class="oneof oneof-start">
<td><code>name</code></td>
<td><code><a href="#LoadBalancing.SimpleLBPolicy">LoadBalancing.SimpleLBPolicy (oneof)</a></code></td>
@ -1370,9 +1447,50 @@ spec:
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="MatchCondition">MatchCondition</h3>
<h2 id="LoadBalancing.SimpleLBPolicy">LoadBalancing.SimpleLBPolicy</h2>
<section>
<p>Load balancing algorithms supported by Envoy.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="LoadBalancing.SimpleLBPolicy.ROUND_ROBIN">
<td><code>ROUND_ROBIN</code></td>
<td>
<p>Simple round robin policy.</p>
</td>
</tr>
<tr id="LoadBalancing.SimpleLBPolicy.LEAST_CONN">
<td><code>LEAST_CONN</code></td>
<td>
<p>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.</p>
</td>
</tr>
<tr id="LoadBalancing.SimpleLBPolicy.RANDOM">
<td><code>RANDOM</code></td>
<td>
<p>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.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="MatchCondition">MatchCondition</h2>
<section>
<p>Match condition specifies a set of criterion to be met in order for the
route rule to be applied to the connection or HTTP request. The
@ -1406,11 +1524,14 @@ spec:
request header must be specified.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MatchCondition.source">
<td><code>source</code></td>
<td><code><a href="#IstioService">IstioService</a></code></td>
@ -1443,18 +1564,22 @@ request header must be specified.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="MatchRequest">MatchRequest</h3>
<h2 id="MatchRequest">MatchRequest</h2>
<section>
<p>MatchRequest specifies the attributes of an HTTP request to be used for matching a request.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="MatchRequest.headers">
<td><code>headers</code></td>
<td><code>map&lt;string, <a href="#StringMatch">StringMatch</a>&gt;</code></td>
@ -1481,9 +1606,10 @@ regular expression matches are supported.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="RouteRule">RouteRule</h3>
<h2 id="RouteRule">RouteRule</h2>
<section>
<p>Route rule provides a custom routing policy based on the source and
destination service versions and connection/request metadata. The rule
@ -1512,11 +1638,14 @@ spec:
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="RouteRule.destination">
<td><code>destination</code></td>
<td><code><a href="#IstioService">IstioService</a></code></td>
@ -1659,18 +1788,22 @@ destnation service.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h3 id="StringMatch">StringMatch</h3>
<h2 id="StringMatch">StringMatch</h2>
<section>
<p>Describes how to match a given string in HTTP headers. Match is case-sensitive.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="StringMatch.exact" class="oneof oneof-start">
<td><code>exact</code></td>
<td><code>string (oneof)</code></td>
@ -1695,5 +1828,7 @@ destnation service.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -3,7 +3,9 @@ title: Value Type
overview: Value types used with templates
location: https://istio.io/docs/reference/config/mixer/istio.mixer.v1.config.descriptor.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<h2 id="ValueType">ValueType</h2>
<section>
<p>ValueType describes the types that values in the Istio system can take. These
@ -12,10 +14,13 @@ the result of evaluating an expression, and to describe the runtime type of
fields of other descriptors.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="ValueType.VALUE_TYPE_UNSPECIFIED">
<td><code>VALUE_TYPE_UNSPECIFIED</code></td>
<td>
@ -100,5 +105,7 @@ fields of other descriptors.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -3,20 +3,45 @@ title: Template Metadata
overview: Definitions used when creating Mixer templates
location: https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html
layout: protoc-gen-docs
number_of_entries: 8
---
{% raw %}
<p>This proto describes the types that can be used inside Mixer templates. These message types are used to specify
field datatype to express the equivalent ValueType for the expressions the field can be mapped to.</p>
<h2 id="Enumerations">Enumerations</h2>
<h3 id="TemplateVariety">TemplateVariety</h3>
<h2 id="DNSName">DNSName</h2>
<section>
<p>DNSName is used inside templates for fields that are of ValueType &ldquo;DNS_NAME&rdquo;</p>
</section>
<h2 id="Duration">Duration</h2>
<section>
<p>Duration is used inside templates for fields that are of ValueType &ldquo;DURATION&rdquo;</p>
</section>
<h2 id="EmailAddress">EmailAddress</h2>
<section>
<p>EmailAddress is used inside templates for fields that are of ValueType &ldquo;EMAIL_ADDRESS&rdquo;
DO NOT USE !! Under Development</p>
</section>
<h2 id="IPAddress">IPAddress</h2>
<section>
<p>IPAddress is used inside templates for fields that are of ValueType &ldquo;IP_ADDRESS&rdquo;</p>
</section>
<h2 id="TemplateVariety">TemplateVariety</h2>
<section>
<p>Specifies the varity of the the Template.</p>
<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="TemplateVariety.TEMPLATE_VARIETY_CHECK">
<td><code>TEMPLATE_VARIETY_CHECK</code></td>
<td>
@ -37,44 +62,24 @@ field datatype to express the equivalent ValueType for the expressions the field
<td>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Messages">Messages</h2>
<h3 id="DNSName">DNSName</h3>
<section>
<p>DNSName is used inside templates for fields that are of ValueType &ldquo;DNS_NAME&rdquo;</p>
</section>
<h3 id="Duration">Duration</h3>
<section>
<p>Duration is used inside templates for fields that are of ValueType &ldquo;DURATION&rdquo;</p>
</section>
<h3 id="EmailAddress">EmailAddress</h3>
<section>
<p>EmailAddress is used inside templates for fields that are of ValueType &ldquo;EMAIL_ADDRESS&rdquo;
DO NOT USE !! Under Development</p>
</section>
<h3 id="IPAddress">IPAddress</h3>
<section>
<p>IPAddress is used inside templates for fields that are of ValueType &ldquo;IP_ADDRESS&rdquo;</p>
</section>
<h3 id="TimeStamp">TimeStamp</h3>
<h2 id="TimeStamp">TimeStamp</h2>
<section>
<p>TimeStamp is used inside templates for fields that are of ValueType &ldquo;TIMESTAMP&rdquo;</p>
</section>
<h3 id="Uri">Uri</h3>
<h2 id="Uri">Uri</h2>
<section>
<p>Uri is used inside templates for fields that are of ValueType &ldquo;URI&rdquo;
DO NOT USE ! Under Development</p>
</section>
<h3 id="Value">Value</h3>
<h2 id="Value">Value</h2>
<section>
<p>Value is used inside templates for fields that have dynamic types. The actual datatype
of the field depends on the datatype of the expression used in the operator configuration.</p>
</section>
{% endraw %}

View File

@ -0,0 +1,82 @@
---
title: API Key
overview: A template that represents a single API key.
location: https://istio.io/docs/reference/config/template/apikey.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>apikey</code> template represents a single API key, which is used for authorization checks.</p>
<h2 id="Template">Template</h2>
<section>
<p>The <code>apikey</code> template represents a single API key, used to authorize API calls.</p>
<p>Sample config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: apikey
metadata:
name: validate-apikey
namespace: istio-system
spec:
api: api.service | &quot;&quot;
api_version: api.version | &quot;&quot;
api_operation: api.operation | &quot;&quot;
api_key: api.key | &quot;&quot;
timestamp: request.time
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.api">
<td><code>api</code></td>
<td><code>string</code></td>
<td>
<p>The API being called (api.service).</p>
</td>
</tr>
<tr id="Template.api_version">
<td><code>apiVersion</code></td>
<td><code>string</code></td>
<td>
<p>The version of the API (api.version).</p>
</td>
</tr>
<tr id="Template.api_operation">
<td><code>apiOperation</code></td>
<td><code>string</code></td>
<td>
<p>The API operation is being called.</p>
</td>
</tr>
<tr id="Template.api_key">
<td><code>apiKey</code></td>
<td><code>string</code></td>
<td>
<p>API key used in API call.</p>
</td>
</tr>
<tr id="Template.timestamp">
<td><code>timestamp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#TimeStamp">istio.mixer.v1.template.TimeStamp</a></code></td>
<td>
<p>Timestamp of API call.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,173 @@
---
title: Authorization
overview: A template used to represent an access control query.
location: https://istio.io/docs/reference/config/template/authorization.html
layout: protoc-gen-docs
number_of_entries: 3
---
{% raw %}
<p>The <code>authorization</code> template defines parameters for performing policy
enforcement within Istio. It is primarily concerned with enabling Mixer</p>
<h2 id="Action">Action</h2>
<section>
<p>An action defines &ldquo;how a resource is accessed&rdquo;.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Action.namespace">
<td><code>namespace</code></td>
<td><code>string</code></td>
<td>
<p>Namespace the target action is taking place in.</p>
</td>
</tr>
<tr id="Action.service">
<td><code>service</code></td>
<td><code>string</code></td>
<td>
<p>The Service the action is being taken on.</p>
</td>
</tr>
<tr id="Action.method">
<td><code>method</code></td>
<td><code>string</code></td>
<td>
<p>What action is being taken.</p>
</td>
</tr>
<tr id="Action.path">
<td><code>path</code></td>
<td><code>string</code></td>
<td>
<p>HTTP REST path within the service</p>
</td>
</tr>
<tr id="Action.properties">
<td><code>properties</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>Additional data about the action for use in policy.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Subject">Subject</h2>
<section>
<p>A subject contains a list of attributes that identify
the caller identity.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Subject.user">
<td><code>user</code></td>
<td><code>string</code></td>
<td>
<p>The user name/ID that the subject represents.</p>
</td>
</tr>
<tr id="Subject.groups">
<td><code>groups</code></td>
<td><code>string</code></td>
<td>
<p>Groups the subject belongs to depending on the authentication mechanism,
&ldquo;groups&rdquo; are normally populated from JWT claim or client certificate.
The operator can define how it is populated when creating an instance of
the template.</p>
</td>
</tr>
<tr id="Subject.properties">
<td><code>properties</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>Additional attributes about the subject.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Template">Template</h2>
<section>
<p>The <code>authorization</code> template defines parameters for performing policy
enforcement within Istio. It is primarily concerned with enabling Mixer
adapters to make decisions about who is allowed to do what.
In this template, the &ldquo;who&rdquo; is defined in a Subject message. The &ldquo;what&rdquo; is
defined in an Action message. During a Mixer Check call, these values
will be populated based on configuration from request attributes and
passed to individual authorization adapters to adjudicate.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: authorization
metadata:
name: authinfo
namespace: istio-system
spec:
subject:
user: source.user | request.auth.token[user] | &quot;&quot;
groups: request.auth.token[groups]
properties:
iss: request.auth.token[&quot;iss&quot;]
action:
namespace: target.namespace | &quot;default&quot;
service: target.service | &quot;&quot;
path: request.path | &quot;/&quot;
method: request.method | &quot;post&quot;
properties:
version: destination.labels[version] | &quot;&quot;
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.subject">
<td><code>subject</code></td>
<td><code><a href="#Subject">Subject</a></code></td>
<td>
<p>A subject contains a list of attributes that identify
the caller identity.</p>
</td>
</tr>
<tr id="Template.action">
<td><code>action</code></td>
<td><code><a href="#Action">Action</a></code></td>
<td>
<p>An action defines &ldquo;how a resource is accessed&rdquo;.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,29 @@
---
title: Check Nothing
overview: A template that carries no data, useful for testing.
location: https://istio.io/docs/reference/config/template/checknothing.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>checknothing</code> template represents an empty block of data, which can useful
in different testing scenarios.</p>
<h2 id="Template">Template</h2>
<section>
<p>CheckNothing represents an empty block of data that is used for Check-capable
adapters which don&rsquo;t require any parameters. This is primarily intended for testing
scenarios.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: checknothing
metadata:
name: denyrequest
namespace: istio-system
spec:
</code></pre>
</section>
{% endraw %}

View File

@ -1,35 +0,0 @@
---
title: checknothing Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1150
layout: docs
type: markdown
---
<a name="rpcChecknothingIndex"></a>
### Index
* [Template](#checknothing.Template)
(message)
<a name="checknothing.Template"></a>
### Template
CheckNothing represents an empty block of data that is used for Check-capable
adapters which don't require any parameters. This is primarily intended for testing
scenarios.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: checknothing
metadata:
name: denyrequest
namespace: istio-config-default
spec:
```
NOTE: _No fields in this message type.__

View File

@ -0,0 +1,292 @@
---
title: Kubernetes
overview: A template that is used to control the production of Kubernetes-specific attributes.
location: https://istio.io/docs/reference/config/template/kubernetes.html
layout: protoc-gen-docs
number_of_entries: 2
---
{% raw %}
<p>The <code>kubernetes</code> template holds data that controls the production of Kubernetes-specific
attributes.</p>
<h2 id="OutputTemplate">OutputTemplate</h2>
<section>
<p>OutputTemplate refers to the output from the adapter. It is used inside the attribute_binding section of the config
to assign values to the generated attributes using the <code>$out.&lt;field name of the OutputTemplate&gt;</code> syntax.</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="OutputTemplate.source_pod_ip">
<td><code>sourcePodIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to source pod ip address. attribute<em>bindings can refer to this field using $out.source</em>pod_ip</p>
</td>
</tr>
<tr id="OutputTemplate.source_pod_name">
<td><code>sourcePodName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to source pod name. attribute<em>bindings can refer to this field using $out.source</em>pod_name</p>
</td>
</tr>
<tr id="OutputTemplate.source_labels">
<td><code>sourceLabels</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>Refers to source pod labels. attribute<em>bindings can refer to this field using $out.source</em>labels</p>
</td>
</tr>
<tr id="OutputTemplate.source_namespace">
<td><code>sourceNamespace</code></td>
<td><code>string</code></td>
<td>
<p>Refers to source pod namespace. attribute<em>bindings can refer to this field using $out.source</em>namespace</p>
</td>
</tr>
<tr id="OutputTemplate.source_service">
<td><code>sourceService</code></td>
<td><code>string</code></td>
<td>
<p>Refers to source service. attribute<em>bindings can refer to this field using $out.source</em>service</p>
</td>
</tr>
<tr id="OutputTemplate.source_service_account_name">
<td><code>sourceServiceAccountName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to source pod service account name. attribute<em>bindings can refer to this field using $out.source</em>service<em>account</em>name</p>
</td>
</tr>
<tr id="OutputTemplate.source_host_ip">
<td><code>sourceHostIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to source pod host ip address. attribute<em>bindings can refer to this field using $out.source</em>host_ip</p>
</td>
</tr>
<tr id="OutputTemplate.destination_pod_ip">
<td><code>destinationPodIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to destination pod ip address. attribute<em>bindings can refer to this field using $out.destination</em>pod_ip</p>
</td>
</tr>
<tr id="OutputTemplate.destination_pod_name">
<td><code>destinationPodName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to destination pod name. attribute<em>bindings can refer to this field using $out.destination</em>pod_name</p>
</td>
</tr>
<tr id="OutputTemplate.destination_labels">
<td><code>destinationLabels</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>Refers to destination pod labels. attribute<em>bindings can refer to this field using $out.destination</em>labels</p>
</td>
</tr>
<tr id="OutputTemplate.destination_namespace">
<td><code>destinationNamespace</code></td>
<td><code>string</code></td>
<td>
<p>Refers to destination pod namespace. attribute<em>bindings can refer to this field using $out.destination</em>namespace</p>
</td>
</tr>
<tr id="OutputTemplate.destination_service">
<td><code>destinationService</code></td>
<td><code>string</code></td>
<td>
<p>Refers to destination service. attribute<em>bindings can refer to this field using $out.destination</em>service</p>
</td>
</tr>
<tr id="OutputTemplate.destination_service_account_name">
<td><code>destinationServiceAccountName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to destination pod service account name. attribute<em>bindings can refer to this field using $out.destination</em>service<em>account</em>name</p>
</td>
</tr>
<tr id="OutputTemplate.destination_host_ip">
<td><code>destinationHostIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to destination pod host ip address. attribute<em>bindings can refer to this field using $out.destination</em>host_ip</p>
</td>
</tr>
<tr id="OutputTemplate.origin_pod_ip">
<td><code>originPodIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to origin pod ip address. attribute<em>bindings can refer to this field using $out.origin</em>pod_ip</p>
</td>
</tr>
<tr id="OutputTemplate.origin_pod_name">
<td><code>originPodName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to origin pod name. attribute<em>bindings can refer to this field using $out.origin</em>pod_name</p>
</td>
</tr>
<tr id="OutputTemplate.origin_labels">
<td><code>originLabels</code></td>
<td><code>map&lt;string, string&gt;</code></td>
<td>
<p>Refers to origin pod labels. attribute<em>bindings can refer to this field using $out.origin</em>labels</p>
</td>
</tr>
<tr id="OutputTemplate.origin_namespace">
<td><code>originNamespace</code></td>
<td><code>string</code></td>
<td>
<p>Refers to origin pod namespace. attribute<em>bindings can refer to this field using $out.origin</em>namespace</p>
</td>
</tr>
<tr id="OutputTemplate.origin_service">
<td><code>originService</code></td>
<td><code>string</code></td>
<td>
<p>Refers to origin service. attribute<em>bindings can refer to this field using $out.origin</em>service</p>
</td>
</tr>
<tr id="OutputTemplate.origin_service_account_name">
<td><code>originServiceAccountName</code></td>
<td><code>string</code></td>
<td>
<p>Refers to origin pod service account name. attribute<em>bindings can refer to this field using $out.origin</em>service<em>account</em>name</p>
</td>
</tr>
<tr id="OutputTemplate.origin_host_ip">
<td><code>originHostIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Refers to origin pod host ip address. attribute<em>bindings can refer to this field using $out.origin</em>host_ip</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Template">Template</h2>
<section>
<p>The <code>kubernetes</code> template represents data used to generate kubernetes-derived attributes.</p>
<p>The values provided controls the manner in which the kubernetesenv adapter discovers and
generates values related to pod information.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: kubernetes
metadata:
name: attributes
namespace: istio-system
spec:
# Pass the required attribute data to the adapter
source_uid: source.uid | &quot;&quot;
source_ip: source.ip | ip(&quot;0.0.0.0&quot;) # default to unspecified ip addr
destination_uid: destination.uid | &quot;&quot;
destination_ip: destination.ip | ip(&quot;0.0.0.0&quot;) # default to unspecified ip addr
attribute_bindings:
# Fill the new attributes from the adapter produced output.
# $out refers to an instance of OutputTemplate message
source.ip: $out.source_pod_ip
source.labels: $out.source_labels
source.namespace: $out.source_namespace
source.service: $out.source_service
source.serviceAccount: $out.source_service_account_name
destination.ip: $out.destination_pod_ip
destination.labels: $out.destination_labels
destination.namespace: $out.destination_mamespace
destination.service: $out.destination_service
destination.serviceAccount: $out.destination_service_account_name
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.source_uid">
<td><code>sourceUid</code></td>
<td><code>string</code></td>
<td>
<p>Source pod&rsquo;s uid. Must be of the form: &ldquo;kubernetes://pod.namespace&rdquo;</p>
</td>
</tr>
<tr id="Template.source_ip">
<td><code>sourceIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Source pod&rsquo;s ip.</p>
</td>
</tr>
<tr id="Template.destination_uid">
<td><code>destinationUid</code></td>
<td><code>string</code></td>
<td>
<p>Destination pod&rsquo;s uid. Must be of the form: &ldquo;kubernetes://pod.namespace&rdquo;</p>
</td>
</tr>
<tr id="Template.destination_ip">
<td><code>destinationIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Destination pod&rsquo;s ip.</p>
</td>
</tr>
<tr id="Template.origin_uid">
<td><code>originUid</code></td>
<td><code>string</code></td>
<td>
<p>Origin pod&rsquo;s uid. Must be of the form: &ldquo;kubernetes://pod.namespace&rdquo;</p>
</td>
</tr>
<tr id="Template.origin_ip">
<td><code>originIp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#IPAddress">istio.mixer.v1.template.IPAddress</a></code></td>
<td>
<p>Origin pod&rsquo;s ip.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -0,0 +1,52 @@
---
title: List Entry
overview: A template designed to let you perform list checking operations.
location: https://istio.io/docs/reference/config/template/listentry.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>listentry</code> template is designed to let you perform list check operations
with the <a href="https://istio.io/docs/reference/config/adapters/list.html">list</a> adapter.</p>
<h2 id="Template">Template</h2>
<section>
<p>The <code>listentry</code> template is used to verify the presence/absence of a string
within a list.</p>
<p>When writing the configuration, the value for the fields associated with this template can either be a
literal or an <a href="https://istio.io/docs/reference/config/mixer/expression-language.html">expression</a>. Please note that if the datatype of a field is not istio.mixer.v1.template.Value,
then the expression&rsquo;s <a href="https://istio.io/docs/reference/config/mixer/expression-language.html#type-checking">inferred type</a> must match the datatype of the field.</p>
<p>Example config:</p>
<pre><code>apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: listentry
metadata:
name: appversion
namespace: istio-system
spec:
value: source.labels[&quot;version&quot;]
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.value">
<td><code>value</code></td>
<td><code>string</code></td>
<td>
<p>Specifies the entry to verify in the list.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,51 +0,0 @@
---
title: listentry Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1160
layout: docs
type: markdown
---
{% include home.html %}
<a name="rpcListentryIndex"></a>
### Index
* [Template](#listentry.Template)
(message)
<a name="listentry.Template"></a>
### Template
ListEntry is used to verify the presence/absence of a string
within a list.
When writing the configuration, the value for the fields associated with this template can either be a
literal or an [expression]({{home}}/docs/reference/config/mixer/expression-language.html). Please note that if the datatype of a field is not istio.mixer.v1.config.descriptor.ValueType,
then the expression's [inferred type]({{home}}/docs/reference/config/mixer/expression-language.html#type-checking) must match the datatype of the field.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: listentry
metadata:
name: appversion
namespace: istio-config-default
spec:
value: source.labels["version"]
```
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="listentry.Template.value"></a>
<tr>
<td><code>value</code></td>
<td>string</td>
<td>Specifies the entry to verify in the list.</td>
</tr>
</table>

View File

@ -0,0 +1,99 @@
---
title: Log Entry
overview: A template that represents a single runtime log entry.
location: https://istio.io/docs/reference/config/template/logentry.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>logentry</code> template represents an individual entry within a log.</p>
<h2 id="Template">Template</h2>
<section>
<p>The <code>logentry</code> template represents an individual entry within a log.</p>
<p>When writing the configuration, the value for the fields associated with this template can either be a
literal or an <a href="https://istio.io/docs/reference/config/mixer/expression-language.html">expression</a>. Please note that if the datatype of a field is not istio.mixer.v1.template.Value,
then the expression&rsquo;s <a href="https://istio.io/docs/reference/config/mixer/expression-language.html#type-checking">inferred type</a> must match the datatype of the field.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: logentry
metadata:
name: accesslog
namespace: istio-system
spec:
severity: '&quot;Default&quot;'
timestamp: request.time
variables:
sourceIp: source.ip | ip(&quot;0.0.0.0&quot;)
destinationIp: destination.ip | ip(&quot;0.0.0.0&quot;)
sourceUser: source.user | &quot;&quot;
method: request.method | &quot;&quot;
url: request.path | &quot;&quot;
protocol: request.scheme | &quot;http&quot;
responseCode: response.code | 0
responseSize: response.size | 0
requestSize: request.size | 0
latency: response.duration | &quot;0ms&quot;
monitored_resource_type: '&quot;UNSPECIFIED&quot;'
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.variables">
<td><code>variables</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>Variables that are delivered for each log entry.</p>
</td>
</tr>
<tr id="Template.timestamp">
<td><code>timestamp</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#TimeStamp">istio.mixer.v1.template.TimeStamp</a></code></td>
<td>
<p>Timestamp is the time value for the log entry</p>
</td>
</tr>
<tr id="Template.severity">
<td><code>severity</code></td>
<td><code>string</code></td>
<td>
<p>Severity indicates the importance of the log entry.</p>
</td>
</tr>
<tr id="Template.monitored_resource_type">
<td><code>monitoredResourceType</code></td>
<td><code>string</code></td>
<td>
<p>Optional. An expression to compute the type of the monitored resource this log entry is being recorded on.
If the logging backend supports monitored resources, these fields are used to populate that resource.
Otherwise these fields will be ignored by the adapter.</p>
</td>
</tr>
<tr id="Template.monitored_resource_dimensions">
<td><code>monitoredResourceDimensions</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>Optional. A set of expressions that will form the dimensions of the monitored resource this log entry is being
recorded on. If the logging backend supports monitored resources, these fields are used to populate that resource.
Otherwise these fields will be ignored by the adapter.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,90 +0,0 @@
---
title: logentry Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1170
layout: docs
type: markdown
---
{% include home.html %}
<a name="rpcLogentry"></a>
## Package logentry
<a name="rpcLogentryIndex"></a>
### Index
* [Template](#logentry.Template)
(message)
<a name="logentry.Template"></a>
### Template
LogEntry represents an individual entry within a log.
When writing the configuration, the value for the fields associated with this template can either be a
literal or an [expression]({{home}}/docs/reference/config/mixer/expression-language.html). Please note that if the datatype of a field is not istio.mixer.v1.config.descriptor.ValueType,
then the expression's [inferred type]({{home}}/docs/reference/config/mixer/expression-language.html#type-checking) must match the datatype of the field.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: logentry
metadata:
name: accesslog
namespace: istio-config-default
spec:
severity: '"Default"'
timestamp: request.time
variables:
sourceIp: source.ip | ip("0.0.0.0")
destinationIp: destination.ip | ip("0.0.0.0")
sourceUser: source.user | ""
method: request.method | ""
url: request.path | ""
protocol: request.scheme | "http"
responseCode: response.code | 0
responseSize: response.size | 0
requestSize: request.size | 0
latency: response.duration | "0ms"
monitoredResourceType: '"UNSPECIFIED"'
```
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="logentry.Template.variables"></a>
<tr>
<td><code>variables</code></td>
<td>repeated map&lt;string, <a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor.html#ValueType">ValueType</a>&gt;</td>
<td>Variables that are delivered for each log entry.</td>
</tr>
<a name="logentry.Template.timestamp"></a>
<tr>
<td><code>timestamp</code></td>
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp">Timestamp</a></td>
<td>Timestamp is the time value for the log entry</td>
</tr>
<a name="logentry.Template.severity"></a>
<tr>
<td><code>severity</code></td>
<td>string</td>
<td>Severity indicates the importance of the log entry.</td>
</tr>
<a name="logentry.Template.monitoredResourceType"></a>
<tr>
<td><code>monitoredResourceType</code></td>
<td>string</td>
<td>Optional. An expression to compute the type of the monitored resource this log entry is being recorded on. If the logging backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
</tr>
<a name="logentry.Template.monitoredResourceDimensions"></a>
<tr>
<td><code>monitoredResourceDimensions</code></td>
<td>repeated map&lt;string, <a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor.html#ValueType">ValueType</a>&gt;</td>
<td>Optional. A set of expressions that will form the dimensions of the monitored resource this log entry is being recorded on. If the logging backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
</tr>
</table>

View File

@ -0,0 +1,86 @@
---
title: Metric
overview: A template that represents a single runtime metric.
location: https://istio.io/docs/reference/config/template/metric.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>metric</code> template is designed to let you describe runtime metric to dispatch to
monitoring backends.</p>
<h2 id="Template">Template</h2>
<section>
<p>The <code>metric</code> template represents a single piece of data to report.</p>
<p>When writing the configuration, the value for the fields associated with this template can either be a
literal or an <a href="https://istio.io/docs/reference/config/mixer/expression-language.html">expression</a>. Please note that if the datatype of a field is not istio.mixer.v1.template.Value,
then the expression&rsquo;s <a href="https://istio.io/docs/reference/config/mixer/expression-language.html#type-checking">inferred type</a> must match the datatype of the field.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: metric
metadata:
name: requestsize
namespace: istio-system
spec:
value: request.size | 0
dimensions:
source_service: source.service | &quot;unknown&quot;
source_version: source.labels[&quot;version&quot;] | &quot;unknown&quot;
destination_service: destination.service | &quot;unknown&quot;
destination_version: destination.labels[&quot;version&quot;] | &quot;unknown&quot;
response_code: response.code | 200
monitored_resource_type: '&quot;UNSPECIFIED&quot;'
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.value">
<td><code>value</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a></code></td>
<td>
<p>The value being reported.</p>
</td>
</tr>
<tr id="Template.dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>The unique identity of the particular metric to report.</p>
</td>
</tr>
<tr id="Template.monitored_resource_type">
<td><code>monitoredResourceType</code></td>
<td><code>string</code></td>
<td>
<p>Optional. An expression to compute the type of the monitored resource this metric is being reported on.
If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise
these fields will be ignored by the adapter.</p>
</td>
</tr>
<tr id="Template.monitored_resource_dimensions">
<td><code>monitoredResourceDimensions</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>Optional. A set of expressions that will form the dimensions of the monitored resource this metric is being reported on.
If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise
these fields will be ignored by the adapter.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,78 +0,0 @@
---
title: metric Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1180
layout: docs
type: markdown
---
{% include home.html %}
<a name="rpcMetric"></a>
## Package metric
<a name="rpcMetricIndex"></a>
### Index
* [Template](#metric.Template)
(message)
<a name="metric.Template"></a>
### Template
Metric represents a single piece of data to report.
When writing the configuration, the value for the fields associated with this template can either be a
literal or an [expression]({{home}}/docs/reference/config/mixer/expression-language.html). Please note that if the datatype of a field is not istio.mixer.v1.config.descriptor.ValueType,
then the expression's [inferred type]({{home}}/docs/reference/config/mixer/expression-language.html#type-checking) must match the datatype of the field.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: metric
metadata:
name: requestsize
namespace: istio-config-default
spec:
value: request.size | 0
dimensions:
sourceService: source.service | "unknown"
sourceVersion: source.labels["version"] | "unknown"
destinationService: destination.service | "unknown"
destinationVersion: destination.labels["version"] | "unknown"
responseCode: response.code | 200
monitoredResourceType: '"UNSPECIFIED"'
```
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="metric.Template.value"></a>
<tr>
<td><code>value</code></td>
<td><a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor#ValueType">ValueType</a></td>
<td>The value being reported.</td>
</tr>
<a name="metric.Template.dimensions"></a>
<tr>
<td><code>dimensions</code></td>
<td>repeated map&lt;string, <a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor#ValueType">ValueType</a>&gt;</td>
<td>The unique identity of the particular metric to report.</td>
</tr>
<a name="metric.Template.monitoredResourceType"></a>
<tr>
<td><code>monitoredResourceType</code></td>
<td>string</td>
<td>Optional. An expression to compute the type of the monitored resource this metric is being reported on. If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
</tr>
<a name="metric.Template.monitoredResourceDimensions"></a>
<tr>
<td><code>monitoredResourceDimensions</code></td>
<td>repeated map&lt;string, <a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor#ValueType">ValueType</a>&gt;</td>
<td>Optional. A set of expressions that will form the dimensions of the monitored resource this metric is being reported on. If the metric backend supports monitored resources, these fields are used to populate that resource. Otherwise these fields will be ignored by the adapter.</td>
</tr>
</table>

View File

@ -0,0 +1,54 @@
---
title: Quota
overview: A template that represents a quota allocation request
location: https://istio.io/docs/reference/config/template/quota.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>quota</code> template represents an item for which to check quota.</p>
<h2 id="Template">Template</h2>
<section>
<p>The <code>quota</code> template represents a piece of data to check Quota for.</p>
<p>When writing the configuration, the value for the fields associated with this template can either be a
literal or an <a href="https://istio.io/docs/reference/config/mixer/expression-language.html">expression</a>. Please note that if the datatype of a field is not istio.mixer.v1.template.Value,
then the expression&rsquo;s <a href="https://istio.io/docs/reference/config/mixer/expression-language.html#type-checking">inferred type</a> must match the datatype of the field.</p>
<p>Example config:</p>
<pre><code>apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: quota
metadata:
name: requestcount
namespace: istio-system
spec:
dimensions:
source: source.labels[&quot;app&quot;] | source.service | &quot;unknown&quot;
sourceVersion: source.labels[&quot;version&quot;] | &quot;unknown&quot;
destination: destination.labels[&quot;app&quot;] | destination.service | &quot;unknown&quot;
destinationVersion: destination.labels[&quot;version&quot;] | &quot;unknown&quot;
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string, <a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Value">istio.mixer.v1.template.Value</a>&gt;</code></td>
<td>
<p>The unique identity of the particular quota to manipulate.</p>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -1,57 +0,0 @@
---
title: quota Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1190
layout: docs
type: markdown
---
{% include home.html %}
<a name="rpcQuota"></a>
## Package quota
<a name="rpcQuotaIndex"></a>
### Index
* [Template](#quota.Template)
(message)
<a name="quota.Template"></a>
### Template
Quota represents a piece of data to check Quota for.
When writing the configuration, the value for the fields associated with this template can either be a
literal or an [expression]({{home}}/docs/reference/config/mixer/expression-language.html). Please note that if the datatype of a field is not istio.mixer.v1.config.descriptor.ValueType,
then the expression's [inferred type]({{home}}/docs/reference/config/mixer/expression-language.html#type-checking) must match the datatype of the field.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: quota
metadata:
name: requestcount
namespace: istio-config-default
spec:
dimensions:
source: source.labels["app"] | source.service | "unknown"
sourceVersion: source.labels["version"] | "unknown"
destination: destination.labels["app"] | destination.service | "unknown"
destinationVersion: destination.labels["version"] | "unknown"
```
<table>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
<a name="quota.Template.dimensions"></a>
<tr>
<td><code>dimensions</code></td>
<td>repeated map&lt;string, <a href="{{home}}/docs/reference/config/mixer/istio.mixer.v1.config.descriptor#ValueType">ValueType</a>&gt;</td>
<td>The unique identity of the particular quota to manipulate.</td>
</tr>
</table>

View File

@ -0,0 +1,29 @@
---
title: Report Nothing
overview: A template that carries no data, useful for testing.
location: https://istio.io/docs/reference/config/template/reportnothing.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% raw %}
<p>The <code>reportnothing</code> template represents an empty block of data, which can useful
in different testing scenarios.</p>
<h2 id="Template">Template</h2>
<section>
<p>ReportNothing represents an empty block of data that is used for Report-capable
adapters which don&rsquo;t require any parameters. This is primarily intended for testing
scenarios.</p>
<p>Example config:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: reportnothing
metadata:
name: reportrequest
namespace: istio-system
spec:
</code></pre>
</section>
{% endraw %}

View File

@ -1,35 +0,0 @@
---
title: reportnothing Config
overview: Generated documentation for Mixer's Template Configuration Schema
order: 1200
layout: docs
type: markdown
---
<a name="rpcReportnothingIndex"></a>
### Index
* [Template](#reportnothing.Template)
(message)
<a name="reportnothing.Template"></a>
### Template
ReportNothing represents an empty block of data that is used for Report-capable
adapters which don't require any parameters. This is primarily intended for testing
scenarios.
Example config:
```
apiVersion: "config.istio.io/v1alpha2"
kind: reportnothing
metadata:
name: reportrequest
namespace: istio-config-default
spec:
```
NOTE: _No fields in this message type.__

View File

@ -0,0 +1,135 @@
---
title: Service Control Report
overview: A template used by the Google Service Control adapter.
location: https://istio.io/docs/reference/config/template/servicecontrolreport.html
layout: protoc-gen-docs
number_of_entries: 1
---
{% include home.html %}
<p>The <code>servicecontrolreport</code> template is used by the <a href="{{home}}/docs/reference/config/adapters/servicecontrol.html">Google
Service
Control</a>
adapter.</p>
{% raw %}
<h2 id="Template">Template</h2>
<section>
<p>A template used by Google Service Control (servicecontrol) adapter. The adapter
generates metrics and logentry for each request based on the data point
defined by this template.</p>
<p>Config example:</p>
<pre><code class="language-yaml">apiVersion: &quot;config.istio.io/v1alpha2&quot;
kind: servicecontrolreport
metadata:
name: report
namespace: istio-system
spec:
api_version : api.version | &quot;&quot;
api_operation : api.operation | &quot;&quot;
api_protocol : api.protocol | &quot;&quot;
api_service : api.service | &quot;&quot;
api_key : api.key | &quot;&quot;
request_time : request.time
request_method : request.method
request_path : request.path
request_bytes: request.size
response_time : response.time
response_code : response.code | 520
response_bytes : response.size | 0
response_latency : response.duration | &quot;0ms&quot;
</code></pre>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Template.api_version">
<td><code>apiVersion</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.api_operation">
<td><code>apiOperation</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.api_protocol">
<td><code>apiProtocol</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.api_service">
<td><code>apiService</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.api_key">
<td><code>apiKey</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.request_time">
<td><code>requestTime</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#TimeStamp">istio.mixer.v1.template.TimeStamp</a></code></td>
<td>
</td>
</tr>
<tr id="Template.request_method">
<td><code>requestMethod</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.request_path">
<td><code>requestPath</code></td>
<td><code>string</code></td>
<td>
</td>
</tr>
<tr id="Template.request_bytes">
<td><code>requestBytes</code></td>
<td><code>int64</code></td>
<td>
</td>
</tr>
<tr id="Template.response_time">
<td><code>responseTime</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#TimeStamp">istio.mixer.v1.template.TimeStamp</a></code></td>
<td>
</td>
</tr>
<tr id="Template.response_code">
<td><code>responseCode</code></td>
<td><code>int64</code></td>
<td>
</td>
</tr>
<tr id="Template.response_bytes">
<td><code>responseBytes</code></td>
<td><code>int64</code></td>
<td>
</td>
</tr>
<tr id="Template.response_latency">
<td><code>responseLatency</code></td>
<td><code><a href="https://istio.io/docs/reference/config/mixer/istio.mixer.v1.template.html#Duration">istio.mixer.v1.template.Duration</a></code></td>
<td>
</td>
</tr>
</tbody>
</table>
</section>
{% endraw %}

View File

@ -7,7 +7,7 @@ layout: default
{% include sidebar.html docs=site.docs %}
</div>
{% if page.toc != false %}
{% if page.toc != false and page.number_of_entries != 1 %}
<div class="col-12 col-md-9 col-lg-7 col-xl-8">
{% else %}
<div class="col-12 col-md-9 col-xl-10">
@ -24,7 +24,7 @@ layout: default
</main>
</div>
{% if page.toc != false %}
{% if page.toc != false and page.number_of_entries != 1 %}
<div class="col-12 col-md-2 d-none d-lg-block">
<nav class="toc">
<div class="spacer"></div>

View File

@ -52,6 +52,7 @@ get_command_doc() {
pushd $COMMAND_PATH
go build
./$COMMAND collateral -o $COMMAND_DIR --jekyll_html
rm $COMMAND
popd
}