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