Merge branch '9437-keep-index-ns'
[arvados.git] / services / crunchstat / crunchstat.go
index 198222371613583291ee50a973853686ff87a74c..6bce3258d9857808f24e677ce5374f0f2de61a23 100644 (file)
@@ -86,11 +86,19 @@ var reportedStatFile = map[string]string{}
 // cgroup root for the given statgroup. (This will avoid falling back
 // to host-level stats during container setup and teardown.)
 func OpenStatFile(cgroup Cgroup, statgroup string, stat string) (*os.File, error) {
-       var paths = []string{
-               fmt.Sprintf("%s/%s/%s/%s/%s", cgroup.root, statgroup, cgroup.parent, cgroup.cid, stat),
-               fmt.Sprintf("%s/%s/%s/%s", cgroup.root, cgroup.parent, cgroup.cid, stat),
-               fmt.Sprintf("%s/%s/%s", cgroup.root, statgroup, stat),
-               fmt.Sprintf("%s/%s", cgroup.root, stat),
+       var paths []string
+       if cgroup.cid != "" {
+               // Collect container's stats
+               paths = []string{
+                       fmt.Sprintf("%s/%s/%s/%s/%s", cgroup.root, statgroup, cgroup.parent, cgroup.cid, stat),
+                       fmt.Sprintf("%s/%s/%s/%s", cgroup.root, cgroup.parent, cgroup.cid, stat),
+               }
+       } else {
+               // Collect this host's stats
+               paths = []string{
+                       fmt.Sprintf("%s/%s/%s", cgroup.root, statgroup, stat),
+                       fmt.Sprintf("%s/%s", cgroup.root, stat),
+               }
        }
        var path string
        var file *os.File
@@ -134,7 +142,7 @@ func GetContainerNetStats(cgroup Cgroup) (io.Reader, error) {
                statsFilename := fmt.Sprintf("/proc/%s/net/dev", taskPid)
                stats, err := ioutil.ReadFile(statsFilename)
                if err != nil {
-                       statLog.Printf("read %s: %s\n", statsFilename, err)
+                       statLog.Printf("error reading %s: %s\n", statsFilename, err)
                        continue
                }
                return strings.NewReader(string(stats)), nil
@@ -401,7 +409,7 @@ func run(logger *log.Logger) error {
                        if cmd.Process != nil {
                                cmd.Process.Signal(catch)
                        }
-                       statLog.Println("caught signal:", catch)
+                       statLog.Println("notice: caught signal:", catch)
                }(sigChan)
                signal.Notify(sigChan, syscall.SIGTERM)
                signal.Notify(sigChan, syscall.SIGINT)