syntax = "proto3"; package envoy.data.tap.v3alpha; option java_outer_classname = "HttpProto"; option java_multiple_files = true; option java_package = "io.envoyproxy.envoy.data.tap.v3alpha"; import "envoy/api/v3alpha/core/base.proto"; import "envoy/data/tap/v3alpha/common.proto"; // [#protodoc-title: HTTP tap data] // A fully buffered HTTP trace message. message HttpBufferedTrace { // HTTP message wrapper. message Message { // Message headers. repeated api.v3alpha.core.HeaderValue headers = 1; // Message body. Body body = 2; // Message trailers. repeated api.v3alpha.core.HeaderValue trailers = 3; } // Request message. Message request = 1; // Response message. Message response = 2; } // A streamed HTTP trace segment. Multiple segments make up a full trace. message HttpStreamedTraceSegment { // Trace ID unique to the originating Envoy only. Trace IDs can repeat and should not be used // for long term stable uniqueness. uint64 trace_id = 1; oneof message_piece { // Request headers. api.v3alpha.core.HeaderMap request_headers = 2; // Request body chunk. Body request_body_chunk = 3; // Request trailers. api.v3alpha.core.HeaderMap request_trailers = 4; // Response headers. api.v3alpha.core.HeaderMap response_headers = 5; // Response body chunk. Body response_body_chunk = 6; // Response trailers. api.v3alpha.core.HeaderMap response_trailers = 7; } }