multi-container view

This commit is contained in:
Bradley Cicenas
2016-12-22 10:15:22 -06:00
parent ab56a4c4cb
commit 1c285c9e92
3 changed files with 180 additions and 49 deletions
-49
View File
@@ -1,49 +0,0 @@
package main
import (
"fmt"
"os"
"github.com/fsouza/go-dockerclient"
)
type DTop struct {
client *docker.Client
stats chan *docker.Stats
}
func (dt *DTop) output() {
for s := range dt.stats {
fmt.Println(s)
}
}
func (dt *DTop) collect(containerID string) {
done := make(chan bool)
fmt.Sprintf("starting collector for container: %s\n", containerID)
opts := docker.StatsOptions{
ID: containerID,
Stats: dt.stats,
Stream: true,
Done: done,
}
dt.client.Stats(opts)
fmt.Sprintf("stopping collector for container: %s\n", containerID)
}
func main() {
if len(os.Args) < 2 {
fmt.Println("no container provided")
os.Exit(1)
}
client, err := docker.NewClient("tcp://127.0.0.1:4243")
if err != nil {
panic(err)
}
d := &DTop{client, make(chan *docker.Stats)}
go d.collect(os.Args[1])
d.output()
}