TapDS API (#7287)
Signed-off-by: Yuval Kohavi <yuval.kohavi@gmail.com> Mirrored from https://github.com/envoyproxy/envoy @ 154d7a0fc31d279a07f10f33ccdabb136ea25413pull/620/head
parent
d8dc913238
commit
73f41bf9e0
7 changed files with 164 additions and 0 deletions
@ -0,0 +1,50 @@ |
||||
syntax = "proto3"; |
||||
|
||||
import "envoy/api/v2/core/base.proto"; |
||||
import "envoy/data/tap/v2alpha/wrapper.proto"; |
||||
|
||||
package envoy.service.tap.v2alpha; |
||||
|
||||
import "validate/validate.proto"; |
||||
|
||||
option java_outer_classname = "CommonProto"; |
||||
option java_multiple_files = true; |
||||
option java_package = "io.envoyproxy.envoy.service.tap.v2alpha"; |
||||
|
||||
// [#protodoc-title: Tap Sink Service] |
||||
|
||||
// [#not-implemented-hide:] Stream message for the Tap API. Envoy will open a stream to the server |
||||
// and stream taps without ever expecting a response. |
||||
message StreamTapsRequest { |
||||
message Identifier { |
||||
// The node sending taps over the stream. |
||||
envoy.api.v2.core.Node node = 1 [(validate.rules).message.required = true]; |
||||
// The opaque identifier that was set in the :ref:`output config |
||||
// <envoy_api_field_service.tap.v2alpha.StreamingGrpcSink.tap_id>`. |
||||
string tap_id = 2; |
||||
} |
||||
|
||||
// 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; |
||||
// The trace id. this can be used to merge together a streaming trace. Note that the trace_id |
||||
// is not guaranteed to be spatially or temporally unique. |
||||
uint64 trace_id = 2; |
||||
// The trace data. |
||||
envoy.data.tap.v2alpha.TraceWrapper trace = 3; |
||||
} |
||||
|
||||
// [#not-implemented-hide:] |
||||
message StreamTapsResponse { |
||||
} |
||||
|
||||
// [#not-implemented-hide:] A tap service to receive incoming taps. Envoy will call |
||||
// StreamTaps to deliver captured taps to the server |
||||
service TapSinkService { |
||||
|
||||
// Envoy will connect and send StreamTapsRequest messages forever. It does not expect any |
||||
// response to be sent as nothing would be done in the case of failure. The server should |
||||
// disconnect if it expects Envoy to reconnect. |
||||
rpc StreamTaps(stream StreamTapsRequest) returns (StreamTapsResponse) { |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
syntax = "proto3"; |
||||
|
||||
import "envoy/api/v2/discovery.proto"; |
||||
import "envoy/service/tap/v2alpha/common.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
package envoy.service.tap.v2alpha; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
|
||||
option java_outer_classname = "CommonProto"; |
||||
option java_multiple_files = true; |
||||
option java_package = "io.envoyproxy.envoy.service.tap.v2alpha"; |
||||
|
||||
// [#protodoc-title: Tap discovery service] |
||||
|
||||
// [#not-implemented-hide:] Tap discovery service. |
||||
service TapDiscoveryService { |
||||
rpc StreamTapConfigs(stream envoy.api.v2.DiscoveryRequest) |
||||
returns (stream envoy.api.v2.DiscoveryResponse) { |
||||
} |
||||
|
||||
rpc DeltaTapConfigs(stream envoy.api.v2.DeltaDiscoveryRequest) |
||||
returns (stream envoy.api.v2.DeltaDiscoveryResponse) { |
||||
} |
||||
|
||||
rpc FetchTapConfigs(envoy.api.v2.DiscoveryRequest) returns (envoy.api.v2.DiscoveryResponse) { |
||||
option (google.api.http) = { |
||||
post: "/v2/discovery:tap_configs" |
||||
body: "*" |
||||
}; |
||||
} |
||||
} |
||||
|
||||
// [#not-implemented-hide:] A tap resource is essentially a tap configuration with a name |
||||
// The filter TapDS config references this name. |
||||
message TapResource { |
||||
// The name of the tap configuration. |
||||
string name = 1 [(validate.rules).string.min_bytes = 1]; |
||||
|
||||
// Tap config to apply |
||||
TapConfig config = 2; |
||||
} |
Loading…
Reference in new issue