syntax = "proto3"; package envoy.service.trace.v3; import "envoy/config/core/v3/base.proto"; import "opencensus/proto/trace/v1/trace.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.service.trace.v3"; option java_outer_classname = "TraceServiceProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/trace/v3;tracev3"; option java_generic_services = true; option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#protodoc-title: Trace service] // Service for streaming traces to server that consumes the trace data. It // uses OpenCensus data model as a standard to represent trace information. service TraceService { // Envoy will connect and send StreamTracesMessage messages forever. It does // not expect any response to be sent as nothing would be done in the case // of failure. rpc StreamTraces(stream StreamTracesMessage) returns (StreamTracesResponse) { } } message StreamTracesResponse { option (udpa.annotations.versioning).previous_message_type = "envoy.service.trace.v2.StreamTracesResponse"; } message StreamTracesMessage { option (udpa.annotations.versioning).previous_message_type = "envoy.service.trace.v2.StreamTracesMessage"; message Identifier { option (udpa.annotations.versioning).previous_message_type = "envoy.service.trace.v2.StreamTracesMessage.Identifier"; // The node sending the access log messages over the stream. config.core.v3.Node node = 1 [(validate.rules).message = {required: true}]; } // Identifier data effectively is a structured metadata. // As a performance optimization this will only be sent in the first message // on the stream. Identifier identifier = 1; // A list of Span entries repeated opencensus.proto.trace.v1.Span spans = 2; }