mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Windows: Implement docker top for containerd
Signed-off-by: John Howard <jhoward@microsoft.com>
This commit is contained in:
parent
8de5db1c00
commit
2f27332836
4 changed files with 23 additions and 11 deletions
|
@ -51,10 +51,10 @@ func (daemon *Daemon) ContainerTop(name string, psArgs string) (*containertypes.
|
|||
procList.Titles = []string{"Name", "PID", "CPU", "Private Working Set"}
|
||||
|
||||
for _, j := range s {
|
||||
d := time.Duration((j.KernelTime100ns + j.UserTime100ns) * 100) // Combined time in nanoseconds
|
||||
d := time.Duration((j.KernelTime_100Ns + j.UserTime_100Ns) * 100) // Combined time in nanoseconds
|
||||
procList.Processes = append(procList.Processes, []string{
|
||||
j.ImageName,
|
||||
fmt.Sprint(j.ProcessId),
|
||||
fmt.Sprint(j.ProcessID),
|
||||
fmt.Sprintf("%02d:%02d:%02d.%03d", int(d.Hours()), int(d.Minutes())%60, int(d.Seconds())%60, int(d.Nanoseconds()/1000000)%1000),
|
||||
units.HumanSize(float64(j.MemoryWorkingSetPrivateBytes))})
|
||||
}
|
||||
|
|
|
@ -1138,7 +1138,17 @@ func (c *client) Summary(_ context.Context, containerID string) ([]libcontainerd
|
|||
|
||||
pl := make([]libcontainerdtypes.Summary, len(p))
|
||||
for i := range p {
|
||||
pl[i] = libcontainerdtypes.Summary(p[i])
|
||||
pl[i] = libcontainerdtypes.Summary{
|
||||
ImageName: p[i].ImageName,
|
||||
CreatedAt: p[i].CreateTimestamp,
|
||||
KernelTime_100Ns: p[i].KernelTime100ns,
|
||||
MemoryCommitBytes: p[i].MemoryCommitBytes,
|
||||
MemoryWorkingSetPrivateBytes: p[i].MemoryWorkingSetPrivateBytes,
|
||||
MemoryWorkingSetSharedBytes: p[i].MemoryWorkingSetSharedBytes,
|
||||
ProcessID: p[i].ProcessId,
|
||||
UserTime_100Ns: p[i].UserTime100ns,
|
||||
ExecID: "",
|
||||
}
|
||||
}
|
||||
return pl, nil
|
||||
}
|
||||
|
|
|
@ -6,8 +6,9 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
|
||||
"github.com/containerd/containerd/cio"
|
||||
"github.com/containerd/containerd/windows/hcsshimtypes"
|
||||
|
||||
libcontainerdtypes "github.com/docker/docker/libcontainerd/types"
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
|
@ -17,16 +18,17 @@ const runtimeName = "io.containerd.runhcs.v1"
|
|||
|
||||
func summaryFromInterface(i interface{}) (*libcontainerdtypes.Summary, error) {
|
||||
switch pd := i.(type) {
|
||||
case *hcsshimtypes.ProcessDetails:
|
||||
case *options.ProcessDetails:
|
||||
return &libcontainerdtypes.Summary{
|
||||
CreateTimestamp: pd.CreatedAt,
|
||||
ImageName: pd.ImageName,
|
||||
KernelTime100ns: pd.KernelTime_100Ns,
|
||||
CreatedAt: pd.CreatedAt,
|
||||
KernelTime_100Ns: pd.KernelTime_100Ns,
|
||||
MemoryCommitBytes: pd.MemoryCommitBytes,
|
||||
MemoryWorkingSetPrivateBytes: pd.MemoryWorkingSetPrivateBytes,
|
||||
MemoryWorkingSetSharedBytes: pd.MemoryWorkingSetSharedBytes,
|
||||
ProcessId: pd.ProcessID,
|
||||
UserTime100ns: pd.UserTime_100Ns,
|
||||
ProcessID: pd.ProcessID,
|
||||
UserTime_100Ns: pd.UserTime_100Ns,
|
||||
ExecID: pd.ExecID,
|
||||
}, nil
|
||||
default:
|
||||
return nil, errors.Errorf("Unknown process details type %T", pd)
|
||||
|
|
|
@ -4,10 +4,10 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/Microsoft/hcsshim"
|
||||
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
|
||||
)
|
||||
|
||||
// Summary contains a ProcessList item from HCS to support `top`
|
||||
type Summary hcsshim.ProcessListItem
|
||||
type Summary options.ProcessDetails
|
||||
|
||||
// Stats contains statistics from HCS
|
||||
type Stats struct {
|
||||
|
|
Loading…
Add table
Reference in a new issue