syntax = "proto3"; package envoy.service.trace.v2; import "envoy/api/v2/core/base.proto"; import "opencensus/proto/trace/v1/trace.proto"; import "udpa/annotations/status.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.service.trace.v2"; option java_outer_classname = "TraceServiceProto"; option java_multiple_files = true; option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/trace/v2;tracev2"; option (udpa.annotations.file_status).package_version_status = FROZEN; // [#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 { } message StreamTracesMessage { message Identifier { // The node sending the access log messages over the stream. api.v2.core.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; }