| syntax = "proto3"; |
| |
| package dubbo.system.v1alpha1; |
| |
| option go_package = "github.com/apache/dubbo-kubernetes/api/system/v1alpha1"; |
| |
| import "api/mesh/options.proto"; |
| import "google/protobuf/timestamp.proto"; |
| |
| message ZoneInsight { |
| |
| option (dubbo.mesh.resource).name = "ZoneInsightResource"; |
| option (dubbo.mesh.resource).type = "ZoneInsight"; |
| option (dubbo.mesh.resource).package = "system"; |
| option (dubbo.mesh.resource).global = true; |
| option (dubbo.mesh.resource).ws.name = "zone-insight"; |
| option (dubbo.mesh.resource).ws.read_only = true; |
| |
| // List of DDS subscriptions created by a given Zone Dubbo CP. |
| repeated DDSSubscription subscriptions = 1; |
| |
| // Statistics about Envoy Admin Streams |
| EnvoyAdminStreams envoy_admin_streams = 2; |
| |
| HealthCheck health_check = 3; |
| } |
| |
| message EnvoyAdminStreams { |
| // Global instance ID that handles XDS Config Dump streams. |
| string config_dump_global_instance_id = 1; |
| // Global instance ID that handles Stats streams. |
| string stats_global_instance_id = 2; |
| // Global instance ID that handles Clusters streams. |
| string clusters_global_instance_id = 3; |
| } |
| |
| // KDSSubscription describes a single KDS subscription |
| // created by a Zone to the Global. |
| // Ideally, there should be only one such subscription per Zone lifecycle. |
| // Presence of multiple subscriptions might indicate one of the following |
| // events: |
| // - transient loss of network connection between Zone and Global Control |
| // Planes |
| // - Zone Dubbo CP restarts (i.e. hot restart or crash) |
| // - Global Dubbo CP restarts (i.e. rolling update or crash) |
| // - etc |
| message DDSSubscription { |
| |
| // Unique id per DDS subscription. |
| string id = 1; |
| |
| // Global CP instance that handled given subscription. |
| string global_instance_id = 2; |
| |
| // Time when a given Zone connected to the Global. |
| google.protobuf.Timestamp connect_time = 3; |
| |
| // Time when a given Zone disconnected from the Global. |
| google.protobuf.Timestamp disconnect_time = 4; |
| |
| // Status of the KDS subscription. |
| DDSSubscriptionStatus status = 5; |
| |
| // Generation is an integer number which is periodically increased by the |
| // status sink |
| uint32 generation = 7; |
| |
| // Config of Zone Kuma CP |
| string config = 8; |
| |
| // Indicates if subscription provided auth token |
| bool auth_token_provided = 9; |
| |
| // Zone CP instance that handled the given subscription (This is the leader at |
| // time of connection). |
| string zone_instance_id = 10; |
| } |
| |
| // DDSSubscriptionStatus defines status of an DDS subscription. |
| message DDSSubscriptionStatus { |
| |
| // Time when status of a given KDS subscription was most recently updated. |
| google.protobuf.Timestamp last_update_time = 1; |
| |
| // Total defines an aggregate over individual KDS stats. |
| DDSServiceStats total = 2; |
| |
| map<string, DDSServiceStats> stat = 3; |
| } |
| |
| // DiscoveryServiceStats defines all stats over a single xDS service. |
| message DDSServiceStats { |
| |
| // Number of xDS responses sent to the Dataplane. |
| uint64 responses_sent = 1; |
| |
| // Number of xDS responses ACKed by the Dataplane. |
| uint64 responses_acknowledged = 2; |
| |
| // Number of xDS responses NACKed by the Dataplane. |
| uint64 responses_rejected = 3; |
| } |
| |
| // HealthCheck holds information about the received zone health check |
| message HealthCheck { |
| // Time last health check received |
| google.protobuf.Timestamp time = 1; |
| } |