Review Feedback

This commit is contained in:
Paul Bellamy
2016-02-16 10:37:25 +00:00
parent 5bb3d49297
commit 44dada25f2
6 changed files with 31 additions and 36 deletions

View File

@@ -9,14 +9,14 @@ import (
// We use these keys in node metadata
const (
PID = "pid"
Name = "name"
PPID = "ppid"
Cmdline = "cmdline"
Threads = "threads"
CPUUsage = "process_cpu_usage_percent"
MemoryUsage = "process_memory_usage_bytes"
FileDescriptors = "file_descriptors"
PID = "pid"
Name = "name"
PPID = "ppid"
Cmdline = "cmdline"
Threads = "threads"
CPUUsage = "process_cpu_usage_percent"
MemoryUsage = "process_memory_usage_bytes"
OpenFilesCount = "open_files_count"
)
// Reporter generates Reports containing the Process topology.
@@ -85,7 +85,7 @@ func (r *Reporter) processTopology() (report.Topology, error) {
}
node = node.WithMetric(MemoryUsage, report.MakeMetric().Add(now, float64(p.RSSBytes)))
node = node.WithMetric(FileDescriptors, report.MakeMetric().Add(now, float64(p.FileDescriptors)))
node = node.WithMetric(OpenFilesCount, report.MakeMetric().Add(now, float64(p.OpenFilesCount)))
t.AddNode(nodeID, node)
})

View File

@@ -4,13 +4,13 @@ import "sync"
// Process represents a single process.
type Process struct {
PID, PPID int
Name string
Cmdline string
Threads int
Jiffies uint64
RSSBytes uint64
FileDescriptors int
PID, PPID int
Name string
Cmdline string
Threads int
Jiffies uint64
RSSBytes uint64
OpenFilesCount int
}
// Walker is something that walks the /proc directory

View File

@@ -62,11 +62,6 @@ func readStats(path string) (ppid, threads int, jiffies, rss uint64, err error)
return
}
func readFileDescriptors(path string) (int, error) {
names, err := fs.ReadDirNames(path)
return len(names), err
}
// Walk walks the supplied directory (expecting it to look like /proc)
// and marshalls the files into instances of Process, which it then
// passes one-by-one to the supplied function. Walk is only made public
@@ -88,7 +83,7 @@ func (w *walker) Walk(f func(Process, Process)) error {
continue
}
fileDescriptors, err := readFileDescriptors(path.Join(w.procRoot, filename, "fd"))
openFiles, err := fs.ReadDirNames(path.Join(w.procRoot, filename, "fd"))
if err != nil {
continue
}
@@ -106,14 +101,14 @@ func (w *walker) Walk(f func(Process, Process)) error {
}
f(Process{
PID: pid,
PPID: ppid,
Name: name,
Cmdline: cmdline,
Threads: threads,
Jiffies: jiffies,
RSSBytes: rss,
FileDescriptors: fileDescriptors,
PID: pid,
PPID: ppid,
Name: name,
Cmdline: cmdline,
Threads: threads,
Jiffies: jiffies,
RSSBytes: rss,
OpenFilesCount: len(openFiles),
}, Process{})
}

View File

@@ -65,10 +65,10 @@ func TestWalker(t *testing.T) {
defer fs_hook.Restore()
want := map[int]process.Process{
3: {PID: 3, PPID: 2, Name: "curl", Cmdline: "curl google.com", Threads: 1, FileDescriptors: 3},
2: {PID: 2, PPID: 1, Name: "bash", Cmdline: "bash", Threads: 1, FileDescriptors: 2},
4: {PID: 4, PPID: 3, Name: "apache", Cmdline: "apache", Threads: 1, FileDescriptors: 1},
1: {PID: 1, PPID: 0, Name: "init", Cmdline: "init", Threads: 1, FileDescriptors: 0},
3: {PID: 3, PPID: 2, Name: "curl", Cmdline: "curl google.com", Threads: 1, OpenFilesCount: 3},
2: {PID: 2, PPID: 1, Name: "bash", Cmdline: "bash", Threads: 1, OpenFilesCount: 2},
4: {PID: 4, PPID: 3, Name: "apache", Cmdline: "apache", Threads: 1, OpenFilesCount: 1},
1: {PID: 1, PPID: 0, Name: "init", Cmdline: "init", Threads: 1, OpenFilesCount: 0},
}
have := map[int]process.Process{}

View File

@@ -42,7 +42,7 @@ var labels = map[string]string{
process.CPUUsage: "CPU",
process.Cmdline: "Command",
process.MemoryUsage: "Memory",
process.FileDescriptors: "Open Files",
process.OpenFilesCount: "Open Files",
process.PID: "PID",
process.PPID: "Parent PID",
process.Threads: "# Threads",

View File

@@ -21,7 +21,7 @@ var (
processNodeMetrics = []MetricRow{
{ID: process.CPUUsage, Format: percentFormat},
{ID: process.MemoryUsage, Format: filesizeFormat},
{ID: process.FileDescriptors, Format: integerFormat},
{ID: process.OpenFilesCount, Format: integerFormat},
}
containerNodeMetrics = []MetricRow{
{ID: docker.CPUTotalUsage, Format: percentFormat},