func (c *collector) source(ins *visor.Instance) { logFile := path.Join(c.logDir, ins.WorkerID(), "current") t, err := NewFileTail(logFile) if err != nil { c.errc <- fmt.Errorf("collector: unable to source %d: %s", ins.ID, err) return } s := NewSource(ins, t, c.pubc) c.Add(s, t) logf("collector: created source %d", ins.ID) if err := <-s.Error(); err != nil { c.errc <- err return } c.lookup.Remove(s) logf("collector: removed source %d", ins.ID) }