mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-18 12:59:31 +00:00
Review Feedback
This commit is contained in:
@@ -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)
|
||||
})
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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{})
|
||||
}
|
||||
|
||||
|
||||
@@ -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{}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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},
|
||||
|
||||
Reference in New Issue
Block a user