...
1syntax = "proto3";
2
3package envoy.service.trace.v3;
4
5import "envoy/config/core/v3/base.proto";
6
7import "google/api/annotations.proto";
8
9import "opencensus/proto/trace/v1/trace.proto";
10
11import "udpa/annotations/status.proto";
12import "udpa/annotations/versioning.proto";
13import "validate/validate.proto";
14
15option java_package = "io.envoyproxy.envoy.service.trace.v3";
16option java_outer_classname = "TraceServiceProto";
17option java_multiple_files = true;
18option java_generic_services = true;
19option (udpa.annotations.file_status).package_version_status = ACTIVE;
20
21// [#protodoc-title: Trace service]
22
23// Service for streaming traces to server that consumes the trace data. It
24// uses OpenCensus data model as a standard to represent trace information.
25service TraceService {
26 // Envoy will connect and send StreamTracesMessage messages forever. It does
27 // not expect any response to be sent as nothing would be done in the case
28 // of failure.
29 rpc StreamTraces(stream StreamTracesMessage) returns (StreamTracesResponse) {
30 }
31}
32
33message StreamTracesResponse {
34 option (udpa.annotations.versioning).previous_message_type =
35 "envoy.service.trace.v2.StreamTracesResponse";
36}
37
38message StreamTracesMessage {
39 option (udpa.annotations.versioning).previous_message_type =
40 "envoy.service.trace.v2.StreamTracesMessage";
41
42 message Identifier {
43 option (udpa.annotations.versioning).previous_message_type =
44 "envoy.service.trace.v2.StreamTracesMessage.Identifier";
45
46 // The node sending the access log messages over the stream.
47 config.core.v3.Node node = 1 [(validate.rules).message = {required: true}];
48 }
49
50 // Identifier data effectively is a structured metadata.
51 // As a performance optimization this will only be sent in the first message
52 // on the stream.
53 Identifier identifier = 1;
54
55 // A list of Span entries
56 repeated opencensus.proto.trace.v1.Span spans = 2;
57}
View as plain text