Tracing

Package: tracing.options.gloo.solo.io

Types:

Source File: github.com/solo-io/gloo/projects/gloo/api/v1/options/tracing/tracing.proto


ListenerTracingSettings

Contains settings for configuring Envoy’s tracing capabilities at the listener level. See here for additional information on Envoy’s tracing capabilities. See here for additional information about configuring tracing with Gloo Edge.

"requestHeadersForTags": []google.protobuf.StringValue
"verbose": .google.protobuf.BoolValue
"tracePercentages": .tracing.options.gloo.solo.io.TracePercentages
"zipkinConfig": .solo.io.envoy.config.trace.v3.ZipkinConfig
"datadogConfig": .solo.io.envoy.config.trace.v3.DatadogConfig
"openTelemetryConfig": .solo.io.envoy.config.trace.v3.OpenTelemetryConfig
"openCensusConfig": .solo.io.envoy.config.trace.v3.OpenCensusConfig
"environmentVariablesForTags": []tracing.options.gloo.solo.io.TracingTagEnvironmentVariable
"literalsForTags": []tracing.options.gloo.solo.io.TracingTagLiteral
"metadataForTags": []tracing.options.gloo.solo.io.TracingTagMetadata
"spawnUpstreamSpan": bool

Field Type Description
requestHeadersForTags []google.protobuf.StringValue Optional. If specified, Envoy will include the headers and header values for any matching request headers.
verbose .google.protobuf.BoolValue Optional. If true, Envoy will include logs for streaming events. Default: false.
tracePercentages .tracing.options.gloo.solo.io.TracePercentages Requests can produce traces by random sampling or when the x-client-trace-id header is provided. TracePercentages defines the limits for random, forced, and overall tracing percentages.
zipkinConfig .solo.io.envoy.config.trace.v3.ZipkinConfig Only one of zipkinConfig, datadogConfig, openTelemetryConfig, or openCensusConfig can be set.
datadogConfig .solo.io.envoy.config.trace.v3.DatadogConfig Only one of datadogConfig, zipkinConfig, openTelemetryConfig, or openCensusConfig can be set.
openTelemetryConfig .solo.io.envoy.config.trace.v3.OpenTelemetryConfig Only one of openTelemetryConfig, zipkinConfig, datadogConfig, or openCensusConfig can be set.
openCensusConfig .solo.io.envoy.config.trace.v3.OpenCensusConfig Only one of openCensusConfig, zipkinConfig, datadogConfig, or openTelemetryConfig can be set.
environmentVariablesForTags []tracing.options.gloo.solo.io.TracingTagEnvironmentVariable Optional. If specified, Envoy will include the environment variables with the given tag as tracing tags.
literalsForTags []tracing.options.gloo.solo.io.TracingTagLiteral Optional. If specified, Envoy will include the literals with the given tag as tracing tags.
metadataForTags []tracing.options.gloo.solo.io.TracingTagMetadata Optional. If specified, Envoy will include tags from the dynamic metadata.
spawnUpstreamSpan bool Optional Create separate tracing span for each upstream request if true. And if this flag is set to true, the tracing provider will assume that Envoy will be independent hop in the trace chain and may set span type to client or server based on this flag.

RouteTracingSettings

Contains settings for configuring Envoy’s tracing capabilities at the route level. Note: must also specify ListenerTracingSettings for the associated listener. See here for additional information on Envoy’s tracing capabilities. See here for additional information about configuring tracing with Gloo Edge.

"routeDescriptor": string
"tracePercentages": .tracing.options.gloo.solo.io.TracePercentages
"propagate": .google.protobuf.BoolValue

Field Type Description
routeDescriptor string Optional. If set, will be used to identify the route that produced the trace. Note that this value will be overridden if the “x-envoy-decorator-operation” header is passed.
tracePercentages .tracing.options.gloo.solo.io.TracePercentages Requests can produce traces by random sampling or when the x-client-trace-id header is provided. TracePercentages defines the limits for random, forced, and overall tracing percentages.
propagate .google.protobuf.BoolValue Optional. Default is true, If set to false, the tracing headers will not propagate to the upstream.

TracePercentages

Requests can produce traces by random sampling or when the x-client-trace-id header is provided. TracePercentages defines the limits for random, forced, and overall tracing percentages.

"clientSamplePercentage": .google.protobuf.FloatValue
"randomSamplePercentage": .google.protobuf.FloatValue
"overallSamplePercentage": .google.protobuf.FloatValue

Field Type Description
clientSamplePercentage .google.protobuf.FloatValue Percentage of requests that should produce traces when the x-client-trace-id header is provided. optional, defaults to 100.0 This should be a value between 0.0 and 100.0, with up to 6 significant digits.
randomSamplePercentage .google.protobuf.FloatValue Percentage of requests that should produce traces by random sampling. optional, defaults to 100.0 This should be a value between 0.0 and 100.0, with up to 6 significant digits.
overallSamplePercentage .google.protobuf.FloatValue Overall percentage of requests that should produce traces. optional, defaults to 100.0 This should be a value between 0.0 and 100.0, with up to 6 significant digits.

TracingTagEnvironmentVariable

Requests can produce traces with custom tags. TracingTagEnvironmentVariable defines an environment variable which gets added as custom tag.

"tag": .google.protobuf.StringValue
"name": .google.protobuf.StringValue
"defaultValue": .google.protobuf.StringValue

Field Type Description
tag .google.protobuf.StringValue Used to populate the tag name.
name .google.protobuf.StringValue Environment variable name to obtain the value to populate the tag value.
defaultValue .google.protobuf.StringValue When the environment variable is not found, the tag value will be populated with this default value if specified, otherwise no tag will be populated.

TracingTagLiteral

Requests can produce traces with custom tags. TracingTagLiteral defines a literal which gets added as custom tag.

"tag": .google.protobuf.StringValue
"value": .google.protobuf.StringValue

Field Type Description
tag .google.protobuf.StringValue Used to populate the tag name.
value .google.protobuf.StringValue Static literal value to populate the tag value.

TracingTagMetadata

Requests can produce traces with custom tags. TracingTagMetadata defines a dynamic metadata tag which gets added as custom tag.

"tag": string
"kind": .tracing.options.gloo.solo.io.TracingTagMetadata.Kind
"value": .tracing.options.gloo.solo.io.TracingTagMetadata.MetadataValue
"defaultValue": string

Field Type Description
tag string Used to populate the tag name.
kind .tracing.options.gloo.solo.io.TracingTagMetadata.Kind The kind of metadata to extract the value from.
value .tracing.options.gloo.solo.io.TracingTagMetadata.MetadataValue The metadata value to extract the tag value from.
defaultValue string When no valid metadata is found, the tag value would be populated with this default value if specified, otherwise no tag would be populated.

MetadataValue

"namespace": string
"key": string
"nestedFieldDelimiter": string

Field Type Description
namespace string The namespace to extract the value from the metadata. If empty will default to JWT principal namespace.
key string The key to extract the value from the metadata. For example, principal.iss or principal.sub to extract those claims from the JWT ns.
nestedFieldDelimiter string The delimiter to use when specifying nested fields. Default is .. This is commonly set to ., allowing for nested fields names of the form parent.child.grandchild.

Kind

Name Description
REQUEST The metadata is extracted from the stream metadata.
ENDPOINT The metadata is extracted from the endpoint metadata.