Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ proto_library(
"//envoy/service/accesslog/v2:pkg",
"//envoy/service/auth/v2:pkg",
"//envoy/service/discovery/v2:pkg",
"//envoy/service/event_reporting/v2alpha:pkg",
"//envoy/service/load_stats/v2:pkg",
"//envoy/service/metrics/v2:pkg",
"//envoy/service/ratelimit/v2:pkg",
Expand Down Expand Up @@ -230,6 +231,7 @@ proto_library(
"//envoy/service/cluster/v3:pkg",
"//envoy/service/discovery/v3:pkg",
"//envoy/service/endpoint/v3:pkg",
"//envoy/service/event_reporting/v3:pkg",
"//envoy/service/health/v3:pkg",
"//envoy/service/listener/v3:pkg",
"//envoy/service/load_stats/v3:pkg",
Expand Down
26 changes: 26 additions & 0 deletions api/envoy/api/v2/core/event_service_config.proto
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;
}
}
8 changes: 7 additions & 1 deletion api/envoy/api/v2/core/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ syntax = "proto3";
package envoy.api.v2.core;

import "envoy/api/v2/core/base.proto";
import "envoy/api/v2/core/event_service_config.proto";
import "envoy/type/http.proto";
import "envoy/type/matcher/string.proto";
import "envoy/type/range.proto";
Expand Down Expand Up @@ -54,7 +55,7 @@ enum HealthStatus {
DEGRADED = 5;
}

// [#next-free-field: 22]
// [#next-free-field: 23]
message HealthCheck {
// Describes the encoding of the payload bytes in the payload.
message Payload {
Expand Down Expand Up @@ -290,6 +291,11 @@ message HealthCheck {
// If empty, no event log will be written.
string event_log_path = 17;

// [#not-implemented-hide:]
// The gRPC service for the health check event service.
// If empty, health check events won't be sent to a remote endpoint.
EventServiceConfig event_service = 22;

// If set to true, health check failure events will always be logged. If set to false, only the
// initial health check failure event will be logged.
// The default value is false.
Expand Down
6 changes: 6 additions & 0 deletions api/envoy/config/bootstrap/v2/bootstrap.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import "envoy/api/v2/cluster.proto";
import "envoy/api/v2/core/address.proto";
import "envoy/api/v2/core/base.proto";
import "envoy/api/v2/core/config_source.proto";
import "envoy/api/v2/core/event_service_config.proto";
import "envoy/api/v2/core/socket_option.proto";
import "envoy/api/v2/listener.proto";
import "envoy/config/metrics/v2/stats.proto";
Expand Down Expand Up @@ -194,6 +195,11 @@ message ClusterManager {
message OutlierDetection {
// Specifies the path to the outlier event log.
string event_log_path = 1;

// [#not-implemented-hide:]
// The gRPC service for the outlier detection event service.
// If empty, outlier detection events won't be sent to a remote endpoint.
api.v2.core.EventServiceConfig event_service = 2;
}

// Name of the local cluster (i.e., the cluster that owns the Envoy running
Expand Down
6 changes: 6 additions & 0 deletions api/envoy/config/bootstrap/v3/bootstrap.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import "envoy/config/cluster/v3/cluster.proto";
import "envoy/config/core/v3/address.proto";
import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/config_source.proto";
import "envoy/config/core/v3/event_service_config.proto";
import "envoy/config/core/v3/socket_option.proto";
import "envoy/config/listener/v3/listener.proto";
import "envoy/config/metrics/v3/stats.proto";
Expand Down Expand Up @@ -209,6 +210,11 @@ message ClusterManager {

// Specifies the path to the outlier event log.
string event_log_path = 1;

// [#not-implemented-hide:]
// The gRPC service for the outlier detection event service.
// If empty, outlier detection events won't be sent to a remote endpoint.
Comment thread
htuch marked this conversation as resolved.
Outdated
core.v3.EventServiceConfig event_service = 2;
}

// Name of the local cluster (i.e., the cluster that owns the Envoy running
Expand Down
28 changes: 28 additions & 0 deletions api/envoy/config/core/v3/event_service_config.proto
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;
}
}
8 changes: 7 additions & 1 deletion api/envoy/config/core/v3/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ syntax = "proto3";
package envoy.config.core.v3;

import "envoy/config/core/v3/base.proto";
import "envoy/config/core/v3/event_service_config.proto";
import "envoy/type/matcher/v3/string.proto";
import "envoy/type/v3/http.proto";
import "envoy/type/v3/range.proto";
Expand Down Expand Up @@ -53,7 +54,7 @@ enum HealthStatus {
DEGRADED = 5;
}

// [#next-free-field: 22]
// [#next-free-field: 23]
message HealthCheck {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.HealthCheck";

Expand Down Expand Up @@ -303,6 +304,11 @@ message HealthCheck {
// If empty, no event log will be written.
string event_log_path = 17;

// [#not-implemented-hide:]
// The gRPC service for the health check event service.
// If empty, health check events won't be sent to a remote endpoint.
EventServiceConfig event_service = 22;

// If set to true, health check failure events will always be logged. If set to false, only the
// initial health check failure event will be logged.
// The default value is false.
Expand Down
13 changes: 13 additions & 0 deletions api/envoy/service/event_reporting/v2alpha/BUILD
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",
],
)
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>`
Comment thread
htuch marked this conversation as resolved.
Outdated
// * :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 {
}
14 changes: 14 additions & 0 deletions api/envoy/service/event_reporting/v3/BUILD
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 api/envoy/service/event_reporting/v3/event_reporting_service.proto
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";
}
1 change: 1 addition & 0 deletions api/versioning/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ proto_library(
"//envoy/service/accesslog/v2:pkg",
"//envoy/service/auth/v2:pkg",
"//envoy/service/discovery/v2:pkg",
"//envoy/service/event_reporting/v2alpha:pkg",
"//envoy/service/load_stats/v2:pkg",
"//envoy/service/metrics/v2:pkg",
"//envoy/service/ratelimit/v2:pkg",
Expand Down
26 changes: 26 additions & 0 deletions 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.

8 changes: 7 additions & 1 deletion generated_api_shadow/envoy/api/v2/core/health_check.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading