-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
API definitions for health check & outlier detection event services (#…
…10407) This PR introduces gRPC services interfaces for outlier detection and healthcheck events services. Risk Level: low Testing: n.a. Docs Changes: not yet Release Notes: not yet Relates to #8970 Signed-off-by: Alexey Baranov <me@kotiki.cc>
- Loading branch information
1 parent
9521f88
commit 34fcdef
Showing
22 changed files
with
479 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
syntax = "proto3"; | ||
|
||
package envoy.api.v2.core; | ||
|
||
import "envoy/api/v2/core/grpc_service.proto"; | ||
|
||
import "udpa/annotations/migrate.proto"; | ||
import "udpa/annotations/status.proto"; | ||
import "validate/validate.proto"; | ||
|
||
option java_package = "io.envoyproxy.envoy.api.v2.core"; | ||
option java_outer_classname = "EventServiceConfigProto"; | ||
option java_multiple_files = true; | ||
option (udpa.annotations.file_migrate).move_to_package = "envoy.config.core.v3"; | ||
option (udpa.annotations.file_status).package_version_status = ACTIVE; | ||
|
||
// [#not-implemented-hide:] | ||
// Configuration of the event reporting service endpoint. | ||
message EventServiceConfig { | ||
oneof config_source_specifier { | ||
option (validate.required) = true; | ||
|
||
// Specifies the gRPC service that hosts the event reporting service. | ||
GrpcService grpc_service = 1; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
syntax = "proto3"; | ||
|
||
package envoy.config.core.v3; | ||
|
||
import "envoy/config/core/v3/grpc_service.proto"; | ||
|
||
import "udpa/annotations/status.proto"; | ||
import "udpa/annotations/versioning.proto"; | ||
import "validate/validate.proto"; | ||
|
||
option java_package = "io.envoyproxy.envoy.config.core.v3"; | ||
option java_outer_classname = "EventServiceConfigProto"; | ||
option java_multiple_files = true; | ||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; | ||
|
||
// [#not-implemented-hide:] | ||
// Configuration of the event reporting service endpoint. | ||
message EventServiceConfig { | ||
option (udpa.annotations.versioning).previous_message_type = | ||
"envoy.api.v2.core.EventServiceConfig"; | ||
|
||
oneof config_source_specifier { | ||
option (validate.required) = true; | ||
|
||
// Specifies the gRPC service that hosts the event reporting service. | ||
GrpcService grpc_service = 1; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. | ||
|
||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") | ||
|
||
licenses(["notice"]) # Apache 2 | ||
|
||
api_proto_package( | ||
has_services = True, | ||
deps = [ | ||
"//envoy/api/v2/core:pkg", | ||
"@com_github_cncf_udpa//udpa/annotations:pkg", | ||
], | ||
) |
62 changes: 62 additions & 0 deletions
62
api/envoy/service/event_reporting/v2alpha/event_reporting_service.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
syntax = "proto3"; | ||
|
||
package envoy.service.event_reporting.v2alpha; | ||
|
||
import "envoy/api/v2/core/base.proto"; | ||
|
||
import "google/protobuf/any.proto"; | ||
|
||
import "udpa/annotations/migrate.proto"; | ||
import "udpa/annotations/status.proto"; | ||
import "validate/validate.proto"; | ||
|
||
option java_package = "io.envoyproxy.envoy.service.event_reporting.v2alpha"; | ||
option java_outer_classname = "EventReportingServiceProto"; | ||
option java_multiple_files = true; | ||
option java_generic_services = true; | ||
option (udpa.annotations.file_migrate).move_to_package = "envoy.service.event_reporting.v3"; | ||
option (udpa.annotations.file_status).package_version_status = ACTIVE; | ||
|
||
// [#protodoc-title: gRPC Event Reporting Service] | ||
|
||
// [#not-implemented-hide:] | ||
// Service for streaming different types of events from Envoy to a server. The examples of | ||
// such events may be health check or outlier detection events. | ||
service EventReportingService { | ||
// Envoy will connect and send StreamEventsRequest messages forever. | ||
// The management server may send StreamEventsResponse to configure event stream. See below. | ||
// This API is designed for high throughput with the expectation that it might be lossy. | ||
rpc StreamEvents(stream StreamEventsRequest) returns (stream StreamEventsResponse) { | ||
} | ||
} | ||
|
||
// [#not-implemented-hide:] | ||
// An events envoy sends to the management server. | ||
message StreamEventsRequest { | ||
message Identifier { | ||
// The node sending the event messages over the stream. | ||
api.v2.core.Node node = 1 [(validate.rules).message = {required: true}]; | ||
} | ||
|
||
// Identifier data that will only be sent in the first message on the stream. This is effectively | ||
// structured metadata and is a performance optimization. | ||
Identifier identifier = 1; | ||
|
||
// Batch of events. When the stream is already active, it will be the events occurred | ||
// since the last message had been sent. If the server receives unknown event type, it should | ||
// silently ignore it. | ||
// | ||
// The following events are supported: | ||
// | ||
// * :ref:`HealthCheckEvent <envoy_api_msg_data.core.v2alpha.HealthCheckEvent>` | ||
// * :ref:`OutlierDetectionEvent <envoy_api_msg_data.cluster.v2alpha.OutlierDetectionEvent>` | ||
repeated google.protobuf.Any events = 2 [(validate.rules).repeated = {min_items: 1}]; | ||
} | ||
|
||
// [#not-implemented-hide:] | ||
// The management server may send envoy a StreamEventsResponse to tell which events the server | ||
// is interested in. In future, with aggregated event reporting service, this message will | ||
// contain, for example, clusters the envoy should send events for, or event types the server | ||
// wants to process. | ||
message StreamEventsResponse { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# DO NOT EDIT. This file is generated by tools/proto_sync.py. | ||
|
||
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") | ||
|
||
licenses(["notice"]) # Apache 2 | ||
|
||
api_proto_package( | ||
has_services = True, | ||
deps = [ | ||
"//envoy/config/core/v3:pkg", | ||
"//envoy/service/event_reporting/v2alpha:pkg", | ||
"@com_github_cncf_udpa//udpa/annotations:pkg", | ||
], | ||
) |
69 changes: 69 additions & 0 deletions
69
api/envoy/service/event_reporting/v3/event_reporting_service.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
syntax = "proto3"; | ||
|
||
package envoy.service.event_reporting.v3; | ||
|
||
import "envoy/config/core/v3/base.proto"; | ||
|
||
import "google/protobuf/any.proto"; | ||
|
||
import "udpa/annotations/status.proto"; | ||
import "udpa/annotations/versioning.proto"; | ||
import "validate/validate.proto"; | ||
|
||
option java_package = "io.envoyproxy.envoy.service.event_reporting.v3"; | ||
option java_outer_classname = "EventReportingServiceProto"; | ||
option java_multiple_files = true; | ||
option java_generic_services = true; | ||
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; | ||
|
||
// [#protodoc-title: gRPC Event Reporting Service] | ||
|
||
// [#not-implemented-hide:] | ||
// Service for streaming different types of events from Envoy to a server. The examples of | ||
// such events may be health check or outlier detection events. | ||
service EventReportingService { | ||
// Envoy will connect and send StreamEventsRequest messages forever. | ||
// The management server may send StreamEventsResponse to configure event stream. See below. | ||
// This API is designed for high throughput with the expectation that it might be lossy. | ||
rpc StreamEvents(stream StreamEventsRequest) returns (stream StreamEventsResponse) { | ||
} | ||
} | ||
|
||
// [#not-implemented-hide:] | ||
// An events envoy sends to the management server. | ||
message StreamEventsRequest { | ||
option (udpa.annotations.versioning).previous_message_type = | ||
"envoy.service.event_reporting.v2alpha.StreamEventsRequest"; | ||
|
||
message Identifier { | ||
option (udpa.annotations.versioning).previous_message_type = | ||
"envoy.service.event_reporting.v2alpha.StreamEventsRequest.Identifier"; | ||
|
||
// The node sending the event messages over the stream. | ||
config.core.v3.Node node = 1 [(validate.rules).message = {required: true}]; | ||
} | ||
|
||
// Identifier data that will only be sent in the first message on the stream. This is effectively | ||
// structured metadata and is a performance optimization. | ||
Identifier identifier = 1; | ||
|
||
// Batch of events. When the stream is already active, it will be the events occurred | ||
// since the last message had been sent. If the server receives unknown event type, it should | ||
// silently ignore it. | ||
// | ||
// The following events are supported: | ||
// | ||
// * :ref:`HealthCheckEvent <envoy_api_msg_data.core.v3.HealthCheckEvent>` | ||
// * :ref:`OutlierDetectionEvent <envoy_api_msg_data.cluster.v3.OutlierDetectionEvent>` | ||
repeated google.protobuf.Any events = 2 [(validate.rules).repeated = {min_items: 1}]; | ||
} | ||
|
||
// [#not-implemented-hide:] | ||
// The management server may send envoy a StreamEventsResponse to tell which events the server | ||
// is interested in. In future, with aggregated event reporting service, this message will | ||
// contain, for example, clusters the envoy should send events for, or event types the server | ||
// wants to process. | ||
message StreamEventsResponse { | ||
option (udpa.annotations.versioning).previous_message_type = | ||
"envoy.service.event_reporting.v2alpha.StreamEventsResponse"; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
26 changes: 26 additions & 0 deletions
26
generated_api_shadow/envoy/api/v2/core/event_service_config.proto
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.