istio.io/archive/v0.1/docs/reference/api/mixer/status.html

2 lines
21 KiB
HTML

<!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="Status RPC"><meta name="og:title" content="Status RPC"><meta name="og:image" content="/v0.1/img/logo.png"/><meta name="description" content="Google's rpc.Status proto"><meta name="og:description" content="Google's rpc.Status proto"><title>Istioldie 0.1 / Status RPC</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>Status RPC</h1><h3 id="status">Status</h3><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><p><a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection"></a></p><h4 id="overview">Overview</h4><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 <code>google.rpc.Code</code>, 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><p><a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection_1"></a></p><h4 id="language-mapping">Language mapping</h4><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><p><a name="rpcGoogle.rpcGoogle.rpc.StatusDescriptionSubsection_2"></a></p><h4 id="other-uses">Other uses</h4><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><tr><th>Field</th><th>Type</th><th>Description</th></tr><a name="google.rpc.Status.code"></a><tr><td><code>code</code></td><td>int32</td><td>The status code, which should be an enum value of `google.rpc.Code`.</td></tr><a name="google.rpc.Status.message"></a><tr><td><code>message</code></td><td>string</td><td>A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the <a href="#google.rpc.Status.details">google.rpc.Status.details</a> field, or localized by the client.</td></tr><a name="google.rpc.Status.details"></a><tr><td><code>details[]</code></td><td>repeated <a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#any">Any</a></td><td>A list of messages that carry the error details. There will be a common set of message types for APIs to use.</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/api/mixer/status.md">Report a Doc Issue</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/reference/api/mixer/status.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>