envoy.service.trace.v2.trace_service.proto Maven / Gradle / Ivy
syntax = "proto3";
// [#proto-status: draft]
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;
}