-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathtracing.proto
104 lines (91 loc) · 5.93 KB
/
tracing.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
syntax = "proto3";
package tracing.options.gloo.solo.io;
option go_package = "github.com/solo-io/solo-apis/pkg/api/gloo.solo.io/v1/options/tracing";
import "github.com/solo-io/solo-apis/api/gloo/gloo/external/envoy/config/trace/v3/zipkin.proto";
import "github.com/solo-io/solo-apis/api/gloo/gloo/external/envoy/config/trace/v3/datadog.proto";
import "github.com/solo-io/solo-apis/api/gloo/gloo/external/envoy/config/trace/v3/opentelemetry.proto";
import "github.com/solo-io/solo-apis/api/gloo/gloo/external/envoy/config/trace/v3/opencensus.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/any.proto";
import "extproto/ext.proto";
option (extproto.hash_all) = true;
option (extproto.clone_all) = true;
option (extproto.equal_all) = true;
import "github.com/solo-io/solo-kit/api/v1/ref.proto";
// Contains settings for configuring Envoy's tracing capabilities at the listener level.
// See [here](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing.html) for additional information on Envoy's tracing capabilities.
// See [here](https://docs.solo.io/gloo-edge/latest/guides/observability/tracing/) for additional information about configuring tracing with Gloo Edge.
message ListenerTracingSettings {
// Optional. If specified, Envoy will include the headers and header values for any matching request headers.
repeated google.protobuf.StringValue request_headers_for_tags = 1;
// Optional. If true, Envoy will include logs for streaming events. Default: false.
google.protobuf.BoolValue verbose = 2;
// 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.
TracePercentages trace_percentages = 3;
// Optional. If not specified, no tracing will be performed
// ProviderConfig defines the configuration for an external tracing provider.
oneof provider_config {
.solo.io.envoy.config.trace.v3.ZipkinConfig zipkin_config = 4;
.solo.io.envoy.config.trace.v3.DatadogConfig datadog_config = 5;
.solo.io.envoy.config.trace.v3.OpenTelemetryConfig open_telemetry_config = 8;
.solo.io.envoy.config.trace.v3.OpenCensusConfig open_census_config = 9;
}
// Optional. If specified, Envoy will include the environment variables with the given tag as tracing tags.
repeated TracingTagEnvironmentVariable environment_variables_for_tags = 6;
// Optional. If specified, Envoy will include the literals with the given tag as tracing tags.
repeated TracingTagLiteral literals_for_tags = 7;
// 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.
bool spawn_upstream_span = 10;
}
// Contains settings for configuring Envoy's tracing capabilities at the route level.
// Note: must also specify ListenerTracingSettings for the associated listener.
// See [here](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing.html) for additional information on Envoy's tracing capabilities.
// See [here](https://docs.solo.io/gloo-edge/latest/guides/observability/tracing/) for additional information about configuring tracing with Gloo Edge.
message RouteTracingSettings {
// 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.
string route_descriptor = 1;
// 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.
TracePercentages trace_percentages = 2;
// Optional. Default is true, If set to false, the tracing headers will not propagate to the upstream.
google.protobuf.BoolValue propagate = 3;
}
// 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.
message TracePercentages {
// 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.
google.protobuf.FloatValue client_sample_percentage = 1;
// 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.
google.protobuf.FloatValue random_sample_percentage = 2;
// 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.
google.protobuf.FloatValue overall_sample_percentage = 3;
}
// Requests can produce traces with custom tags.
// TracingTagEnvironmentVariable defines an environment variable which gets added as custom tag.
message TracingTagEnvironmentVariable {
// Used to populate the tag name.
google.protobuf.StringValue tag = 1;
// Environment variable name to obtain the value to populate the tag value.
google.protobuf.StringValue name = 2;
// 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.
google.protobuf.StringValue default_value = 3;
}
// Requests can produce traces with custom tags.
// TracingTagLiteral defines a literal which gets added as custom tag.
message TracingTagLiteral {
// Used to populate the tag name.
google.protobuf.StringValue tag = 1;
// Static literal value to populate the tag value.
google.protobuf.StringValue value = 2;
}