syntax = "proto3"; package envoy.service.trace.v2; option java_outer_classname = "TraceServiceProto"; option java_multiple_files = true; option java_package = "io.envoyproxy.envoy.service.trace.v2"; option java_generic_services = true; import "envoy/api/v2/core/base.proto"; import "opencensus/proto/trace/v1/trace.proto"; import "google/api/annotations.proto"; import "validate/validate.proto"; // 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. envoy.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; }