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
55 changes: 55 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/certs.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

import "google/protobuf/timestamp.proto";

// [#protodoc-title: Certificates]

// Proto representation of certificate details. Admin endpoint uses this wrapper for `/certs` to
// display certificate information. See :ref:`/certs <operations_admin_interface_certs>` for more
// information.
message Certificates {
// List of certificates known to an Envoy.
repeated Certificate certificates = 1;
}

message Certificate {

// Details of CA certificate.
repeated CertificateDetails ca_cert = 1;

// Details of Certificate Chain
repeated CertificateDetails cert_chain = 2;
}

message CertificateDetails {
// Path of the certificate.
string path = 1;

// Certificate Serial Number.
string serial_number = 2;

// List of Subject Alternate names.
repeated SubjectAlternateName subject_alt_names = 3;

// Minimum of days until expiration of certificate and it's chain.
uint64 days_until_expiration = 4;

// Indicates the time from which the certificate is valid.
google.protobuf.Timestamp valid_from = 5;

// Indicates the time at which the certificate expires.
google.protobuf.Timestamp expiration_time = 6;
}

message SubjectAlternateName {

// Subject Alternate Name.
oneof name {
string dns = 1;
string uri = 2;
}
}
8 changes: 8 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/clusters.proto
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

import "envoy/admin/v2alpha/metrics.proto";
import "envoy/api/v2/core/address.proto";
Expand Down Expand Up @@ -58,6 +60,9 @@ message HostStatus {
// success rate or the cluster did not have enough hosts to run through success rate outlier
// ejection.
envoy.type.Percent success_rate = 4;

// The host's weight. If not configured, the value defaults to 1.
uint32 weight = 5;
}

// Health status for a host.
Expand All @@ -68,6 +73,9 @@ message HostHealthStatus {
// The host is currently considered an outlier and has been ejected.
bool failed_outlier_check = 2;

// The host is currently being marked as degraded through active health checking.
bool failed_active_degraded_check = 4;

// Health status as reported by EDS. Note: only HEALTHY and UNHEALTHY are currently supported
// here.
// TODO(mrice32): pipe through remaining EDS health status possibilities.
Expand Down
2 changes: 2 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/config_dump.proto
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

import "envoy/api/v2/cds.proto";
import "envoy/api/v2/lds.proto";
Expand Down
16 changes: 16 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/memory.proto
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

// [#protodoc-title: Memory]

Expand All @@ -16,4 +18,18 @@ message Memory {
// The number of bytes reserved by the heap but not necessarily allocated. This is an alias for
// `generic.heap_size`.
uint64 heap_size = 2;

// The number of bytes in free, unmapped pages in the page heap. These bytes always count towards
// virtual memory usage, and depending on the OS, typically do not count towards physical memory
// usage. This is an alias for `tcmalloc.pageheap_unmapped_bytes`.
uint64 pageheap_unmapped = 3;

// The number of bytes in free, mapped pages in the page heap. These bytes always count towards
// virtual memory usage, and unless the underlying memory is swapped out by the OS, they also
// count towards physical memory usage. This is an alias for `tcmalloc.pageheap_free_bytes`.
uint64 pageheap_free = 4;

// The amount of memory used by the TCMalloc thread caches (for small objects). This is an alias
// for `tcmalloc.current_total_thread_cache_bytes`.
uint64 total_thread_cache = 5;
}
2 changes: 2 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/metrics.proto
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

// [#protodoc-title: Metrics]

Expand Down
26 changes: 26 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/mutex_stats.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

// [#protodoc-title: MutexStats]

// Proto representation of the statistics collected upon absl::Mutex contention, if Envoy is run
// under :option:`--enable-mutex-tracing`. For more information, see the `absl::Mutex`
// [docs](https://abseil.io/about/design/mutex#extra-features).
//
// *NB*: The wait cycles below are measured by `absl::base_internal::CycleClock`, and may not
// correspond to core clock frequency. For more information, see the `CycleClock`
// [docs](https://github.com/abseil/abseil-cpp/blob/master/absl/base/internal/cycleclock.h).
message MutexStats {

// The number of individual mutex contentions which have occurred since startup.
uint64 num_contentions = 1;

// The length of the current contention wait cycle.
uint64 current_wait_cycles = 2;

// The lifetime total of all contention wait cycles.
uint64 lifetime_wait_cycles = 3;
}
129 changes: 129 additions & 0 deletions api/src/main/proto/envoy/admin/v2alpha/server_info.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
syntax = "proto3";

package envoy.admin.v2alpha;
option java_package = "io.envoyproxy.envoy.admin.v2alpha";
option java_multiple_files = true;

import "google/protobuf/duration.proto";

// [#protodoc-title: Server State]

// Proto representation of the value returned by /server_info, containing
// server version/server status information.
message ServerInfo {
// Server version.
string version = 1;

enum State {
// Server is live and serving traffic.
LIVE = 0;
// Server is draining listeners in response to external health checks failing.
DRAINING = 1;
// Server has not yet completed cluster manager initialization.
PRE_INITIALIZING = 2;
// Server is running the cluster manager initialization callbacks (e.g., RDS).
INITIALIZING = 3;
}

// State of the server.
State state = 2;

// Uptime since current epoch was started.
google.protobuf.Duration uptime_current_epoch = 3;

// Uptime since the start of the first epoch.
google.protobuf.Duration uptime_all_epochs = 4;

// Command line options the server is currently running with.
CommandLineOptions command_line_options = 6;
}

message CommandLineOptions {
// See :option:`--base-id` for details.
uint64 base_id = 1;

// See :option:`--concurrency` for details.
uint32 concurrency = 2;

// See :option:`--config-path` for details.
string config_path = 3;

// See :option:`--config-yaml` for details.
string config_yaml = 4;

// See :option:`--allow-unknown-fields` for details.
bool allow_unknown_fields = 5;

// See :option:`--admin-address-path` for details.
string admin_address_path = 6;

enum IpVersion {
v4 = 0;
v6 = 1;
}

// See :option:`--local-address-ip-version` for details.
IpVersion local_address_ip_version = 7;

// See :option:`--log-level` for details.
string log_level = 8;

// See :option:`--component-log-level` for details.
string component_log_level = 9;

// See :option:`--log-format` for details.
string log_format = 10;

// See :option:`--log-path` for details.
string log_path = 11;

// See :option:`--hot-restart-version` for details.
bool hot_restart_version = 12;

// See :option:`--service-cluster` for details.
string service_cluster = 13;

// See :option:`--service-node` for details.
string service_node = 14;

// See :option:`--service-zone` for details.
string service_zone = 15;

// See :option:`--file-flush-interval-msec` for details.
google.protobuf.Duration file_flush_interval = 16;

// See :option:`--drain-time-s` for details.
google.protobuf.Duration drain_time = 17;

// See :option:`--parent-shutdown-time-s` for details.
google.protobuf.Duration parent_shutdown_time = 18;

enum Mode {
// Validate configs and then serve traffic normally.
Serve = 0;

// Validate configs and exit.
Validate = 1;

// Completely load and initialize the config, and then exit without running the listener loop.
InitOnly = 2;
}

// See :option:`--mode` for details.
Mode mode = 19;

// See :option:`--max-stats` for details.
uint64 max_stats = 20;

// See :option:`--max-obj-name-len` for details.
uint64 max_obj_name_len = 21;

// See :option:`--disable-hot-restart` for details.
bool disable_hot_restart = 22;

// See :option:`--enable-mutex-tracing` for details.
bool enable_mutex_tracing = 23;

// See :option:`--restart-epoch` for details.
uint32 restart_epoch = 24;
}
Loading