mirror of https://github.com/istio/api.git
Add initial Telemetry API with Tracing support for sampling and custom tags (#1740)
* Add initial Telemetry API definition * fix names and comments * Rename TracingConfig to Tracing * Remove TelemetryProviders and consolidate to just Tracing providers * add new extension providers to oneof * Remove providers from telemetry API * Add release note * Address comments * Add back providers, remove match, simplify Trace API * Collapse TracingRule into Tracing and remove deprecations in ProxyConfig * Move from address to service + port in providers * Remove exclude_mesh_tags * Revert to boolean control of span reporting * Cleanup documentation * Replace subdomain with telemetry type
This commit is contained in:
parent
ec7ef4cd6e
commit
68cba41b5a
3
gen.sh
3
gen.sh
|
|
@ -23,7 +23,8 @@ buf generate \
|
|||
--path type \
|
||||
--path analysis \
|
||||
--path authentication \
|
||||
--path meta
|
||||
--path meta \
|
||||
--path telemetry
|
||||
|
||||
# These folders do not have the full plugins used, as they are not full CRDs.
|
||||
# We pass them a custom configuration to exclude the non-required files
|
||||
|
|
|
|||
|
|
@ -5828,3 +5828,146 @@ spec:
|
|||
status: {}
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
labels:
|
||||
app: istio-pilot
|
||||
chart: istio
|
||||
heritage: Tiller
|
||||
istio: telemetry
|
||||
release: istio
|
||||
name: telemetries.telemetry.istio.io
|
||||
spec:
|
||||
group: telemetry.istio.io
|
||||
names:
|
||||
categories:
|
||||
- istio-io
|
||||
- telemetry-istio-io
|
||||
kind: Telemetry
|
||||
listKind: TelemetryList
|
||||
plural: telemetries
|
||||
shortNames:
|
||||
- telemetry
|
||||
singular: telemetry
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- description: 'CreationTimestamp is a timestamp representing the server time
|
||||
when this object was created. It is not guaranteed to be set in happens-before
|
||||
order across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
|
||||
lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
spec:
|
||||
description: Telemetry defines how the telemetry is generated for workloads
|
||||
within a mesh.
|
||||
properties:
|
||||
selector:
|
||||
description: Optional.
|
||||
properties:
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
format: string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
tracing:
|
||||
description: Optional.
|
||||
items:
|
||||
properties:
|
||||
customTags:
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- not:
|
||||
anyOf:
|
||||
- required:
|
||||
- literal
|
||||
- required:
|
||||
- environment
|
||||
- required:
|
||||
- header
|
||||
- required:
|
||||
- literal
|
||||
- required:
|
||||
- environment
|
||||
- required:
|
||||
- header
|
||||
properties:
|
||||
environment:
|
||||
description: Environment adds the value of an environment
|
||||
variable to each span.
|
||||
properties:
|
||||
defaultValue:
|
||||
description: Optional.
|
||||
format: string
|
||||
type: string
|
||||
name:
|
||||
description: Name of the environment variable from
|
||||
which to extract the tag value.
|
||||
format: string
|
||||
type: string
|
||||
type: object
|
||||
header:
|
||||
description: RequestHeader adds the value of an header
|
||||
from the request to each span.
|
||||
properties:
|
||||
defaultValue:
|
||||
description: Optional.
|
||||
format: string
|
||||
type: string
|
||||
name:
|
||||
description: Name of the header from which to extract
|
||||
the tag value.
|
||||
format: string
|
||||
type: string
|
||||
type: object
|
||||
literal:
|
||||
description: Literal adds the same, hard-coded value to
|
||||
each span.
|
||||
properties:
|
||||
value:
|
||||
description: The tag value to use.
|
||||
format: string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
description: Optional.
|
||||
type: object
|
||||
disableSpanReporting:
|
||||
description: Controls span reporting.
|
||||
type: boolean
|
||||
providers:
|
||||
description: Optional.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Required.
|
||||
format: string
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
randomSamplingPercentage:
|
||||
format: double
|
||||
type: number
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
|
||||
---
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -473,6 +473,16 @@ message MeshConfig {
|
|||
EnvoyExternalAuthorizationHttpProvider envoy_ext_authz_http = 2;
|
||||
// Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.
|
||||
EnvoyExternalAuthorizationGrpcProvider envoy_ext_authz_grpc = 3;
|
||||
// Configures a tracing provider that uses the Zipkin API.
|
||||
ZipkinTracingProvider zipkin = 4;
|
||||
// Configures a Lightstep tracing provider.
|
||||
LightstepTracingProvider lightstep = 5;
|
||||
// Configures a Datadog tracing provider.
|
||||
DatadogTracingProvider datadog = 6;
|
||||
// Configures a Stackdriver provider.
|
||||
StackdriverProvider stackdriver = 7;
|
||||
// Configures an OpenCensusAgent tracing provider.
|
||||
OpenCensusAgentTracingProvider opencensus = 8;
|
||||
}
|
||||
|
||||
message EnvoyExternalAuthorizationHttpProvider {
|
||||
|
|
@ -544,12 +554,151 @@ message MeshConfig {
|
|||
// The default status is "403" (HTTP Forbidden).
|
||||
string status_on_error = 4;
|
||||
}
|
||||
|
||||
// Defines configuration for a Zipkin tracer.
|
||||
message ZipkinTracingProvider {
|
||||
// REQUIRED. Specifies the service that the Zipkin API.
|
||||
// The format is "[<Namespace>/]<Hostname>". The specification of <Namespace> is required only when it is insufficient
|
||||
// to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
// service defined by the Kubernetes service or ServiceEntry.
|
||||
//
|
||||
// Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com".
|
||||
string service = 1;
|
||||
|
||||
// REQUIRED. Specifies the port of the service.
|
||||
uint32 port = 2;
|
||||
|
||||
// Optional. Controls the overall path length allowed in a reported span.
|
||||
// NOTE: currently only controls max length of the path tag.
|
||||
uint32 max_tag_length = 3;
|
||||
}
|
||||
|
||||
// Defines configuration for a Lightstep tracer.
|
||||
message LightstepTracingProvider {
|
||||
// REQUIRED. Specifies the service for the Lightstep collector.
|
||||
// The format is "[<Namespace>/]<Hostname>". The specification of <Namespace> is required only when it is insufficient
|
||||
// to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
// service defined by the Kubernetes service or ServiceEntry.
|
||||
//
|
||||
// Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com".
|
||||
string service = 1;
|
||||
|
||||
// REQUIRED. Specifies the port of the service.
|
||||
uint32 port = 2;
|
||||
|
||||
// The Lightstep access token.
|
||||
string access_token = 3;
|
||||
|
||||
// Optional. Controls the overall path length allowed in a reported span.
|
||||
// NOTE: currently only controls max length of the path tag.
|
||||
uint32 max_tag_length = 4;
|
||||
}
|
||||
|
||||
// Defines configuration for a Datadog tracer.
|
||||
message DatadogTracingProvider {
|
||||
// REQUIRED. Specifies the service for the Datadog agent.
|
||||
// The format is "[<Namespace>/]<Hostname>". The specification of <Namespace> is required only when it is insufficient
|
||||
// to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
// service defined by the Kubernetes service or ServiceEntry.
|
||||
//
|
||||
// Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com".
|
||||
string service = 1;
|
||||
|
||||
// REQUIRED. Specifies the port of the service.
|
||||
uint32 port = 2;
|
||||
|
||||
// Optional. Controls the overall path length allowed in a reported span.
|
||||
// NOTE: currently only controls max length of the path tag.
|
||||
uint32 max_tag_length = 3;
|
||||
}
|
||||
|
||||
// Defines configuration for Stackdriver.
|
||||
message StackdriverProvider {
|
||||
// debug enables trace output to stdout.
|
||||
// $hide_from_docs
|
||||
bool debug = 1;
|
||||
// The global default max number of attributes per span.
|
||||
// default is 200.
|
||||
// $hide_from_docs
|
||||
google.protobuf.Int64Value max_number_of_attributes = 2;
|
||||
// The global default max number of annotation events per span.
|
||||
// default is 200.
|
||||
// $hide_from_docs
|
||||
google.protobuf.Int64Value max_number_of_annotations = 3;
|
||||
// The global default max number of message events per span.
|
||||
// default is 200.
|
||||
// $hide_from_docs
|
||||
google.protobuf.Int64Value max_number_of_message_events = 4;
|
||||
|
||||
// Optional. Controls the overall path length allowed in a reported span.
|
||||
// NOTE: currently only controls max length of the path tag.
|
||||
uint32 max_tag_length = 5;
|
||||
}
|
||||
|
||||
// Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.
|
||||
message OpenCensusAgentTracingProvider {
|
||||
// REQUIRED. Specifies the service for the OpenCensusAgent.
|
||||
// The format is "[<Namespace>/]<Hostname>". The specification of <Namespace> is required only when it is insufficient
|
||||
// to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
// service defined by the Kubernetes service or ServiceEntry.
|
||||
//
|
||||
// Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com".
|
||||
string service = 1;
|
||||
|
||||
// REQUIRED. Specifies the port of the service.
|
||||
uint32 port = 2;
|
||||
|
||||
// TraceContext selects the context propagation headers used for
|
||||
// distributed tracing.
|
||||
enum TraceContext {
|
||||
// $hide_from_docs
|
||||
// Unspecified context. Should not be used for now, but added to reserve
|
||||
// the 0 enum value if TraceContext is used outside of a repeated field.
|
||||
UNSPECIFIED = 0;
|
||||
// Use W3C Trace Context propagation using the `traceparent` HTTP header.
|
||||
// See the
|
||||
// [Trace Context documentation](https://www.w3.org/TR/trace-context/) for details.
|
||||
W3C_TRACE_CONTEXT = 1;
|
||||
// Use gRPC binary context propagation using the `grpc-trace-bin` http header.
|
||||
GRPC_BIN = 2;
|
||||
// Use Cloud Trace context propagation using the
|
||||
// `X-Cloud-Trace-Context` http header.
|
||||
CLOUD_TRACE_CONTEXT = 3;
|
||||
// Use multi-header B3 context propagation using the `X-B3-TraceId`,
|
||||
// `X-B3-SpanId`, and `X-B3-Sampled` HTTP headers. See
|
||||
// [B3 header propagation README](https://github.com/openzipkin/b3-propagation)
|
||||
// for details.
|
||||
B3 = 4;
|
||||
}
|
||||
|
||||
// Specifies the set of context propagation headers used for distributed
|
||||
// tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified,
|
||||
// the proxy will attempt to read each header for each request and will
|
||||
// write all headers.
|
||||
repeated TraceContext context = 3;
|
||||
|
||||
// Optional. Controls the overall path length allowed in a reported span.
|
||||
// NOTE: currently only controls max length of the path tag.
|
||||
uint32 max_tag_length = 4;
|
||||
}
|
||||
}
|
||||
|
||||
// Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy
|
||||
// can be used with an extension provider to delegate the authorization decision to a custom authorization system.
|
||||
repeated ExtensionProvider extension_providers = 57;
|
||||
|
||||
// Holds the name references to the providers that will be used by default
|
||||
// in other Istio configuration resources if the provider is not specified.
|
||||
message DefaultProviders {
|
||||
// Name of the default provider for tracing. This must match a provider
|
||||
// defined in `extension_providers` that is one of the support tracing
|
||||
// providers.
|
||||
string tracing = 1;
|
||||
}
|
||||
|
||||
// Specifies extension providers to use by default in Istio configuration resources.
|
||||
DefaultProviders default_providers = 60;
|
||||
|
||||
// A list of Kubernetes selectors that specify the set of namespaces that Istio considers when
|
||||
// computing configuration updates for sidecars. This can be used to reduce Istio's computational load
|
||||
// by limiting the number of entities (including services, pods, and endpoints) that are watched and processed.
|
||||
|
|
@ -574,7 +723,7 @@ message MeshConfig {
|
|||
repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector discovery_selectors = 59;
|
||||
|
||||
// $hide_from_docs
|
||||
// Next available field number: 60
|
||||
// Next available field number: 61
|
||||
reserved 1;
|
||||
reserved "mixer_check_server";
|
||||
reserved 2;
|
||||
|
|
|
|||
|
|
@ -198,6 +198,9 @@
|
|||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider"
|
||||
}
|
||||
},
|
||||
"defaultProviders": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.DefaultProviders"
|
||||
},
|
||||
"discoverySelectors": {
|
||||
"description": "A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace with either labels `env: prod` and `region: us-east1`, or with label `app` equal to `cassandra` or `spark`. ```yaml discoverySelectors: - matchLabels: env: prod region: us-east1 - matchExpressions: - key: app operator: In values: - cassandra - spark ``` Refer to the [kubernetes selector docs](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for additional detail on selector semantics.",
|
||||
"type": "array",
|
||||
|
|
@ -227,6 +230,9 @@
|
|||
"description": "ProxyConfig defines variables for individual Envoy instances.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"tracing": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing"
|
||||
},
|
||||
"configPath": {
|
||||
"description": "Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.",
|
||||
"type": "string",
|
||||
|
|
@ -311,9 +317,6 @@
|
|||
"interceptionMode": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.ProxyConfig.InboundInterceptionMode"
|
||||
},
|
||||
"tracing": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.Tracing"
|
||||
},
|
||||
"sds": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.SDS"
|
||||
},
|
||||
|
|
@ -577,6 +580,56 @@
|
|||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"zipkin"
|
||||
],
|
||||
"properties": {
|
||||
"zipkin": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"lightstep"
|
||||
],
|
||||
"properties": {
|
||||
"lightstep": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"datadog"
|
||||
],
|
||||
"properties": {
|
||||
"datadog": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"stackdriver"
|
||||
],
|
||||
"properties": {
|
||||
"stackdriver": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"opencensus"
|
||||
],
|
||||
"properties": {
|
||||
"opencensus": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -600,9 +653,70 @@
|
|||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"zipkin"
|
||||
],
|
||||
"properties": {
|
||||
"zipkin": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"lightstep"
|
||||
],
|
||||
"properties": {
|
||||
"lightstep": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"datadog"
|
||||
],
|
||||
"properties": {
|
||||
"datadog": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"stackdriver"
|
||||
],
|
||||
"properties": {
|
||||
"stackdriver": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"opencensus"
|
||||
],
|
||||
"properties": {
|
||||
"opencensus": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.DefaultProviders": {
|
||||
"description": "Holds the name references to the providers that will be used by default in other Istio configuration resources if the provider is not specified.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"tracing": {
|
||||
"description": "Name of the default provider for tracing. This must match a provider defined in `extension_providers` that is one of the support tracing providers.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.AuthPolicy": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
|
|
@ -702,6 +816,134 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.ZipkinTracingProvider": {
|
||||
"description": "Defines configuration for a Zipkin tracer.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {
|
||||
"description": "REQUIRED. Specifies the port of the service.",
|
||||
"type": "integer"
|
||||
},
|
||||
"service": {
|
||||
"description": "REQUIRED. Specifies the service that the Zipkin API. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
},
|
||||
"maxTagLength": {
|
||||
"description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.LightstepTracingProvider": {
|
||||
"description": "Defines configuration for a Lightstep tracer.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {
|
||||
"description": "REQUIRED. Specifies the port of the service.",
|
||||
"type": "integer"
|
||||
},
|
||||
"service": {
|
||||
"description": "REQUIRED. Specifies the service for the Lightstep collector. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
},
|
||||
"maxTagLength": {
|
||||
"description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.",
|
||||
"type": "integer"
|
||||
},
|
||||
"accessToken": {
|
||||
"description": "The Lightstep access token.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.DatadogTracingProvider": {
|
||||
"description": "Defines configuration for a Datadog tracer.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {
|
||||
"description": "REQUIRED. Specifies the port of the service.",
|
||||
"type": "integer"
|
||||
},
|
||||
"service": {
|
||||
"description": "REQUIRED. Specifies the service for the Datadog agent. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
},
|
||||
"maxTagLength": {
|
||||
"description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.StackdriverProvider": {
|
||||
"description": "Defines configuration for Stackdriver.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"maxTagLength": {
|
||||
"description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.",
|
||||
"type": "integer"
|
||||
},
|
||||
"debug": {
|
||||
"description": "debug enables trace output to stdout. $hide_from_docs",
|
||||
"type": "boolean"
|
||||
},
|
||||
"maxNumberOfAttributes": {
|
||||
"description": "The global default max number of attributes per span. default is 200. $hide_from_docs",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"maxNumberOfAnnotations": {
|
||||
"description": "The global default max number of annotation events per span. default is 200. $hide_from_docs",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"maxNumberOfMessageEvents": {
|
||||
"description": "The global default max number of message events per span. default is 200. $hide_from_docs",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider": {
|
||||
"description": "Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {
|
||||
"description": "REQUIRED. Specifies the port of the service.",
|
||||
"type": "integer"
|
||||
},
|
||||
"service": {
|
||||
"description": "REQUIRED. Specifies the service for the OpenCensusAgent. The format is \"[\u003cNamespace\u003e/]\u003cHostname\u003e\". The specification of \u003cNamespace\u003e is required only when it is insufficient to unambiguously resolve a service in the service registry. The \u003cHostname\u003e is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.",
|
||||
"type": "string",
|
||||
"format": "string"
|
||||
},
|
||||
"context": {
|
||||
"description": "Specifies the set of context propagation headers used for distributed tracing. Default is `[\"W3C_TRACE_CONTEXT\"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext"
|
||||
}
|
||||
},
|
||||
"maxTagLength": {
|
||||
"description": "Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"istio.mesh.v1alpha1.MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext": {
|
||||
"description": "TraceContext selects the context propagation headers used for distributed tracing.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"UNSPECIFIED",
|
||||
"W3C_TRACE_CONTEXT",
|
||||
"GRPC_BIN",
|
||||
"CLOUD_TRACE_CONTEXT",
|
||||
"B3"
|
||||
]
|
||||
},
|
||||
"istio.mesh.v1alpha1.Resource": {
|
||||
"description": "Resource describes the source of configuration",
|
||||
"type": "string",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
|
|||
layout: protoc-gen-docs
|
||||
generator: protoc-gen-docs
|
||||
weight: 20
|
||||
number_of_entries: 34
|
||||
number_of_entries: 41
|
||||
---
|
||||
<p>Configuration affecting the service mesh as a whole.</p>
|
||||
|
||||
|
|
@ -592,6 +592,17 @@ No
|
|||
<p>Defines a list of extension providers that extend Istio’s functionality. For example, the AuthorizationPolicy
|
||||
can be used with an extension provider to delegate the authorization decision to a custom authorization system.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-default_providers">
|
||||
<td><code>defaultProviders</code></td>
|
||||
<td><code><a href="#MeshConfig-DefaultProviders">DefaultProviders</a></code></td>
|
||||
<td>
|
||||
<p>Specifies extension providers to use by default in Istio configuration resources.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
|
|
@ -961,6 +972,92 @@ No
|
|||
<td>
|
||||
<p>Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-zipkin" class="oneof">
|
||||
<td><code>zipkin</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-ZipkinTracingProvider">ZipkinTracingProvider (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Configures a tracing provider that uses the Zipkin API.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-lightstep" class="oneof">
|
||||
<td><code>lightstep</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-LightstepTracingProvider">LightstepTracingProvider (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Configures a Lightstep tracing provider.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-datadog" class="oneof">
|
||||
<td><code>datadog</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-DatadogTracingProvider">DatadogTracingProvider (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Configures a Datadog tracing provider.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-stackdriver" class="oneof">
|
||||
<td><code>stackdriver</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-StackdriverProvider">StackdriverProvider (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Configures a Stackdriver provider.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-opencensus" class="oneof">
|
||||
<td><code>opencensus</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider">OpenCensusAgentTracingProvider (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Configures an OpenCensusAgent tracing provider.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-DefaultProviders">MeshConfig.DefaultProviders</h2>
|
||||
<section>
|
||||
<p>Holds the name references to the providers that will be used by default
|
||||
in other Istio configuration resources if the provider is not specified.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-DefaultProviders-tracing">
|
||||
<td><code>tracing</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Name of the default provider for tracing. This must match a provider
|
||||
defined in <code>extension_providers</code> that is one of the support tracing
|
||||
providers.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
|
|
@ -1199,6 +1296,284 @@ No
|
|||
<p>Sets the HTTP status that is returned to the client when there is a network error to the authorization service.
|
||||
The default status is “403” (HTTP Forbidden).</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-ZipkinTracingProvider">MeshConfig.ExtensionProvider.ZipkinTracingProvider</h2>
|
||||
<section>
|
||||
<p>Defines configuration for a Zipkin tracer.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-service">
|
||||
<td><code>service</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the service that the Zipkin API.
|
||||
The format is “[<Namespace>/]<Hostname>”. The specification of <Namespace> is required only when it is insufficient
|
||||
to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
service defined by the Kubernetes service or ServiceEntry.</p>
|
||||
|
||||
<p>Example: “zipkin.default.svc.cluster.local” or “bar/zipkin.example.com”.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-port">
|
||||
<td><code>port</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the port of the service.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-ZipkinTracingProvider-max_tag_length">
|
||||
<td><code>maxTagLength</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>Optional. Controls the overall path length allowed in a reported span.
|
||||
NOTE: currently only controls max length of the path tag.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-LightstepTracingProvider">MeshConfig.ExtensionProvider.LightstepTracingProvider</h2>
|
||||
<section>
|
||||
<p>Defines configuration for a Lightstep tracer.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-LightstepTracingProvider-service">
|
||||
<td><code>service</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the service for the Lightstep collector.
|
||||
The format is “[<Namespace>/]<Hostname>”. The specification of <Namespace> is required only when it is insufficient
|
||||
to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
service defined by the Kubernetes service or ServiceEntry.</p>
|
||||
|
||||
<p>Example: “lightstep.default.svc.cluster.local” or “bar/lightstep.example.com”.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-LightstepTracingProvider-port">
|
||||
<td><code>port</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the port of the service.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-LightstepTracingProvider-access_token">
|
||||
<td><code>accessToken</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>The Lightstep access token.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-LightstepTracingProvider-max_tag_length">
|
||||
<td><code>maxTagLength</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>Optional. Controls the overall path length allowed in a reported span.
|
||||
NOTE: currently only controls max length of the path tag.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-DatadogTracingProvider">MeshConfig.ExtensionProvider.DatadogTracingProvider</h2>
|
||||
<section>
|
||||
<p>Defines configuration for a Datadog tracer.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-DatadogTracingProvider-service">
|
||||
<td><code>service</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the service for the Datadog agent.
|
||||
The format is “[<Namespace>/]<Hostname>”. The specification of <Namespace> is required only when it is insufficient
|
||||
to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
service defined by the Kubernetes service or ServiceEntry.</p>
|
||||
|
||||
<p>Example: “datadog.default.svc.cluster.local” or “bar/datadog.example.com”.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-DatadogTracingProvider-port">
|
||||
<td><code>port</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the port of the service.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-DatadogTracingProvider-max_tag_length">
|
||||
<td><code>maxTagLength</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>Optional. Controls the overall path length allowed in a reported span.
|
||||
NOTE: currently only controls max length of the path tag.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-StackdriverProvider">MeshConfig.ExtensionProvider.StackdriverProvider</h2>
|
||||
<section>
|
||||
<p>Defines configuration for Stackdriver.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-StackdriverProvider-max_tag_length">
|
||||
<td><code>maxTagLength</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>Optional. Controls the overall path length allowed in a reported span.
|
||||
NOTE: currently only controls max length of the path tag.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider">MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider</h2>
|
||||
<section>
|
||||
<p>Defines configuration for an OpenCensus tracer writing to an OpenCensus backend.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-service">
|
||||
<td><code>service</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the service for the OpenCensusAgent.
|
||||
The format is “[<Namespace>/]<Hostname>”. The specification of <Namespace> is required only when it is insufficient
|
||||
to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a
|
||||
service defined by the Kubernetes service or ServiceEntry.</p>
|
||||
|
||||
<p>Example: “ocagent.default.svc.cluster.local” or “bar/ocagent.example.com”.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-port">
|
||||
<td><code>port</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>REQUIRED. Specifies the port of the service.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-context">
|
||||
<td><code>context</code></td>
|
||||
<td><code><a href="#MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext">TraceContext[]</a></code></td>
|
||||
<td>
|
||||
<p>Specifies the set of context propagation headers used for distributed
|
||||
tracing. Default is <code>["W3C_TRACE_CONTEXT"]</code>. If multiple values are specified,
|
||||
the proxy will attempt to read each header for each request and will
|
||||
write all headers.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-max_tag_length">
|
||||
<td><code>maxTagLength</code></td>
|
||||
<td><code>uint32</code></td>
|
||||
<td>
|
||||
<p>Optional. Controls the overall path length allowed in a reported span.
|
||||
NOTE: currently only controls max length of the path tag.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
|
|
@ -2308,6 +2683,56 @@ service registry as well as those defined through ServiceEntries</p>
|
|||
<p>outbound traffic to unknown destinations will be allowed, in case
|
||||
there are no services or ServiceEntries for the destination port</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext">MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext</h2>
|
||||
<section>
|
||||
<p>TraceContext selects the context propagation headers used for
|
||||
distributed tracing.</p>
|
||||
|
||||
<table class="enum-values">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext-W3C_TRACE_CONTEXT">
|
||||
<td><code>W3C_TRACE_CONTEXT</code></td>
|
||||
<td>
|
||||
<p>Use W3C Trace Context propagation using the <code>traceparent</code> HTTP header.
|
||||
See the
|
||||
<a href="https://www.w3.org/TR/trace-context/">Trace Context documentation</a> for details.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext-GRPC_BIN">
|
||||
<td><code>GRPC_BIN</code></td>
|
||||
<td>
|
||||
<p>Use gRPC binary context propagation using the <code>grpc-trace-bin</code> http header.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext-CLOUD_TRACE_CONTEXT">
|
||||
<td><code>CLOUD_TRACE_CONTEXT</code></td>
|
||||
<td>
|
||||
<p>Use Cloud Trace context propagation using the
|
||||
<code>X-Cloud-Trace-Context</code> http header.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="MeshConfig-ExtensionProvider-OpenCensusAgentTracingProvider-TraceContext-B3">
|
||||
<td><code>B3</code></td>
|
||||
<td>
|
||||
<p>Use multi-header B3 context propagation using the <code>X-B3-TraceId</code>,
|
||||
<code>X-B3-SpanId</code>, and <code>X-B3-Sampled</code> HTTP headers. See
|
||||
<a href="https://github.com/openzipkin/b3-propagation">B3 header propagation README</a>
|
||||
for details.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,430 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: telemetry/v1alpha1/telemetry.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from type.v1beta1 import selector_pb2 as type_dot_v1beta1_dot_selector__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='telemetry/v1alpha1/telemetry.proto',
|
||||
package='istio.telemetry.v1alpha1',
|
||||
syntax='proto3',
|
||||
serialized_options=_b('Z\037istio.io/api/telemetry/v1alpha1'),
|
||||
serialized_pb=_b('\n\"telemetry/v1alpha1/telemetry.proto\x12\x18istio.telemetry.v1alpha1\x1a\x1btype/v1beta1/selector.proto\"\x8a\x01\n\tTelemetry\x12@\n\x08selector\x18\x01 \x01(\x0b\x32$.istio.type.v1beta1.WorkloadSelectorR\x08selector\x12;\n\x07tracing\x18\x02 \x03(\x0b\x32!.istio.telemetry.v1alpha1.TracingR\x07tracing\"\xb0\x06\n\x07Tracing\x12\x43\n\tproviders\x18\x02 \x03(\x0b\x32%.istio.telemetry.v1alpha1.ProviderRefR\tproviders\x12<\n\x1arandom_sampling_percentage\x18\x03 \x01(\x01R\x18randomSamplingPercentage\x12\x34\n\x16\x64isable_span_reporting\x18\x04 \x01(\x08R\x14\x64isableSpanReporting\x12R\n\x0b\x63ustom_tags\x18\x05 \x03(\x0b\x32\x31.istio.telemetry.v1alpha1.Tracing.CustomTagsEntryR\ncustomTags\x1a\xf8\x01\n\tCustomTag\x12\x45\n\x07literal\x18\x01 \x01(\x0b\x32).istio.telemetry.v1alpha1.Tracing.LiteralH\x00R\x07literal\x12Q\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32-.istio.telemetry.v1alpha1.Tracing.EnvironmentH\x00R\x0b\x65nvironment\x12I\n\x06header\x18\x03 \x01(\x0b\x32/.istio.telemetry.v1alpha1.Tracing.RequestHeaderH\x00R\x06headerB\x06\n\x04type\x1a\x1f\n\x07Literal\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x1a\x46\n\x0b\x45nvironment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aH\n\rRequestHeader\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12#\n\rdefault_value\x18\x02 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x1aj\n\x0f\x43ustomTagsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.istio.telemetry.v1alpha1.Tracing.CustomTagR\x05value:\x02\x38\x01\"!\n\x0bProviderRef\x12\x12\n\x04name\x18\x01 \x01(\tR\x04nameB!Z\x1fistio.io/api/telemetry/v1alpha1b\x06proto3')
|
||||
,
|
||||
dependencies=[type_dot_v1beta1_dot_selector__pb2.DESCRIPTOR,])
|
||||
|
||||
|
||||
|
||||
|
||||
_TELEMETRY = _descriptor.Descriptor(
|
||||
name='Telemetry',
|
||||
full_name='istio.telemetry.v1alpha1.Telemetry',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='selector', full_name='istio.telemetry.v1alpha1.Telemetry.selector', index=0,
|
||||
number=1, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='selector', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='tracing', full_name='istio.telemetry.v1alpha1.Telemetry.tracing', index=1,
|
||||
number=2, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='tracing', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=94,
|
||||
serialized_end=232,
|
||||
)
|
||||
|
||||
|
||||
_TRACING_CUSTOMTAG = _descriptor.Descriptor(
|
||||
name='CustomTag',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing.CustomTag',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='literal', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.literal', index=0,
|
||||
number=1, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='literal', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='environment', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.environment', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='environment', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='header', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.header', index=2,
|
||||
number=3, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='header', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
_descriptor.OneofDescriptor(
|
||||
name='type', full_name='istio.telemetry.v1alpha1.Tracing.CustomTag.type',
|
||||
index=0, containing_type=None, fields=[]),
|
||||
],
|
||||
serialized_start=516,
|
||||
serialized_end=764,
|
||||
)
|
||||
|
||||
_TRACING_LITERAL = _descriptor.Descriptor(
|
||||
name='Literal',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing.Literal',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='value', full_name='istio.telemetry.v1alpha1.Tracing.Literal.value', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='value', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=766,
|
||||
serialized_end=797,
|
||||
)
|
||||
|
||||
_TRACING_ENVIRONMENT = _descriptor.Descriptor(
|
||||
name='Environment',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing.Environment',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='istio.telemetry.v1alpha1.Tracing.Environment.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='name', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='default_value', full_name='istio.telemetry.v1alpha1.Tracing.Environment.default_value', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='defaultValue', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=799,
|
||||
serialized_end=869,
|
||||
)
|
||||
|
||||
_TRACING_REQUESTHEADER = _descriptor.Descriptor(
|
||||
name='RequestHeader',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='name', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='default_value', full_name='istio.telemetry.v1alpha1.Tracing.RequestHeader.default_value', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='defaultValue', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=871,
|
||||
serialized_end=943,
|
||||
)
|
||||
|
||||
_TRACING_CUSTOMTAGSENTRY = _descriptor.Descriptor(
|
||||
name='CustomTagsEntry',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='key', full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry.key', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='key', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='value', full_name='istio.telemetry.v1alpha1.Tracing.CustomTagsEntry.value', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='value', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=_b('8\001'),
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=945,
|
||||
serialized_end=1051,
|
||||
)
|
||||
|
||||
_TRACING = _descriptor.Descriptor(
|
||||
name='Tracing',
|
||||
full_name='istio.telemetry.v1alpha1.Tracing',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='providers', full_name='istio.telemetry.v1alpha1.Tracing.providers', index=0,
|
||||
number=2, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='providers', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='random_sampling_percentage', full_name='istio.telemetry.v1alpha1.Tracing.random_sampling_percentage', index=1,
|
||||
number=3, type=1, cpp_type=5, label=1,
|
||||
has_default_value=False, default_value=float(0),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='randomSamplingPercentage', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='disable_span_reporting', full_name='istio.telemetry.v1alpha1.Tracing.disable_span_reporting', index=2,
|
||||
number=4, type=8, cpp_type=7, label=1,
|
||||
has_default_value=False, default_value=False,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='disableSpanReporting', file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='custom_tags', full_name='istio.telemetry.v1alpha1.Tracing.custom_tags', index=3,
|
||||
number=5, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='customTags', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[_TRACING_CUSTOMTAG, _TRACING_LITERAL, _TRACING_ENVIRONMENT, _TRACING_REQUESTHEADER, _TRACING_CUSTOMTAGSENTRY, ],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=235,
|
||||
serialized_end=1051,
|
||||
)
|
||||
|
||||
|
||||
_PROVIDERREF = _descriptor.Descriptor(
|
||||
name='ProviderRef',
|
||||
full_name='istio.telemetry.v1alpha1.ProviderRef',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='istio.telemetry.v1alpha1.ProviderRef.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
serialized_options=None, json_name='name', file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
serialized_options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=1053,
|
||||
serialized_end=1086,
|
||||
)
|
||||
|
||||
_TELEMETRY.fields_by_name['selector'].message_type = type_dot_v1beta1_dot_selector__pb2._WORKLOADSELECTOR
|
||||
_TELEMETRY.fields_by_name['tracing'].message_type = _TRACING
|
||||
_TRACING_CUSTOMTAG.fields_by_name['literal'].message_type = _TRACING_LITERAL
|
||||
_TRACING_CUSTOMTAG.fields_by_name['environment'].message_type = _TRACING_ENVIRONMENT
|
||||
_TRACING_CUSTOMTAG.fields_by_name['header'].message_type = _TRACING_REQUESTHEADER
|
||||
_TRACING_CUSTOMTAG.containing_type = _TRACING
|
||||
_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append(
|
||||
_TRACING_CUSTOMTAG.fields_by_name['literal'])
|
||||
_TRACING_CUSTOMTAG.fields_by_name['literal'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type']
|
||||
_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append(
|
||||
_TRACING_CUSTOMTAG.fields_by_name['environment'])
|
||||
_TRACING_CUSTOMTAG.fields_by_name['environment'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type']
|
||||
_TRACING_CUSTOMTAG.oneofs_by_name['type'].fields.append(
|
||||
_TRACING_CUSTOMTAG.fields_by_name['header'])
|
||||
_TRACING_CUSTOMTAG.fields_by_name['header'].containing_oneof = _TRACING_CUSTOMTAG.oneofs_by_name['type']
|
||||
_TRACING_LITERAL.containing_type = _TRACING
|
||||
_TRACING_ENVIRONMENT.containing_type = _TRACING
|
||||
_TRACING_REQUESTHEADER.containing_type = _TRACING
|
||||
_TRACING_CUSTOMTAGSENTRY.fields_by_name['value'].message_type = _TRACING_CUSTOMTAG
|
||||
_TRACING_CUSTOMTAGSENTRY.containing_type = _TRACING
|
||||
_TRACING.fields_by_name['providers'].message_type = _PROVIDERREF
|
||||
_TRACING.fields_by_name['custom_tags'].message_type = _TRACING_CUSTOMTAGSENTRY
|
||||
DESCRIPTOR.message_types_by_name['Telemetry'] = _TELEMETRY
|
||||
DESCRIPTOR.message_types_by_name['Tracing'] = _TRACING
|
||||
DESCRIPTOR.message_types_by_name['ProviderRef'] = _PROVIDERREF
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
Telemetry = _reflection.GeneratedProtocolMessageType('Telemetry', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TELEMETRY,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Telemetry)
|
||||
})
|
||||
_sym_db.RegisterMessage(Telemetry)
|
||||
|
||||
Tracing = _reflection.GeneratedProtocolMessageType('Tracing', (_message.Message,), {
|
||||
|
||||
'CustomTag' : _reflection.GeneratedProtocolMessageType('CustomTag', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TRACING_CUSTOMTAG,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.CustomTag)
|
||||
})
|
||||
,
|
||||
|
||||
'Literal' : _reflection.GeneratedProtocolMessageType('Literal', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TRACING_LITERAL,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.Literal)
|
||||
})
|
||||
,
|
||||
|
||||
'Environment' : _reflection.GeneratedProtocolMessageType('Environment', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TRACING_ENVIRONMENT,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.Environment)
|
||||
})
|
||||
,
|
||||
|
||||
'RequestHeader' : _reflection.GeneratedProtocolMessageType('RequestHeader', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TRACING_REQUESTHEADER,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.RequestHeader)
|
||||
})
|
||||
,
|
||||
|
||||
'CustomTagsEntry' : _reflection.GeneratedProtocolMessageType('CustomTagsEntry', (_message.Message,), {
|
||||
'DESCRIPTOR' : _TRACING_CUSTOMTAGSENTRY,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing.CustomTagsEntry)
|
||||
})
|
||||
,
|
||||
'DESCRIPTOR' : _TRACING,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.Tracing)
|
||||
})
|
||||
_sym_db.RegisterMessage(Tracing)
|
||||
_sym_db.RegisterMessage(Tracing.CustomTag)
|
||||
_sym_db.RegisterMessage(Tracing.Literal)
|
||||
_sym_db.RegisterMessage(Tracing.Environment)
|
||||
_sym_db.RegisterMessage(Tracing.RequestHeader)
|
||||
_sym_db.RegisterMessage(Tracing.CustomTagsEntry)
|
||||
|
||||
ProviderRef = _reflection.GeneratedProtocolMessageType('ProviderRef', (_message.Message,), {
|
||||
'DESCRIPTOR' : _PROVIDERREF,
|
||||
'__module__' : 'telemetry.v1alpha1.telemetry_pb2'
|
||||
# @@protoc_insertion_point(class_scope:istio.telemetry.v1alpha1.ProviderRef)
|
||||
})
|
||||
_sym_db.RegisterMessage(ProviderRef)
|
||||
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
_TRACING_CUSTOMTAGSENTRY._options = None
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: release-notes/v2
|
||||
|
||||
kind: feature
|
||||
area: telemetry
|
||||
issue:
|
||||
|
||||
releaseNotes:
|
||||
- |
|
||||
**Added** experimental Telemetry API with support for workload-level specification of tracing behavior.
|
||||
|
||||
# docs is a list of related docs to the change.
|
||||
docs:
|
||||
- https://docs.google.com/document/d/1pTFVzGii7sB4uALMsrUN4ALFc0J7vI2UyBnJpP_bsgU/edit
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,398 @@
|
|||
---
|
||||
title: istio.telemetry.v1alpha1
|
||||
layout: protoc-gen-docs
|
||||
generator: protoc-gen-docs
|
||||
number_of_entries: 7
|
||||
---
|
||||
<h2 id="Telemetry">Telemetry</h2>
|
||||
<section>
|
||||
<p>Telemetry defines how the telemetry is generated for workloads within a mesh.</p>
|
||||
|
||||
<p>For mesh level configuration, put the resource in root configuration namespace for
|
||||
your Istio installation <em>without</em> a workload selector.</p>
|
||||
|
||||
<p>For any namespace, including the root configuration namespace, it is only valid
|
||||
to have a single workload selector-less Telemetry resource.</p>
|
||||
|
||||
<p>For resources with a workload selector, it is only valid to have one resource selecting
|
||||
any given workload.</p>
|
||||
|
||||
<p>Telemetry configuration will be evaluated in order, from most specific matches per telemetry
|
||||
type (tracing, access logging, and metrics) to least specific matches. The first
|
||||
matching configuration for the telemetry type will be applied. The order of evaluation will be:</p>
|
||||
|
||||
<ol>
|
||||
<li>Workload-specific configuration</li>
|
||||
<li>Namespace-specific configuration</li>
|
||||
<li>Root namespace configuration</li>
|
||||
</ol>
|
||||
|
||||
<p>Telemetry configuration does not inherit. Rather, matched configurations must fully-specify
|
||||
the desired behavior. Workload-specific configuration fully replaces any configuration
|
||||
defined at the local and root namespace levels.</p>
|
||||
|
||||
<p>WARNING: Support for Telemetry policies is under active development and is <em>not</em>
|
||||
stable or supported by Istio at this time.</p>
|
||||
|
||||
<p>Examples:</p>
|
||||
|
||||
<p>Policy to enable random sampling for 10% of traffic:</p>
|
||||
|
||||
<pre><code class="language-yaml">apiVersion: telemetry.istio.io/v1alpha1
|
||||
kind: Telemetry
|
||||
metadata:
|
||||
name: mesh-default
|
||||
namespace: istio-system
|
||||
spec:
|
||||
tracing:
|
||||
- randomSamplingPercentage: 10.00
|
||||
</code></pre>
|
||||
|
||||
<p>Policy to disable trace reporting for the “foo” workload (note: tracing
|
||||
context will still be propagated):</p>
|
||||
|
||||
<pre><code class="language-yaml">apiVersion: telemetry.istio.io/v1alpha1
|
||||
kind: Telemetry
|
||||
metadata:
|
||||
name: foo-tracing
|
||||
namespace: bar
|
||||
spec:
|
||||
selector:
|
||||
labels:
|
||||
service.istio.io/canonical-name: foo
|
||||
tracing:
|
||||
- disableSpanReporting: true
|
||||
</code></pre>
|
||||
|
||||
<p>Policy to select the alternate zipkin provider for trace reporting:</p>
|
||||
|
||||
<pre><code class="language-yaml">apiVersion: telemetry.istio.io/v1alpha1
|
||||
kind: Telemetry
|
||||
metadata:
|
||||
name: foo-tracing-alternate
|
||||
namespace: baz
|
||||
spec:
|
||||
selector:
|
||||
labels:
|
||||
service.istio.io/canonical-name: foo
|
||||
tracing:
|
||||
- providers:
|
||||
- name: "zipkin-alternate"
|
||||
randomSamplingPercentage: 10.00
|
||||
</code></pre>
|
||||
|
||||
<p>Policy to add a custom tag from a literal value:</p>
|
||||
|
||||
<pre><code class="language-yaml">apiVersion: telemetry.istio.io/v1alpha1
|
||||
kind: Telemetry
|
||||
metadata:
|
||||
name: mesh-default
|
||||
namespace: istio-system
|
||||
spec:
|
||||
tracing:
|
||||
- randomSamplingPercentage: 10.00
|
||||
customTags:
|
||||
my_new_foo_tag:
|
||||
literal:
|
||||
value: "foo"
|
||||
</code></pre>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="Telemetry-selector">
|
||||
<td><code>selector</code></td>
|
||||
<td><code><a href="https://istio.io/docs/reference/config/type/workload-selector.html#WorkloadSelector">WorkloadSelector</a></code></td>
|
||||
<td>
|
||||
<p>Optional. The selector decides where to apply the Telemetry policy.
|
||||
If not set, the Telemetry policy will be applied to all workloads in the
|
||||
same namespace as the Telemetry policy.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Telemetry-tracing">
|
||||
<td><code>tracing</code></td>
|
||||
<td><code><a href="#Tracing">Tracing[]</a></code></td>
|
||||
<td>
|
||||
<p>Optional. Tracing configures the tracing behavior for all
|
||||
selected workloads.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="Tracing">Tracing</h2>
|
||||
<section>
|
||||
<p>Tracing configures tracing behavior for workloads within a mesh.
|
||||
It can be used to enable/disable tracing, as well as to set sampling
|
||||
rates and custom tag extraction.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="Tracing-providers">
|
||||
<td><code>providers</code></td>
|
||||
<td><code><a href="#ProviderRef">ProviderRef[]</a></code></td>
|
||||
<td>
|
||||
<p>Optional. Name of provider(s) to use for span reporting. If a provider is
|
||||
not specified, the <em>default tracing provider</em>
|
||||
will be used.
|
||||
NOTE: At the moment, only a single provider can be specified in a given
|
||||
Tracing rule.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-random_sampling_percentage">
|
||||
<td><code>randomSamplingPercentage</code></td>
|
||||
<td><code>double</code></td>
|
||||
<td>
|
||||
<p>Controls the rate at which traffic will be selected for tracing if no
|
||||
prior sampling decision has been made. If a prior sampling decision has been
|
||||
made, that decision will be respected. However, if no sampling decision
|
||||
has been made (example: no <code>x-b3-sampled</code> tracing header was present in the
|
||||
requests), the traffic will be selected for telemetry generation at the
|
||||
percentage specified.</p>
|
||||
|
||||
<p>Defaults to 0%. Valid values [0.00-100.00]. Can be specified in 0.01%
|
||||
increments.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-disable_span_reporting">
|
||||
<td><code>disableSpanReporting</code></td>
|
||||
<td><code>bool</code></td>
|
||||
<td>
|
||||
<p>Controls span reporting. If set to true, no spans will be reported for
|
||||
impacted workloads. This does NOT impact context propagation or trace
|
||||
sampling behavior.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-custom_tags">
|
||||
<td><code>customTags</code></td>
|
||||
<td><code>map<string, <a href="#Tracing-CustomTag">CustomTag</a>></code></td>
|
||||
<td>
|
||||
<p>Optional. Configures additional custom tags to the generated trace spans.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="ProviderRef">ProviderRef</h2>
|
||||
<section>
|
||||
<p>Used to bind Telemetry configuration to specific providers for
|
||||
targeted customization.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="ProviderRef-name">
|
||||
<td><code>name</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Required. Name of Telemetry provider in MeshConfig.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="Tracing-CustomTag">Tracing.CustomTag</h2>
|
||||
<section>
|
||||
<p>CustomTag defines a tag to be added to a trace span that is based on
|
||||
an operator-supplied value. This value can either be a hard-coded value,
|
||||
a value taken from an environment variable known to the sidecar proxy, or
|
||||
from a request header.</p>
|
||||
|
||||
<table class="message-fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="Tracing-CustomTag-literal" class="oneof oneof-start">
|
||||
<td><code>literal</code></td>
|
||||
<td><code><a href="#Tracing-Literal">Literal (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Literal adds the same, hard-coded value to each span.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-CustomTag-environment" class="oneof">
|
||||
<td><code>environment</code></td>
|
||||
<td><code><a href="#Tracing-Environment">Environment (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>Environment adds the value of an environment variable to each span.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-CustomTag-header" class="oneof">
|
||||
<td><code>header</code></td>
|
||||
<td><code><a href="#Tracing-RequestHeader">RequestHeader (oneof)</a></code></td>
|
||||
<td>
|
||||
<p>RequestHeader adds the value of an header from the request to each span.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="Tracing-Literal">Tracing.Literal</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="Tracing-Literal-value">
|
||||
<td><code>value</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>The tag value to use.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="Tracing-Environment">Tracing.Environment</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="Tracing-Environment-name">
|
||||
<td><code>name</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Name of the environment variable from which to extract the tag value.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-Environment-default_value">
|
||||
<td><code>defaultValue</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Optional. If the environment variable is not found, this value will be
|
||||
used instead.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<h2 id="Tracing-RequestHeader">Tracing.RequestHeader</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="Tracing-RequestHeader-name">
|
||||
<td><code>name</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Name of the header from which to extract the tag value.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="Tracing-RequestHeader-default_value">
|
||||
<td><code>defaultValue</code></td>
|
||||
<td><code>string</code></td>
|
||||
<td>
|
||||
<p>Optional. If the header is not found, this value will be
|
||||
used instead.</p>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
No
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,225 @@
|
|||
// Copyright Istio Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
import "type/v1beta1/selector.proto";
|
||||
|
||||
option go_package = "istio.io/api/telemetry/v1alpha1";
|
||||
|
||||
package istio.telemetry.v1alpha1;
|
||||
|
||||
// $schema: istio.telemetry.v1alpha1.Telemetry
|
||||
// $title: Telemetry
|
||||
// $description: Telemetry configuration for workloads.
|
||||
// $location: https://istio.io/docs/reference/config/telemetry/telemetry.html
|
||||
// $aliases: [/docs/reference/config/telemetry/v1alpha1/telemetry]
|
||||
|
||||
// Telemetry defines how the telemetry is generated for workloads within a mesh.
|
||||
//
|
||||
// For mesh level configuration, put the resource in root configuration namespace for
|
||||
// your Istio installation *without* a workload selector.
|
||||
//
|
||||
// For any namespace, including the root configuration namespace, it is only valid
|
||||
// to have a single workload selector-less Telemetry resource.
|
||||
//
|
||||
// For resources with a workload selector, it is only valid to have one resource selecting
|
||||
// any given workload.
|
||||
//
|
||||
// Telemetry configuration will be evaluated in order, from most specific matches per telemetry
|
||||
// type (tracing, access logging, and metrics) to least specific matches. The first
|
||||
// matching configuration for the telemetry type will be applied. The order of evaluation will be:
|
||||
//
|
||||
// 1. Workload-specific configuration
|
||||
// 1. Namespace-specific configuration
|
||||
// 1. Root namespace configuration
|
||||
//
|
||||
// Telemetry configuration does not inherit. Rather, matched configurations must fully-specify
|
||||
// the desired behavior. Workload-specific configuration fully replaces any configuration
|
||||
// defined at the local and root namespace levels.
|
||||
//
|
||||
// WARNING: Support for Telemetry policies is under active development and is *not*
|
||||
// stable or supported by Istio at this time.
|
||||
//
|
||||
// Examples:
|
||||
//
|
||||
// Policy to enable random sampling for 10% of traffic:
|
||||
// ```yaml
|
||||
// apiVersion: telemetry.istio.io/v1alpha1
|
||||
// kind: Telemetry
|
||||
// metadata:
|
||||
// name: mesh-default
|
||||
// namespace: istio-system
|
||||
// spec:
|
||||
// tracing:
|
||||
// - randomSamplingPercentage: 10.00
|
||||
// ```
|
||||
//
|
||||
// Policy to disable trace reporting for the "foo" workload (note: tracing
|
||||
// context will still be propagated):
|
||||
// ```yaml
|
||||
// apiVersion: telemetry.istio.io/v1alpha1
|
||||
// kind: Telemetry
|
||||
// metadata:
|
||||
// name: foo-tracing
|
||||
// namespace: bar
|
||||
// spec:
|
||||
// selector:
|
||||
// labels:
|
||||
// service.istio.io/canonical-name: foo
|
||||
// tracing:
|
||||
// - disableSpanReporting: true
|
||||
// ```
|
||||
//
|
||||
// Policy to select the alternate zipkin provider for trace reporting:
|
||||
// ```yaml
|
||||
// apiVersion: telemetry.istio.io/v1alpha1
|
||||
// kind: Telemetry
|
||||
// metadata:
|
||||
// name: foo-tracing-alternate
|
||||
// namespace: baz
|
||||
// spec:
|
||||
// selector:
|
||||
// labels:
|
||||
// service.istio.io/canonical-name: foo
|
||||
// tracing:
|
||||
// - providers:
|
||||
// - name: "zipkin-alternate"
|
||||
// randomSamplingPercentage: 10.00
|
||||
// ```
|
||||
//
|
||||
// Policy to add a custom tag from a literal value:
|
||||
// ```yaml
|
||||
// apiVersion: telemetry.istio.io/v1alpha1
|
||||
// kind: Telemetry
|
||||
// metadata:
|
||||
// name: mesh-default
|
||||
// namespace: istio-system
|
||||
// spec:
|
||||
// tracing:
|
||||
// - randomSamplingPercentage: 10.00
|
||||
// customTags:
|
||||
// my_new_foo_tag:
|
||||
// literal:
|
||||
// value: "foo"
|
||||
// ```
|
||||
//
|
||||
// <!-- crd generation tags
|
||||
// +cue-gen:Telemetry:groupName:telemetry.istio.io
|
||||
// +cue-gen:Telemetry:version:v1alpha1
|
||||
// +cue-gen:Telemetry:storageVersion
|
||||
// +cue-gen:Telemetry:annotations:helm.sh/resource-policy=keep
|
||||
// +cue-gen:Telemetry:labels:app=istio-pilot,chart=istio,istio=telemetry,heritage=Tiller,release=istio
|
||||
// +cue-gen:Telemetry:subresource:status
|
||||
// +cue-gen:Telemetry:scope:Namespaced
|
||||
// +cue-gen:Telemetry:resource:categories=istio-io,telemetry-istio-io,shortNames=telemetry,plural=telemetries
|
||||
// +cue-gen:Telemetry:preserveUnknownFields:false
|
||||
// +cue-gen:Telemetry:printerColumn:name=Age,type=date,JSONPath=.metadata.creationTimestamp,description="CreationTimestamp is a timestamp
|
||||
// representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations.
|
||||
// Clients may not set this value. It is represented in RFC3339 form and is in UTC.
|
||||
// Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
// -->
|
||||
//
|
||||
// <!-- go code generation tags
|
||||
// +kubetype-gen
|
||||
// +kubetype-gen:groupVersion=telemetry.istio.io/v1alpha1
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen=true
|
||||
// -->
|
||||
message Telemetry {
|
||||
// Optional. The selector decides where to apply the Telemetry policy.
|
||||
// If not set, the Telemetry policy will be applied to all workloads in the
|
||||
// same namespace as the Telemetry policy.
|
||||
istio.type.v1beta1.WorkloadSelector selector = 1;
|
||||
|
||||
// Optional. Tracing configures the tracing behavior for all
|
||||
// selected workloads.
|
||||
repeated Tracing tracing = 2;
|
||||
}
|
||||
|
||||
// Tracing configures tracing behavior for workloads within a mesh.
|
||||
// It can be used to enable/disable tracing, as well as to set sampling
|
||||
// rates and custom tag extraction.
|
||||
message Tracing {
|
||||
|
||||
// Optional. Name of provider(s) to use for span reporting. If a provider is
|
||||
// not specified, the [default tracing provider][istio.mesh.v1alpha1.MeshConfig.default_tracing_provider]
|
||||
// will be used.
|
||||
// NOTE: At the moment, only a single provider can be specified in a given
|
||||
// Tracing rule.
|
||||
repeated ProviderRef providers = 2;
|
||||
|
||||
// Controls the rate at which traffic will be selected for tracing if no
|
||||
// prior sampling decision has been made. If a prior sampling decision has been
|
||||
// made, that decision will be respected. However, if no sampling decision
|
||||
// has been made (example: no `x-b3-sampled` tracing header was present in the
|
||||
// requests), the traffic will be selected for telemetry generation at the
|
||||
// percentage specified.
|
||||
//
|
||||
// Defaults to 0%. Valid values [0.00-100.00]. Can be specified in 0.01%
|
||||
// increments.
|
||||
double random_sampling_percentage = 3;
|
||||
|
||||
// Controls span reporting. If set to true, no spans will be reported for
|
||||
// impacted workloads. This does NOT impact context propagation or trace
|
||||
// sampling behavior.
|
||||
bool disable_span_reporting = 4;
|
||||
|
||||
// CustomTag defines a tag to be added to a trace span that is based on
|
||||
// an operator-supplied value. This value can either be a hard-coded value,
|
||||
// a value taken from an environment variable known to the sidecar proxy, or
|
||||
// from a request header.
|
||||
message CustomTag {
|
||||
oneof type {
|
||||
// Literal adds the same, hard-coded value to each span.
|
||||
Literal literal = 1;
|
||||
// Environment adds the value of an environment variable to each span.
|
||||
Environment environment = 2;
|
||||
// RequestHeader adds the value of an header from the request to each span.
|
||||
RequestHeader header = 3;
|
||||
// TODO: add support for Metadata tags
|
||||
}
|
||||
}
|
||||
|
||||
message Literal {
|
||||
// The tag value to use.
|
||||
string value = 1;
|
||||
}
|
||||
|
||||
message Environment {
|
||||
// Name of the environment variable from which to extract the tag value.
|
||||
string name = 1;
|
||||
// Optional. If the environment variable is not found, this value will be
|
||||
// used instead.
|
||||
string default_value = 2;
|
||||
}
|
||||
|
||||
message RequestHeader {
|
||||
// Name of the header from which to extract the tag value.
|
||||
string name = 1;
|
||||
// Optional. If the header is not found, this value will be
|
||||
// used instead.
|
||||
string default_value = 2;
|
||||
}
|
||||
|
||||
// Optional. Configures additional custom tags to the generated trace spans.
|
||||
map<string, CustomTag> custom_tags = 5;
|
||||
}
|
||||
|
||||
// Used to bind Telemetry configuration to specific providers for
|
||||
// targeted customization.
|
||||
message ProviderRef {
|
||||
// Required. Name of Telemetry provider in MeshConfig.
|
||||
string name = 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
||||
// source: telemetry/v1alpha1/telemetry.proto
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/gogo/protobuf/proto"
|
||||
_ "istio.io/api/type/v1beta1"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
var _ = fmt.Errorf
|
||||
var _ = math.Inf
|
||||
|
||||
// DeepCopyInto supports using Telemetry within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Telemetry) DeepCopyInto(out *Telemetry) {
|
||||
p := proto.Clone(in).(*Telemetry)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Telemetry. Required by controller-gen.
|
||||
func (in *Telemetry) DeepCopy() *Telemetry {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Telemetry)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Telemetry. Required by controller-gen.
|
||||
func (in *Telemetry) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using Tracing within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Tracing) DeepCopyInto(out *Tracing) {
|
||||
p := proto.Clone(in).(*Tracing)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing. Required by controller-gen.
|
||||
func (in *Tracing) DeepCopy() *Tracing {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Tracing)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing. Required by controller-gen.
|
||||
func (in *Tracing) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using Tracing_CustomTag within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Tracing_CustomTag) DeepCopyInto(out *Tracing_CustomTag) {
|
||||
p := proto.Clone(in).(*Tracing_CustomTag)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_CustomTag. Required by controller-gen.
|
||||
func (in *Tracing_CustomTag) DeepCopy() *Tracing_CustomTag {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Tracing_CustomTag)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_CustomTag. Required by controller-gen.
|
||||
func (in *Tracing_CustomTag) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using Tracing_Literal within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Tracing_Literal) DeepCopyInto(out *Tracing_Literal) {
|
||||
p := proto.Clone(in).(*Tracing_Literal)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Literal. Required by controller-gen.
|
||||
func (in *Tracing_Literal) DeepCopy() *Tracing_Literal {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Tracing_Literal)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Literal. Required by controller-gen.
|
||||
func (in *Tracing_Literal) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using Tracing_Environment within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Tracing_Environment) DeepCopyInto(out *Tracing_Environment) {
|
||||
p := proto.Clone(in).(*Tracing_Environment)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Environment. Required by controller-gen.
|
||||
func (in *Tracing_Environment) DeepCopy() *Tracing_Environment {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Tracing_Environment)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_Environment. Required by controller-gen.
|
||||
func (in *Tracing_Environment) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using Tracing_RequestHeader within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *Tracing_RequestHeader) DeepCopyInto(out *Tracing_RequestHeader) {
|
||||
p := proto.Clone(in).(*Tracing_RequestHeader)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_RequestHeader. Required by controller-gen.
|
||||
func (in *Tracing_RequestHeader) DeepCopy() *Tracing_RequestHeader {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(Tracing_RequestHeader)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Tracing_RequestHeader. Required by controller-gen.
|
||||
func (in *Tracing_RequestHeader) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
||||
// DeepCopyInto supports using ProviderRef within kubernetes types, where deepcopy-gen is used.
|
||||
func (in *ProviderRef) DeepCopyInto(out *ProviderRef) {
|
||||
p := proto.Clone(in).(*ProviderRef)
|
||||
*out = *p
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderRef. Required by controller-gen.
|
||||
func (in *ProviderRef) DeepCopy() *ProviderRef {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(ProviderRef)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ProviderRef. Required by controller-gen.
|
||||
func (in *ProviderRef) DeepCopyInterface() interface{} {
|
||||
return in.DeepCopy()
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
||||
// source: telemetry/v1alpha1/telemetry.proto
|
||||
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
bytes "bytes"
|
||||
fmt "fmt"
|
||||
github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb"
|
||||
proto "github.com/gogo/protobuf/proto"
|
||||
_ "istio.io/api/type/v1beta1"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
var _ = fmt.Errorf
|
||||
var _ = math.Inf
|
||||
|
||||
// MarshalJSON is a custom marshaler for Telemetry
|
||||
func (this *Telemetry) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Telemetry
|
||||
func (this *Telemetry) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for Tracing
|
||||
func (this *Tracing) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Tracing
|
||||
func (this *Tracing) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for Tracing_CustomTag
|
||||
func (this *Tracing_CustomTag) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Tracing_CustomTag
|
||||
func (this *Tracing_CustomTag) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for Tracing_Literal
|
||||
func (this *Tracing_Literal) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Tracing_Literal
|
||||
func (this *Tracing_Literal) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for Tracing_Environment
|
||||
func (this *Tracing_Environment) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Tracing_Environment
|
||||
func (this *Tracing_Environment) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for Tracing_RequestHeader
|
||||
func (this *Tracing_RequestHeader) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for Tracing_RequestHeader
|
||||
func (this *Tracing_RequestHeader) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
// MarshalJSON is a custom marshaler for ProviderRef
|
||||
func (this *ProviderRef) MarshalJSON() ([]byte, error) {
|
||||
str, err := TelemetryMarshaler.MarshalToString(this)
|
||||
return []byte(str), err
|
||||
}
|
||||
|
||||
// UnmarshalJSON is a custom unmarshaler for ProviderRef
|
||||
func (this *ProviderRef) UnmarshalJSON(b []byte) error {
|
||||
return TelemetryUnmarshaler.Unmarshal(bytes.NewReader(b), this)
|
||||
}
|
||||
|
||||
var (
|
||||
TelemetryMarshaler = &github_com_gogo_protobuf_jsonpb.Marshaler{}
|
||||
TelemetryUnmarshaler = &github_com_gogo_protobuf_jsonpb.Unmarshaler{AllowUnknownFields: true}
|
||||
)
|
||||
Loading…
Reference in New Issue