API: Unready Targets Dump (#12554)

Description: Taking advantage of the new feature introduced in [#12035](https://github.com/envoyproxy/envoy/pull/12035), which introduced quick visibility for init managers to check unready targets, this pull request adds protobuf message for unready targets and enables admin to dump configs of unready targets. An example of config dump for listeners’ unready targets is given in this pull request.

Introduce ```InitDumpHandler``` with ```handlerInitDump``` method to help dump information of unready targets.
Add ```dumpUnreadyTargets``` function for ```init::manager```.

Risk Level: Low
Docs Changes: protodoc
Release Notes: Added

Signed-off-by: pingsun <pingsun@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 8aef76370877c66b09f7791f0577ca83aad7d608
master-ci-test
data-plane-api(CircleCI) 4 years ago
parent 1474050c22
commit 60fb9fa8fe
  1. 32
      envoy/admin/v3/init_dump.proto
  2. 37
      envoy/admin/v4alpha/init_dump.proto

@ -0,0 +1,32 @@
syntax = "proto3";
package envoy.admin.v3;
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
option java_package = "io.envoyproxy.envoy.admin.v3";
option java_outer_classname = "InitDumpProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: InitDump]
// Dumps of unready targets of envoy init managers. Envoy's admin fills this message with init managers,
// which provides the information of their unready targets.
// The :ref:`/init_dump <operations_admin_interface_init_dump>` will dump all unready targets information.
message UnreadyTargetsDumps {
// Message of unready targets information of an init manager.
message UnreadyTargetsDump {
// Name of the init manager. Example: "init_manager_xxx".
string name = 1;
// Names of unready targets of the init manager. Example: "target_xxx".
repeated string target_names = 2;
}
// You can choose specific component to dump unready targets with mask query parameter.
// See :ref:`/init_dump?mask={} <operations_admin_interface_init_dump_by_mask>` for more information.
// The dumps of unready targets of all init managers.
repeated UnreadyTargetsDump unready_targets_dumps = 1;
}

@ -0,0 +1,37 @@
syntax = "proto3";
package envoy.admin.v4alpha;
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
option java_package = "io.envoyproxy.envoy.admin.v4alpha";
option java_outer_classname = "InitDumpProto";
option java_multiple_files = true;
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
// [#protodoc-title: InitDump]
// Dumps of unready targets of envoy init managers. Envoy's admin fills this message with init managers,
// which provides the information of their unready targets.
// The :ref:`/init_dump <operations_admin_interface_init_dump>` will dump all unready targets information.
message UnreadyTargetsDumps {
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.UnreadyTargetsDumps";
// Message of unready targets information of an init manager.
message UnreadyTargetsDump {
option (udpa.annotations.versioning).previous_message_type =
"envoy.admin.v3.UnreadyTargetsDumps.UnreadyTargetsDump";
// Name of the init manager. Example: "init_manager_xxx".
string name = 1;
// Names of unready targets of the init manager. Example: "target_xxx".
repeated string target_names = 2;
}
// You can choose specific component to dump unready targets with mask query parameter.
// See :ref:`/init_dump?mask={} <operations_admin_interface_init_dump_by_mask>` for more information.
// The dumps of unready targets of all init managers.
repeated UnreadyTargetsDump unready_targets_dumps = 1;
}
Loading…
Cancel
Save