istio.io/archive/v0.1/docs/reference/config/mixer/mixer-config.html

43 lines
51 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en" itemscope itemtype="https://schema.org/WebPage" style="overflow-y: scroll;"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="title" content="Mixer"><meta name="og:title" content="Mixer"><meta name="og:image" content="/v0.1/img/logo.png"/><meta name="description" content="Mixer's configuration schema"><meta name="og:description" content="Mixer's configuration schema"><title>Istioldie 0.1 / Mixer</title><script> window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-98480406-2', 'auto'); ga('send', 'pageview'); </script> <script async src='https://www.google-analytics.com/analytics.js'></script><link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'><link rel="alternate" type="application/rss+xml" title="Istio Blog RSS" href="/v0.1/feed.xml"><link rel="apple-touch-icon" href="/v0.1/favicons/apple-touch-icon.png" sizes="180x180"><link rel="icon" type="image/png" href="/v0.1/favicons/android-chrome-96x96.png" sizes="96x96" ><link rel="icon" type="image/png" href="/v0.1/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/v0.1/favicons/favicon-16x16.png" sizes="16x16"><link rel="manifest" href="/v0.1/favicons/manifest.json"><link rel="mask-icon" href="/v0.1/favicons/safari-pinned-tab.svg" color="#2DA6B0"><meta name="msapplication-TileColor" content="#ffffff"><meta name="msapplication-TileImage" content="/v0.1/favicons/mstile-150x150.png"><link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"><link rel="stylesheet" href="/v0.1/css/all.css"><link rel="stylesheet" href="/v0.1/css/prism.css"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script></head><body class="language-unknown"><div class="nav-hero-container" style="z-index: 200000;"><nav id="header-nav" class="navbar navbar-inverse" role="navigation"><div class="container"><div class="row"><div class="col-md-11 nofloat center-block "><div class="navbar-header"> <button type="button" class="hamburger navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/v0.1/"><div> <img src="/v0.1/img/logo.png" alt="Istio" width="36px" height="54px"/> <span class="brand-name">Istioldie 0.1</span></div></a></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="/v0.1/about/" >About</a></li><li><a href="/v0.1/docs/" class='current'>Docs</a></li><li><a href="/v0.1/blog/" >Blog</a></li><li><a href="/v0.1/community/" >Community</a></li><li><a href="/v0.1/faq/" >FAQ</a></li><li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href=""> <i class='fa fa-lg fa-cog'></i> <span class="caret"></span> </a><ul class="dropdown-menu"><h6 class="dropdown-header">Other versions of this site</h6><li> <a href="https://istio.io">Current Release</a></li><li> <a href="https://preliminary.istio.io">Next Release</a></li><li> <a href="https://archive.istio.io">Older Releases</a></li></ul></li><li><form name="cse" id="searchbox_demo" class="navbar-form navbar-right" role="search"> <input type="hidden" name="cx" value="013699703217164175118:iwwf17ikgf4" /> <input type="hidden" name="ie" value="utf-8" /> <input type="hidden" name="hl" value="en" /><div class="form-group"><div class="input-group"> <input name="q" class="form-control" type="text" size="30" /><div class="input-group-addon"> <span class="btn-search glyphicon glyphicon-search"></span></div></div></div></form> <script type="text/javascript" src="https://www.google.com/cse/brand?form=searchbox_demo"></script></li></ul></div></div></div></div></nav></div><div class="container"><div class="row"><div class="col-md-11 nofloat center-block" style="margin-top: 3px;"><ul class="col-sm-10 nav nav-tabs"><li role="presentation" ><a href="/v0.1/docs/index.html">Welcome</a></li><li role="presentation" ><a href="/v0.1/docs/concepts/index.html">Concepts</a></li><li role="presentation" ><a href="/v0.1/docs/tasks/index.html">Tasks</a></li><li role="presentation" ><a href="/v0.1/docs/samples/index.html">Samples</a></li><li role="presentation" class='active'><a href="/v0.1/docs/reference/index.html">Reference</a></li></ul></div></div></div><script src="/v0.1/js/navtree.js"></script><div class="container docs"><div class="row"><div class="col-md-11 nofloat center-block"><div class="row"><div id="sidebar-container" class="col-sm-3"><ul class="doc-side-nav"><li><h5 class='doc-side-nav-title'>Reference</h5></li><script type="text/javascript"> var docs = []; docs.push({path: [ "api", "index.md", ], url: "/docs/reference/api/index.html", title: "API", order: 21, overview: "Detailed information on API parameters."}); docs.push({path: [ "api", "mixer", "index.md", ], url: "/docs/reference/api/mixer/index.html", title: "Mixer", order: 10, overview: "Detailed information on configuration and API exposed by Mixer."}); docs.push({path: [ "api", "mixer", "mixer-service.md", ], url: "/docs/reference/api/mixer/mixer-service.html", title: "Mixer Service", order: 1200, overview: "Mixer's API Surface"}); docs.push({path: [ "api", "mixer", "status.md", ], url: "/docs/reference/api/mixer/status.html", title: "Status RPC", order: 40, overview: "Google's rpc.Status proto"}); docs.push({path: [ "commands", "index.md", ], url: "/docs/reference/commands/index.html", title: "CLI", order: 30, overview: "Describes usage and options of the Istio CLI and other utilities."}); docs.push({path: [ "commands", "istioctl.md", ], url: "/docs/reference/commands/istioctl.html", title: "istioctl", order: 1, overview: "Istio control interface"}); docs.push({path: [ "commands", "mixc.md", ], url: "/docs/reference/commands/mixc.html", title: "mixc", order: 101, overview: "Utility to trigger direct calls to Mixer's API."}); docs.push({path: [ "commands", "mixs.md", ], url: "/docs/reference/commands/mixs.html", title: "mixs", order: 201, overview: "Mixer is Istio's abstraction on top of infrastructure backends."}); docs.push({path: [ "config", "index.md", ], url: "/docs/reference/config/index.html", title: "Configuration", order: 22, overview: "Detailed information on configuration options."}); docs.push({path: [ "config", "mixer", "adapters", "denychecker.md", ], url: "/docs/reference/config/mixer/adapters/denyChecker.html", title: "denyChecker", order: 0, overview: "denyChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "genericlistchecker.md", ], url: "/docs/reference/config/mixer/adapters/genericListChecker.html", title: "genericListChecker", order: 10, overview: "genericListChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "index.md", ], url: "/docs/reference/config/mixer/adapters/index.html", title: "Adapters", order: 2000, overview: "Mixer's adapter configuration schemas."}); docs.push({path: [ "config", "mixer", "adapters", "iplistchecker.md", ], url: "/docs/reference/config/mixer/adapters/ipListChecker.html", title: "ipListChecker", order: 20, overview: "ipListChecker adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "kubernetes.md", ], url: "/docs/reference/config/mixer/adapters/kubernetes.html", title: "kubernetes", order: 30, overview: "kubernetes adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "memquota.md", ], url: "/docs/reference/config/mixer/adapters/memQuota.html", title: "memQuota", order: 40, overview: "memQuota adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "prometheus.md", ], url: "/docs/reference/config/mixer/adapters/prometheus.html", title: "prometheus", order: 50, overview: "prometheus adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "redisquota.md", ], url: "/docs/reference/config/mixer/adapters/redisquota.html", title: "redisquota", order: 60, overview: "redisquota adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "statsd.md", ], url: "/docs/reference/config/mixer/adapters/statsd.html", title: "statsd", order: 70, overview: "statsd adapter configuration schema"}); docs.push({path: [ "config", "mixer", "adapters", "stdiologger.md", ], url: "/docs/reference/config/mixer/adapters/stdioLogger.html", title: "stdioLogger", order: 80, overview: "stdioLogger adapter configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "accesslogs.md", ], url: "/docs/reference/config/mixer/aspects/accessLogs.html", title: "accessLogs", order: 1120, overview: "accessLogs aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "applicationlogs.md", ], url: "/docs/reference/config/mixer/aspects/applicationLogs.html", title: "applicationLogs", order: 1130, overview: "applicationLogs aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "attributes.md", ], url: "/docs/reference/config/mixer/aspects/attributes.html", title: "attributes", order: 1140, overview: "attributes aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "denials.md", ], url: "/docs/reference/config/mixer/aspects/denials.html", title: "denials", order: 1150, overview: "denials aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "index.md", ], url: "/docs/reference/config/mixer/aspects/index.html", title: "Aspects", order: 2000, overview: "Generated documentation for Mixer's aspects."}); docs.push({path: [ "config", "mixer", "aspects", "lists.md", ], url: "/docs/reference/config/mixer/aspects/lists.html", title: "lists", order: 1160, overview: "lists aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "metrics.md", ], url: "/docs/reference/config/mixer/aspects/metrics.html", title: "metrics", order: 1170, overview: "metrics aspect configuration schema"}); docs.push({path: [ "config", "mixer", "aspects", "quotas.md", ], url: "/docs/reference/config/mixer/aspects/quotas.html", title: "quotas", order: 1180, overview: "quotas aspect configuration schema"}); docs.push({path: [ "config", "mixer", "attribute-vocabulary.md", ], url: "/docs/reference/config/mixer/attribute-vocabulary.html", title: "Attribute Vocabulary", order: 10, overview: "Describes the base attribute vocabulary used for policy and control."}); docs.push({path: [ "config", "mixer", "expression-language.md", ], url: "/docs/reference/config/mixer/expression-language.html", title: "Expression Language", order: 43, overview: "Mixer config expression language reference."}); docs.push({path: [ "config", "mixer", "index.md", ], url: "/docs/reference/config/mixer/index.html", title: "Mixer", order: 10, overview: "Detailed information on configuration and API exposed by Mixer."}); docs.push({path: [ "config", "mixer", "mixer-config.md", ], url: "/docs/reference/config/mixer/mixer-config.html", title: "Mixer", order: 1190, overview: "Mixer's configuration schema"}); docs.push({path: [ "config", "service-mesh.md", ], url: "/docs/reference/config/service-mesh.html", title: "Service Mesh", order: 30, overview: "Global configuration schema"}); docs.push({path: [ "config", "traffic-rules", "destination-policies.md", ], url: "/docs/reference/config/traffic-rules/destination-policies.html", title: "Destination Policies", order: 30, overview: "Client-side traffic management policies configuration schema"}); docs.push({path: [ "config", "traffic-rules", "index.md", ], url: "/docs/reference/config/traffic-rules/index.html", title: "Traffic Management Rules", order: 10, overview: "Detailed information on rules configuration and API exposed by Pilot for managing them."}); docs.push({path: [ "config", "traffic-rules", "routing-rules.md", ], url: "/docs/reference/config/traffic-rules/routing-rules.html", title: "Routing Rules", order: 20, overview: "Traffic routing rule configuration schema"}); docs.push({path: [ "contribute", "creating-a-pull-request.md", ], url: "/docs/reference/contribute/creating-a-pull-request.html", title: "Creating a Pull Request", order: 20, overview: "Shows you how to create a GitHub pull request in order to submit your docs for approval."}); docs.push({path: [ "contribute", "editing.md", ], url: "/docs/reference/contribute/editing.html", title: "Editing Docs", order: 10, overview: "Lets you start editing this site's documentation."}); docs.push({path: [ "contribute", "index.md", ], url: "/docs/reference/contribute/index.html", title: "Contributing to the Docs", order: 100, overview: "Learn how to contribute to improve and expand the Istio documentation."}); docs.push({path: [ "contribute", "reviewing-doc-issues.md", ], url: "/docs/reference/contribute/reviewing-doc-issues.html", title: "Doc Issues", order: 60, overview: "Explains the process involved in accepting documentation updates."}); docs.push({path: [ "contribute", "staging-your-changes.md", ], url: "/docs/reference/contribute/staging-your-changes.html", title: "Staging Your Changes", order: 40, overview: "Explains how to test your changes locally before submitting them."}); docs.push({path: [ "contribute", "style-guide.md", ], url: "/docs/reference/contribute/style-guide.html", title: "Style Guide", order: 70, overview: "Explains the dos and donts of writing Istio docs."}); docs.push({path: [ "contribute", "writing-a-new-topic.md", ], url: "/docs/reference/contribute/writing-a-new-topic.html", title: "Writing a New Topic", order: 30, overview: "Explains the mechanics of creating new documentation pages."}); docs.push({path: [ "glossary.md", ], url: "/docs/reference/glossary.html", title: "Glossary", order: 40, overview: "A glossary of common Istio terms."}); docs.push({path: [ "index.md", ], url: "/docs/reference/index.html", title: "Reference", order: 40, overview: "The Reference section contains detailed authoritative reference material such as command-line options, configuration options, and API calling parameters."}); docs.push({path: [ "release-notes.md", ], url: "/docs/reference/release-notes.html", title: "Release Notes", order: 50, overview: "What's been happening with Istio."}); docs.push({path: [ "release-roadmap.md", ], url: "/docs/reference/release-roadmap.html", title: "Roadmap", order: 60, overview: "What Istio will become in the coming months."}); docs.push({path: [ "writing-config.md", ], url: "/docs/reference/writing-config.html", title: "Writing Configuration", order: 70, overview: "How to write Istio config YAML content."}); genNavBarTree(docs) </script></ul></div><div id="tab-container" class="col-xs-1 tab-neg-margin pull-left"> <a id="sidebar-tab" class="glyphicon glyphicon-chevron-left" href="javascript:void 0;"></a></div><div id="content-container" class="thin-left-border col-sm-9 markdown"><div id="toc" class="toc"></div><div id="doc-content"><h1>Mixer</h1><p><a name="istio.mixer.v1.config.Adapter"></a></p><h3 id="adapter">Adapter</h3><p>Adapter allows the operator to configure a specific adapter implementation. Each adapter implementation defines its own <code>params</code> proto. Note that unlike <a href="#istio.mixer.v1.config.Aspect">Aspect</a>, the type of <code>params</code> varies with <code>impl</code> and not with <code>kind</code>.</p><p>In the following example we define a <code>metrics</code> adapter using the Mixers prepackaged prometheus adapter. This adapter doesnt require any parameters.</p><pre><code class="language-yaml">kind: metrics
name: prometheus-adapter
impl: prometheus
params:
</code></pre><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.Adapter.name"></a><tr><td><code>name</code></td><td>string</td><td>Required, must be unique per <code>kind</code>. Used by <a href="#istio.mixer.v1.config.Aspect">Aspect</a> to refer to this adapter. The name "default" is special: when an Aspect does not specify a name, the Adapter named "default" of the same <code>kind</code> is used to execute the intention described by the <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a>s.</td></tr><a name="istio.mixer.v1.config.Adapter.kind"></a><tr><td><code>kind</code></td><td>string</td><td>Required. The aspect this implementation with these params will implement; a single adapter implementation may implement many aspects, but an <code>Adapter</code> entry is required per kind.</td></tr><a name="istio.mixer.v1.config.Adapter.impl"></a><tr><td><code>impl</code></td><td>string</td><td>Required. The name of a specific adapter implementation. An adapter's implementation name is typically a constant in its code.</td></tr><a name="istio.mixer.v1.config.Adapter.params"></a><tr><td><code>params</code></td><td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></td><td>Optional, depends on adapter implementation. Struct representation of a proto defined by the implementation; this varies depending on <code>impl</code>.</td></tr></table><p><a name="istio.mixer.v1.config.Aspect"></a></p><h3 id="aspect">Aspect</h3><p>Aspect describes how an adapter is intended to operate in the context of the rule its embedded in. The value for <code>params</code> depends on the <code>kind</code> of this aspect: each kind of aspect defines its own <code>params</code> proto.</p><p>The following example instructs Mixer to populate a metric named “responseTime” that was declared to have three labels: srcConsumerId, targetResponseStatusCode, and targetServiceName. For each label and the metrics <code>value</code> we provide an expression over Istios attributes. Mixer evaluates these expressions for each request.</p><pre><code class="language-yaml">kind: metrics
params:
metrics:
- descriptorName: responseTime # tie this metric to a descriptor of the same name
value: response.time # from the set of canonical attributes
labels:
srcConsumerId: source.user | source.uid
targetResponseStatusCode: response.code
targetServiceName: target.service
</code></pre><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.Aspect.kind"></a><tr><td><code>kind</code></td><td>string</td><td>Required. The kind of aspect this intent is targeting.</td></tr><a name="istio.mixer.v1.config.Aspect.adapter"></a><tr><td><code>adapter</code></td><td>string</td><td>Optional. The name of the adapter this Aspect targets. If no name is provided, Mixer will use the adapter of the target kind named "default".</td></tr><a name="istio.mixer.v1.config.Aspect.params"></a><tr><td><code>params</code></td><td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></td><td>Required. Struct representation of a proto defined by each aspect kind.</td></tr></table><p><a name="istio.mixer.v1.config.AspectRule"></a></p><h3 id="aspectrule">AspectRule</h3><p>An AspectRule is a selector and a set of intentions to be executed when the selector is <code>true</code>. The selectors of the this rules child AspectRules are only evaluated if this rules selector is true.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.AspectRule.selector"></a><tr><td><code>selector</code></td><td>string</td><td><p>Required. Selector is an attribute based predicate. When Mixer receives a request it evaluates all selectors in scope and executes the rules for all selectors that evaluated to true.</p><p>A few example selectors:</p><ul><li>an empty selector evaluates to <code>true</code></li><li><code>true</code>, a boolean literal; a rule with this selector will always be executed</li><li><code>target.service == ratings*</code> selects any request targeting a service whose name starts with "ratings"</li><li><code>attr1 == &quot;20&quot; &amp;&amp; attr2 == &quot;30&quot;</code> logical AND, OR, and NOT are also available</li></ul></td></tr><a name="istio.mixer.v1.config.AspectRule.aspects"></a><tr><td><code>aspects[]</code></td><td>repeated <a href="#istio.mixer.v1.config.Aspect">Aspect</a></td><td>The aspects that apply when selector evaluates to <code>true</code>.</td></tr><a name="istio.mixer.v1.config.AspectRule.rules"></a><tr><td><code>rules[]</code></td><td>repeated <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a></td><td>Nested aspect rules; their selectors are evaluated if this selector predicate evaluates to <code>true</code>.</td></tr></table><p><a name="istio.mixer.v1.config.AttributeManifest"></a></p><h3 id="attributemanifest">AttributeManifest</h3><p>AttributeManifest describes a set of Attributes produced by some component of an Istio deployment.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.AttributeManifest.revision"></a><tr><td><code>revision</code></td><td>string</td><td>Optional. The revision of this document. Assigned by server.</td></tr><a name="istio.mixer.v1.config.AttributeManifest.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. Name of the component producing these attributes. This can be the proxy (with the canonical name "istio-proxy") or the name of an <code>attributes</code> kind adapter in Mixer.</td></tr><a name="istio.mixer.v1.config.AttributeManifest.attributes"></a><tr><td><code>attributes</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.AttributeManifest.AttributeInfo">AttributeInfo</a>&gt;</td><td><p>The set of attributes this Istio component will be responsible for producing at runtime. We map from attribute name to the attribute's specification. The name of an attribute, which is how attributes are referred to in aspect configuration, must conform to:</p><pre><code>Name = IDENT { SEPARATOR IDENT };
</code></pre><p>Where <code>IDENT</code> must match the regular expression <code>a-z+</code> and <code>SEPARATOR</code> must match the regular expression <code>[\.-]</code>.</p><p>Attribute names must be unique within a single Istio deployment. The set of canonical attributes are described <a href="./attribute-vocabulary.html">here</a>. Attributes not in that list should be named with a component-specific suffix such as request.count-my.component</p></td></tr></table><p><a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo"></a></p><h3 id="attributeinfo">AttributeInfo</h3><p>AttributeInfo describes the schema of an Istio <code>Attribute</code>.</p><p><a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection"></a></p><h4 id="istio-attributes">Istio Attributes</h4><p>Istio uses <code>attributes</code> to describe runtime activities of Istio services. An Istio attribute carries a specific piece of information about an activity, such as the error code of an API request, the latency of an API request, or the original IP address of a TCP connection. The attributes are often generated and consumed by different services. For example, a frontend service can generate an authenticated user attribute and pass it to a backend service for access control purpose.</p><p>To simplify the system and improve developer experience, Istio uses shared attribute definitions across all components. For example, the same authenticated user attribute will be used for logging, monitoring, analytics, billing, access control, auditing. Many Istio components provide their functionality by collecting, generating, and operating on attributes. For example, the proxy collects the error code attribute, and the logging stores it into a log.</p><p><a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection_1"></a></p><h4 id="design">Design</h4><p>Each Istio attribute must conform to an <code>AttributeInfo</code> in an <code>AttributeManifest</code> in the current Istio deployment at runtime. An <code>AttributeInfo</code> is used to define an attributes metadata: the type of its value and a detailed description that explains the semantics of the attribute type. Each attributes name is globally unique; in other words an attribute name can only appear once across all manifests.</p><p>The runtime presentation of an attribute is intentionally left out of this specification, because passing attribute using JSON, XML, or Protocol Buffers does not change the semantics of the attribute. Different implementations can choose different representations based on their needs.</p><p><a name="rpcIstio.mixer.v1.configIstio.mixer.v1.config.AttributeManifest.AttributeInfoDescriptionSubsectionSubsection_2"></a></p><h4 id="http-mapping">HTTP Mapping</h4><p>Because many systems already have REST APIs, it makes sense to define a standard HTTP mapping for Istio attributes that are compatible with typical REST APIs. The design is to map one attribute to one HTTP header, the attribute name and value becomes the HTTP header name and value. The actual encoding scheme will be decided later.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo.description"></a><tr><td><code>description</code></td><td>string</td><td>Optional. A human-readable description of the attribute's purpose.</td></tr><a name="istio.mixer.v1.config.AttributeManifest.AttributeInfo.valueType"></a><tr><td><code>valueType</code></td><td><a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a></td><td>Required. The type of data carried by this attribute.</td></tr></table><p><a name="istio.mixer.v1.config.DnsName"></a></p><h3 id="dnsname">DnsName</h3><p>DnsName holds a valid domain name.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.DnsName.value"></a><tr><td><code>value</code></td><td>string</td><td></td></tr></table><p><a name="istio.mixer.v1.config.EmailAddress"></a></p><h3 id="emailaddress">EmailAddress</h3><p>EmailAddress holds a properly formatted email address.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.EmailAddress.value"></a><tr><td><code>value</code></td><td>string</td><td></td></tr></table><p><a name="istio.mixer.v1.config.GlobalConfig"></a></p><h3 id="globalconfig">GlobalConfig</h3><p>WARNING: GlobalConfig is deprecated, see the Config APIs swagger spec.</p><p>GlobalConfig defines configuration elements that are available for the rest of the config. It is used to configure adapters and make them available in AspectRules.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.GlobalConfig.revision"></a><tr><td><code>revision</code></td><td>string</td><td>Optional.</td></tr><a name="istio.mixer.v1.config.GlobalConfig.adapters"></a><tr><td><code>adapters[]</code></td><td>repeated <a href="#istio.mixer.v1.config.Adapter">Adapter</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.manifests"></a><tr><td><code>manifests[]</code></td><td>repeated <a href="#istio.mixer.v1.config.AttributeManifest">AttributeManifest</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.logs"></a><tr><td><code>logs[]</code></td><td>repeated <a href="#istio.mixer.v1.config.descriptor.LogEntryDescriptor">LogEntryDescriptor</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.metrics"></a><tr><td><code>metrics[]</code></td><td>repeated <a href="#istio.mixer.v1.config.descriptor.MetricDescriptor">MetricDescriptor</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.monitoredResources"></a><tr><td><code>monitoredResources[]</code></td><td>repeated <a href="#istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor">MonitoredResourceDescriptor</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.principals"></a><tr><td><code>principals[]</code></td><td>repeated <a href="#istio.mixer.v1.config.descriptor.PrincipalDescriptor">PrincipalDescriptor</a></td><td></td></tr><a name="istio.mixer.v1.config.GlobalConfig.quotas"></a><tr><td><code>quotas[]</code></td><td>repeated <a href="#istio.mixer.v1.config.descriptor.QuotaDescriptor">QuotaDescriptor</a></td><td></td></tr></table><p><a name="istio.mixer.v1.config.IpAddress"></a></p><h3 id="ipaddress">IpAddress</h3><p>IpAddress holds an IPv4 or IPv6 address.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.IpAddress.value"></a><tr><td><code>value</code></td><td>bytes</td><td></td></tr></table><p><a name="istio.mixer.v1.config.ServiceConfig"></a></p><h3 id="serviceconfig">ServiceConfig</h3><p>WARNING: ServiceConfig is deprecated, see the Config APIs swagger spec.</p><p>Configures a set of services.</p><p>The following example configures a metric that will be recorded for all services:</p><pre><code class="language-yaml">subject: "namespace:ns1"
revision: "1011"
rules:
- selector: target.service == "*"
aspects:
- kind: metrics
params:
metrics: # defines metric collection across the board.
- descriptorName: responseTimeByStatusCode
value: response.time
labels:
statusCode: response.code
</code></pre><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.ServiceConfig.subject"></a><tr><td><code>subject</code></td><td>string</td><td>Optional. Subject is unique for a config type. 2 config with the same subject will overwrite each other</td></tr><a name="istio.mixer.v1.config.ServiceConfig.revision"></a><tr><td><code>revision</code></td><td>string</td><td>Optional. revision of this config. This is assigned by the server</td></tr><a name="istio.mixer.v1.config.ServiceConfig.rules"></a><tr><td><code>rules[]</code></td><td>repeated <a href="#istio.mixer.v1.config.AspectRule">AspectRule</a></td><td></td></tr></table><p><a name="istio.mixer.v1.config.Uri"></a></p><h3 id="uri">Uri</h3><p>Uri represents a properly formed URI.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.Uri.value"></a><tr><td><code>value</code></td><td>string</td><td></td></tr></table><p><a name="rpcIstio.mixer.v1.configDescriptor"></a></p><h2 id="package-istiomixerv1configdescriptor">Package istio.mixer.v1.config.descriptor</h2><p><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor"></a></p><h3 id="logentrydescriptor">LogEntryDescriptor</h3><p>Defines the format of a single log entry.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. The name of this descriptor.</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.displayName"></a><tr><td><code>displayName</code></td><td>string</td><td>Optional. A concise name for the log entry type, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.description"></a><tr><td><code>description</code></td><td>string</td><td>Optional. A description of the log entry type, which can be used in documentation.</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.payloadFormat"></a><tr><td><code>payloadFormat</code></td><td><a href="#istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat">PayloadFormat</a></td><td>Required. Format of the value of the payload attribute.</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.logTemplate"></a><tr><td><code>logTemplate</code></td><td>string</td><td><p>Required. The template that will be populated with labels at runtime to generate a log message; the labels describe the parameters for this template.</p><p>The template strings must conform to go's text/template syntax.</p></td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.labels"></a><tr><td><code>labels</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td><td>Labels describe the parameters of this log's template string. The log definition allows the user to map attribute expressions to actual values for these labels at run time; the result of the evaluation must be of the type described by the kind for each label.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat"></a></p><h3 id="payloadformat">PayloadFormat</h3><p>PayloadFormat details the currently supported logging payload formats. TEXT is the default payload format.</p><table><tr><th>Value</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.PAYLOADFORMATUNSPECIFIED"></a><tr><td>PAYLOADFORMATUNSPECIFIED</td><td>Invalid, default value.</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.TEXT"></a><tr><td>TEXT</td><td>Indicates a payload format of raw text.</td></tr><a name="istio.mixer.v1.config.descriptor.LogEntryDescriptor.PayloadFormat.JSON"></a><tr><td>JSON</td><td>Indicates that the payload is a serialized JSON object.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor"></a></p><h3 id="metricdescriptor">MetricDescriptor</h3><p>Defines a metric type and its schema.</p><p>A metric is dimensioned by a set of labels whose values are derived at runtime from attributes. A given metric holds a unique value for potentially any combination of these dimensions.</p><p>The following is an example descriptor for a metric capturing the number of RPCs served, dimensioned by the method being called and response code returned by the server:</p><pre><code class="language-yaml">metrics:
name: "responseCode"
kind: COUNTER
value: INT64
labels:
apiMethod: STRING
responseCode: INT64
</code></pre><p>To actually report metrics at run time a mapping from attributes to a metrics labels must be provided. This is provided in the aspect config; using our above descriptor we might describe the metric as:</p><pre><code class="language-yaml">metric:
descriptor: "responseCode" # must match metricDescriptor.name
value: request.count # expression syntax for the attribute named "request.count"
labels:
# either the attribute named 'api.method' or the literal string 'unknown'; must eval to a string
apiMethod: api.method | "unknown"
# either the attribute named 'response.code' or the literal int64 500; must eval to an int64
responseCode: response.code | 500
</code></pre><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. The name of this descriptor. This is used to refer to this descriptor in other contexts.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.displayName"></a><tr><td><code>displayName</code></td><td>string</td><td>Optional. A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.description"></a><tr><td><code>description</code></td><td>string</td><td>Optional. A description of the metric, which should be used as the documentation for the metric.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.kind"></a><tr><td><code>kind</code></td><td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind">MetricKind</a></td><td>Required. Whether the metric records instantaneous values, changes to a value, etc.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.value"></a><tr><td><code>value</code></td><td><a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a></td><td>Required. The type of data this metric records.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.labels"></a><tr><td><code>labels</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td><td>Labels that dimension the data recorded by this metric. The metric definition allows the user to map attribute expressions to actual values for these labels at run time; the result of the evaluation must be of the type described by the kind for each label.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.buckets"></a><tr><td><code>buckets</code></td><td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition">BucketsDefinition</a></td><td>For metrics with a metric kind of DISTRIBUTION, this provides a mechanism for configuring the buckets that will be used to store the aggregated values. This field must be provided for metrics declared to be of type DISTRIBUTION. This field will be ignored for non-distribution metric kinds.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition"></a></p><h3 id="bucketsdefinition">BucketsDefinition</h3><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.linearBuckets"></a><tr><td><code>linearBuckets</code></td><td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear">Linear</a> (oneof )</td><td>The linear buckets.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.exponentialBuckets"></a><tr><td><code>exponentialBuckets</code></td><td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential">Exponential</a> (oneof )</td><td>The exponential buckets.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.explicitBuckets"></a><tr><td><code>explicitBuckets</code></td><td><a href="#istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Explicit">Explicit</a> (oneof )</td><td>The explicit buckets.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Explicit"></a></p><h3 id="explicit">Explicit</h3><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><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Explicit.bounds"></a><tr><td><code>bounds[]</code></td><td>repeated double</td><td>The values must be monotonically increasing.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential"></a></p><h3 id="exponential">Exponential</h3><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>numFiniteBuckets + 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 * (growthFactor ^ i)</code></li><li>Lower bound (1 &lt;= i &lt; N): <code>scale * (growthFactor ^ (i - 1))</code></li></ul><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.numFiniteBuckets"></a><tr><td><code>numFiniteBuckets</code></td><td>int32</td><td>Must be greater than 0.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.growthFactor"></a><tr><td><code>growthFactor</code></td><td>double</td><td>Must be greater than 1.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Exponential.scale"></a><tr><td><code>scale</code></td><td>double</td><td>Must be greater than 0.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear"></a></p><h3 id="linear">Linear</h3><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>numFiniteBuckets + 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><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear.numFiniteBuckets"></a><tr><td><code>numFiniteBuckets</code></td><td>int32</td><td>Must be greater than 0.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear.width"></a><tr><td><code>width</code></td><td>double</td><td>Must be greater than 0.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.BucketsDefinition.Linear.offset"></a><tr><td><code>offset</code></td><td>double</td><td>Lower bound of the first bucket.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind"></a></p><h3 id="metrickind">MetricKind</h3><p>The kind of measurement. It describes how the data is recorded.</p><table><tr><th>Value</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.METRICKINDUNSPECIFIED"></a><tr><td>METRICKINDUNSPECIFIED</td><td>Do not use this default value.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.GAUGE"></a><tr><td>GAUGE</td><td>An instantaneous measurement of a value. For example, the number of VMs.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.COUNTER"></a><tr><td>COUNTER</td><td>A count of occurrences over an interval, always a positive integer. For example, the number of API requests.</td></tr><a name="istio.mixer.v1.config.descriptor.MetricDescriptor.MetricKind.DISTRIBUTION"></a><tr><td>DISTRIBUTION</td><td><p>Summary statistics for a population of values. At the moment, only histograms representing the distribution of those values across a set of buckets are supported (configured via the buckets field).</p><p>Values for DISTRIBUTIONs will be reported in singular form. It will be up to Mixer adapters and backend systems to transform single reported values into the distribution form as needed (and as supported).</p></td></tr></table><p><a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor"></a></p><h3 id="monitoredresourcedescriptor">MonitoredResourceDescriptor</h3><p>An object that describes the schema of a <code>MonitoredResource</code>. A <code>MonitoredResource</code> is used to define a type of resources for monitoring purpose. For example, the monitored resource “VM” refers to virtual machines, which requires 3 attributes “owner”, “zone”, “name” to uniquely identify a specific instance. When reporting a metric against a monitored resource, the metric attributes will be used to associate the right value with the right instance, such as memory usage of a VM.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. The name of this descriptor.</td></tr><a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.description"></a><tr><td><code>description</code></td><td>string</td><td>Optional. A detailed description of the monitored resource descriptor that might be used in documentation.</td></tr><a name="istio.mixer.v1.config.descriptor.MonitoredResourceDescriptor.labels"></a><tr><td><code>labels</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td><td>Labels represent the dimensions that uniquely identify this monitored resource. At runtime expressions will be evaluated to provide values for each label. Label names are mapped to expressions as part of aspect configuration.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor"></a></p><h3 id="principaldescriptor">PrincipalDescriptor</h3><p>Defines a a security principal.</p><p>A principal is described by a set of attributes.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. The name of this descriptor.</td></tr><a name="istio.mixer.v1.config.descriptor.PrincipalDescriptor.labels"></a><tr><td><code>labels</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td><td>Labels represent the dimensions that uniquely identify this security principal. At runtime expressions will be evaluated to provide values for each label. Label names are mapped to expressions as part of aspect configuration.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor"></a></p><h3 id="quotadescriptor">QuotaDescriptor</h3><p>Configuration state for a particular quota.</p><p>Quotas are similar to metrics, except that they are mutated through method calls and there are limits on the allowed values. The descriptor below lets you define a quota and indicate the maximum amount values of this quota are allowed to hold.</p><p>A given quota is described by a set of attributes. These attributes represent the different dimensions to associate with the quota. A given quota holds a unique value for potentially any combination of these attributes.</p><table><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.name"></a><tr><td><code>name</code></td><td>string</td><td>Required. The name of this descriptor.</td></tr><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.displayName"></a><tr><td><code>displayName</code></td><td>string</td><td>Optional. A concise name for the quota which can be displayed in user interfaces.</td></tr><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.description"></a><tr><td><code>description</code></td><td>string</td><td>Optional. A description of the quota which can be used in documentation.</td></tr><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.labels"></a><tr><td><code>labels</code></td><td>repeated map&lt;string, <a href="#istio.mixer.v1.config.descriptor.ValueType">ValueType</a>&gt;</td><td>The set of labels that are necessary to describe a specific value cell for a quota of this type.</td></tr><a name="istio.mixer.v1.config.descriptor.QuotaDescriptor.rateLimit"></a><tr><td><code>rateLimit</code></td><td>bool</td><td>Indicates whether the quota represents a rate limit or represents a resource quota.</td></tr></table><p><a name="istio.mixer.v1.config.descriptor.ValueType"></a></p><h3 id="valuetype">ValueType</h3><p>ValueType describes the types that values in the Istio system can take. These are used to describe the type of Attributes at run time, describe the type of the result of evaluating an expression, and to describe the runtime type of fields of other descriptors.</p><table><tr><th>Value</th><th>Description</th></tr><a name="istio.mixer.v1.config.descriptor.ValueType.VALUETYPEUNSPECIFIED"></a><tr><td>VALUETYPEUNSPECIFIED</td><td>Invalid, default value.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.STRING"></a><tr><td>STRING</td><td>An undiscriminated variable-length string.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.INT64"></a><tr><td>INT64</td><td>An undiscriminated 64-bit signed integer.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.DOUBLE"></a><tr><td>DOUBLE</td><td>An undiscriminated 64-bit floating-point value.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.BOOL"></a><tr><td>BOOL</td><td>An undiscriminated boolean value.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.TIMESTAMP"></a><tr><td>TIMESTAMP</td><td>A point in time.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.IPADDRESS"></a><tr><td>IPADDRESS</td><td>An IP address.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.EMAILADDRESS"></a><tr><td>EMAILADDRESS</td><td>An email address.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.URI"></a><tr><td>URI</td><td>A URI.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.DNSNAME"></a><tr><td>DNSNAME</td><td>A DNS name.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.DURATION"></a><tr><td>DURATION</td><td>A span between two points in time.</td></tr><a name="istio.mixer.v1.config.descriptor.ValueType.STRINGMAP"></a><tr><td>STRINGMAP</td><td>A map string -&gt; string, typically used by headers.</td></tr></table></div></div></div></div></div></div><script src="/v0.1/js/sidemenu.js"></script><footer><div class="container"><div class="row"><div class="col-md-2"></div><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Docs</p><li><a href="/v0.1/docs/">Welcome</a></li><li><a href="/v0.1/docs/concepts">Concepts</a></li><li><a href="/v0.1/docs/tasks">Tasks</a></li><li><a href="/v0.1/docs/samples">Samples</a></li><li><a href="/v0.1/docs/reference">Reference</a></li></ul></div><hr class="footer-sections" /><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Resources</p><li><a href="/v0.1/faq">Frequently Asked Questions</a></li><li><a href="/v0.1/troubleshooting">Troubleshooting Guide</a></li><li><a href="/v0.1/bugs">Report a Bug</a></li><li><a href="https://github.com/istio/istio.github.io/issues/new?title=Issue with _docs/reference/config/mixer/mixer-config.md">Report a Doc Issue</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/reference/config/mixer/mixer-config.md">Edit This Page on GitHub</a></li></ul></div><hr class="footer-sections" /><div class="col-md-3 col-sm-4 col-xs-12 center-block"><ul class="toggle"><p class="header">Community</p><li><a href="https://groups.google.com/forum/#!forum/istio-users" target="_blank"><span class="group">User</span></a> | <a href="https://groups.google.com/forum/#!forum/istio-dev" target="_blank">Dev Mailing Lists</a></li><li><a href="https://twitter.com/IstioMesh" target="_blank"><span class="twitter">Twitter</span></a></li><li><a href="https://github.com/istio/istio" target="_blank"><span class="github">GitHub</span></a></li></ul></div><div class="col-md-1"></div></div><div class="row"><p class="description small text-center"> Copyright &copy; 2017 Istio Authors<br> Istio 0.1<br> Archived on 20-Jul-2017</p></div></div></footer><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> <script src="/v0.1/js/jquery.form.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <script src="/v0.1/js/slick.min.js"></script> <script src="/v0.1/js/jquery.visible.min.js"></script> <script src="/v0.1/js/common.js" type="text/javascript" charset="utf-8"></script> <script src="/v0.1/js/buttons.js"></script> <script src="/v0.1/js/search.js"></script> <script src="/v0.1/js/prism.js"></script></body></html>