mirror of https://github.com/istio/istio.io.git
356 lines
8.4 KiB
HTML
356 lines
8.4 KiB
HTML
---
|
|
WARNING: THIS IS AN AUTO-GENERATED FILE, DO NOT EDIT. PLEASE MODIFY THE ORIGINAL SOURCE IN THE 'https://github.com/istio/api' REPO
|
|
source_repo: https://github.com/istio/api
|
|
title: Analysis Messages
|
|
description: Describes the structure of messages generated by Istio analyzers.
|
|
location: https://istio.io/docs/reference/config/istio.analysis.v1alpha1.html
|
|
layout: protoc-gen-docs
|
|
generator: protoc-gen-docs
|
|
weight: 20
|
|
number_of_entries: 7
|
|
---
|
|
<p>Describes the structure of messages generated by Istio analyzers.</p>
|
|
|
|
<h2 id="AnalysisMessageBase">AnalysisMessageBase</h2>
|
|
<section>
|
|
<p>AnalysisMessageBase describes some common information that is needed for all
|
|
messages. All information should be static with respect to the error code.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="AnalysisMessageBase-type">
|
|
<td><code>type</code></td>
|
|
<td><code><a href="#AnalysisMessageBase-Type">Type</a></code></td>
|
|
<td>
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-level">
|
|
<td><code>level</code></td>
|
|
<td><code><a href="#AnalysisMessageBase-Level">Level</a></code></td>
|
|
<td>
|
|
<p>Represents how severe a message is. Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-documentation_url">
|
|
<td><code>documentationUrl</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>A url pointing to the Istio documentation for this specific error type.
|
|
Should be of the form
|
|
<code>^http(s)?://(preliminary\.)?istio.io/docs/reference/config/analysis/</code>
|
|
Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="AnalysisMessageWeakSchema">AnalysisMessageWeakSchema</h2>
|
|
<section>
|
|
<p>AnalysisMessageWeakSchema is the set of information that’s needed to define a
|
|
weakly-typed schema. The purpose of this proto is to provide a mechanism for
|
|
validating istio/istio/galley/pkg/config/analysis/msg/messages.yaml to make
|
|
sure that we don’t allow committing underspecified types.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="AnalysisMessageWeakSchema-message_base">
|
|
<td><code>messageBase</code></td>
|
|
<td><code><a href="#AnalysisMessageBase">AnalysisMessageBase</a></code></td>
|
|
<td>
|
|
<p>Required</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageWeakSchema-description">
|
|
<td><code>description</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>A human readable description of what the error means. Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageWeakSchema-template">
|
|
<td><code>template</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>A go-style template string (<a href="https://golang.org/pkg/fmt/#hdr-Printing">https://golang.org/pkg/fmt/#hdr-Printing</a>)
|
|
defining how to combine the args for a particular message into a log line.
|
|
Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageWeakSchema-args">
|
|
<td><code>args</code></td>
|
|
<td><code><a href="#AnalysisMessageWeakSchema-ArgType">ArgType[]</a></code></td>
|
|
<td>
|
|
<p>A description of the arguments for a particular message type</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="GenericAnalysisMessage">GenericAnalysisMessage</h2>
|
|
<section>
|
|
<p>GenericAnalysisMessage is an instance of an AnalysisMessage defined by a
|
|
schema, whose metaschema is AnalysisMessageWeakSchema. (Names are hard.) Code
|
|
should be able to perform validation of arguments as needed by using the
|
|
message type information to look at the AnalysisMessageWeakSchema and examine the
|
|
list of args at runtime. Developers can also create stronger-typed versions
|
|
of GenericAnalysisMessage for well-known and stable message types.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="GenericAnalysisMessage-message_base">
|
|
<td><code>messageBase</code></td>
|
|
<td><code><a href="#AnalysisMessageBase">AnalysisMessageBase</a></code></td>
|
|
<td>
|
|
<p>Required</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="GenericAnalysisMessage-args">
|
|
<td><code>args</code></td>
|
|
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct">Struct</a></code></td>
|
|
<td>
|
|
<p>Any message-type specific arguments that need to get codified. Optional.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="GenericAnalysisMessage-resource_paths">
|
|
<td><code>resourcePaths</code></td>
|
|
<td><code>string[]</code></td>
|
|
<td>
|
|
<p>A list of strings specifying the resource identifiers that were the cause
|
|
of message generation. A “path” here is a (NAMESPACE/)?RESOURCETYPE/NAME
|
|
tuple that uniquely identifies a particular resource. There doesn’t seem to
|
|
be a single concept for this, but this is intuitively taken from
|
|
<a href="https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology">https://kubernetes.io/docs/reference/using-api/api-concepts/#standard-api-terminology</a>
|
|
At least one is required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="InternalErrorAnalysisMessage">InternalErrorAnalysisMessage</h2>
|
|
<section>
|
|
<p>InternalErrorAnalysisMessage is a strongly-typed message representing some
|
|
error in Istio code that prevented us from performing analysis at all.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="InternalErrorAnalysisMessage-message_base">
|
|
<td><code>messageBase</code></td>
|
|
<td><code><a href="#AnalysisMessageBase">AnalysisMessageBase</a></code></td>
|
|
<td>
|
|
<p>Required</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="InternalErrorAnalysisMessage-detail">
|
|
<td><code>detail</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Any detail regarding specifics of the error. Should be human-readable.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="AnalysisMessageBase-Type">AnalysisMessageBase.Type</h2>
|
|
<section>
|
|
<p>A unique identifier for the type of message. Name is intended to be
|
|
human-readable, code is intended to be machine readable. There should be a
|
|
one-to-one mapping between name and code. (i.e. do not re-use names or
|
|
codes between message types.)</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="AnalysisMessageBase-Type-name">
|
|
<td><code>name</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>A human-readable name for the message type. e.g. “InternalError”,
|
|
“PodMissingProxy”. This should be the same for all messages of the same type.
|
|
Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-Type-code">
|
|
<td><code>code</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>A 7 character code matching <code>^IST[0-9]{4}$</code> intended to uniquely identify
|
|
the message type. (e.g. “IST0001” is mapped to the “InternalError” message
|
|
type.) 0000-0100 are reserved. Required.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="AnalysisMessageWeakSchema-ArgType">AnalysisMessageWeakSchema.ArgType</h2>
|
|
<section>
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Required</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="AnalysisMessageWeakSchema-ArgType-name">
|
|
<td><code>name</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Required</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageWeakSchema-ArgType-go_type">
|
|
<td><code>goType</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Required. Should be a golang type, used in code generation.
|
|
Ideally this will change to a less language-pinned type before this gets
|
|
out of alpha, but for compatibility with current istio/istio code it’s
|
|
go_type for now.</p>
|
|
|
|
</td>
|
|
<td>
|
|
No
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="AnalysisMessageBase-Level">AnalysisMessageBase.Level</h2>
|
|
<section>
|
|
<p>The values here are chosen so that more severe messages get sorted higher,
|
|
as well as leaving space in between to add more later</p>
|
|
|
|
<table class="enum-values">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="AnalysisMessageBase-Level-UNKNOWN">
|
|
<td><code>UNKNOWN</code></td>
|
|
<td>
|
|
<p>invalid, but included for proto compatibility for 0 values</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-Level-ERROR">
|
|
<td><code>ERROR</code></td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-Level-WARNING">
|
|
<td><code>WARNING</code></td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
<tr id="AnalysisMessageBase-Level-INFO">
|
|
<td><code>INFO</code></td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|