Sandbox: Add SandboxMetrics rpc
To gather metrics/stats about a specific sandbox instance, it'd be nice to have a dedicated rpc for this. Due to the same "what kind of stats are going to be returned" dilemma exists for sandboxes as well, I've re-used the metrics type we have as the data field is just an `any`, leaving the metrics returned entirely up to the shim author. For CRI usecases this will just be cgroup and windows stats as that's all that's supported right now. Signed-off-by: Danny Canter <danny@dcantah.dev>
This commit is contained in:
@@ -884,6 +884,42 @@ file {
|
||||
}
|
||||
syntax: "proto3"
|
||||
}
|
||||
file {
|
||||
name: "github.com/containerd/containerd/api/types/metrics.proto"
|
||||
package: "containerd.types"
|
||||
dependency: "google/protobuf/any.proto"
|
||||
dependency: "google/protobuf/timestamp.proto"
|
||||
message_type {
|
||||
name: "Metric"
|
||||
field {
|
||||
name: "timestamp"
|
||||
number: 1
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_MESSAGE
|
||||
type_name: ".google.protobuf.Timestamp"
|
||||
json_name: "timestamp"
|
||||
}
|
||||
field {
|
||||
name: "id"
|
||||
number: 2
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_STRING
|
||||
json_name: "id"
|
||||
}
|
||||
field {
|
||||
name: "data"
|
||||
number: 3
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_MESSAGE
|
||||
type_name: ".google.protobuf.Any"
|
||||
json_name: "data"
|
||||
}
|
||||
}
|
||||
options {
|
||||
go_package: "github.com/containerd/containerd/api/types;types"
|
||||
}
|
||||
syntax: "proto3"
|
||||
}
|
||||
file {
|
||||
name: "github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto"
|
||||
package: "containerd.runtime.sandbox.v1"
|
||||
@@ -891,6 +927,7 @@ file {
|
||||
dependency: "google/protobuf/timestamp.proto"
|
||||
dependency: "github.com/containerd/containerd/api/types/mount.proto"
|
||||
dependency: "github.com/containerd/containerd/api/types/platform.proto"
|
||||
dependency: "github.com/containerd/containerd/api/types/metrics.proto"
|
||||
message_type {
|
||||
name: "CreateSandboxRequest"
|
||||
field {
|
||||
@@ -1199,6 +1236,27 @@ file {
|
||||
message_type {
|
||||
name: "ShutdownSandboxResponse"
|
||||
}
|
||||
message_type {
|
||||
name: "SandboxMetricsRequest"
|
||||
field {
|
||||
name: "sandbox_id"
|
||||
number: 1
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_STRING
|
||||
json_name: "sandboxId"
|
||||
}
|
||||
}
|
||||
message_type {
|
||||
name: "SandboxMetricsResponse"
|
||||
field {
|
||||
name: "metrics"
|
||||
number: 1
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_MESSAGE
|
||||
type_name: ".containerd.types.Metric"
|
||||
json_name: "metrics"
|
||||
}
|
||||
}
|
||||
service {
|
||||
name: "Sandbox"
|
||||
method {
|
||||
@@ -1241,6 +1299,11 @@ file {
|
||||
input_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxRequest"
|
||||
output_type: ".containerd.runtime.sandbox.v1.ShutdownSandboxResponse"
|
||||
}
|
||||
method {
|
||||
name: "SandboxMetrics"
|
||||
input_type: ".containerd.runtime.sandbox.v1.SandboxMetricsRequest"
|
||||
output_type: ".containerd.runtime.sandbox.v1.SandboxMetricsResponse"
|
||||
}
|
||||
}
|
||||
options {
|
||||
go_package: "github.com/containerd/containerd/api/runtime/sandbox/v1;sandbox"
|
||||
@@ -5944,42 +6007,6 @@ file {
|
||||
}
|
||||
syntax: "proto3"
|
||||
}
|
||||
file {
|
||||
name: "github.com/containerd/containerd/api/types/metrics.proto"
|
||||
package: "containerd.types"
|
||||
dependency: "google/protobuf/any.proto"
|
||||
dependency: "google/protobuf/timestamp.proto"
|
||||
message_type {
|
||||
name: "Metric"
|
||||
field {
|
||||
name: "timestamp"
|
||||
number: 1
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_MESSAGE
|
||||
type_name: ".google.protobuf.Timestamp"
|
||||
json_name: "timestamp"
|
||||
}
|
||||
field {
|
||||
name: "id"
|
||||
number: 2
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_STRING
|
||||
json_name: "id"
|
||||
}
|
||||
field {
|
||||
name: "data"
|
||||
number: 3
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_MESSAGE
|
||||
type_name: ".google.protobuf.Any"
|
||||
json_name: "data"
|
||||
}
|
||||
}
|
||||
options {
|
||||
go_package: "github.com/containerd/containerd/api/types;types"
|
||||
}
|
||||
syntax: "proto3"
|
||||
}
|
||||
file {
|
||||
name: "github.com/containerd/containerd/api/services/tasks/v1/tasks.proto"
|
||||
package: "containerd.services.tasks.v1"
|
||||
|
||||
Reference in New Issue
Block a user