logtail,logpolicy: tweak minor cosmetic things

Just reading the code again in prep for some alloc reductions.

Change-Id: I065226ea794b7ec7144c2b15942d35131c9313a8
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2022-07-27 21:06:25 -07:00 committed by Brad Fitzpatrick
parent ab60f28227
commit 48e73e147a
3 changed files with 22 additions and 17 deletions

View File

@ -520,7 +520,7 @@ func New(collection string) *Policy {
} }
} }
c := logtail.Config{ conf := logtail.Config{
Collection: newc.Collection, Collection: newc.Collection,
PrivateID: newc.PrivateID, PrivateID: newc.PrivateID,
Stderr: logWriter{console}, Stderr: logWriter{console},
@ -534,16 +534,16 @@ func New(collection string) *Policy {
HTTPC: &http.Client{Transport: NewLogtailTransport(logtail.DefaultHost)}, HTTPC: &http.Client{Transport: NewLogtailTransport(logtail.DefaultHost)},
} }
if collection == logtail.CollectionNode { if collection == logtail.CollectionNode {
c.MetricsDelta = clientmetric.EncodeLogTailMetricsDelta conf.MetricsDelta = clientmetric.EncodeLogTailMetricsDelta
c.IncludeProcID = true conf.IncludeProcID = true
c.IncludeProcSequence = true conf.IncludeProcSequence = true
} }
if val := getLogTarget(); val != "" { if val := getLogTarget(); val != "" {
log.Println("You have enabled a non-default log target. Doing without being told to by Tailscale staff or your network administrator will make getting support difficult.") log.Println("You have enabled a non-default log target. Doing without being told to by Tailscale staff or your network administrator will make getting support difficult.")
c.BaseURL = val conf.BaseURL = val
u, _ := url.Parse(val) u, _ := url.Parse(val)
c.HTTPC = &http.Client{Transport: NewLogtailTransport(u.Host)} conf.HTTPC = &http.Client{Transport: NewLogtailTransport(u.Host)}
} }
filchOptions := filch.Options{ filchOptions := filch.Options{
@ -566,16 +566,16 @@ func New(collection string) *Policy {
filchBuf, filchErr := filch.New(filchPrefix, filchOptions) filchBuf, filchErr := filch.New(filchPrefix, filchOptions)
if filchBuf != nil { if filchBuf != nil {
c.Buffer = filchBuf conf.Buffer = filchBuf
if filchBuf.OrigStderr != nil { if filchBuf.OrigStderr != nil {
c.Stderr = filchBuf.OrigStderr conf.Stderr = filchBuf.OrigStderr
} }
} }
lw := logtail.NewLogger(c, log.Printf) lw := logtail.NewLogger(conf, log.Printf)
var logOutput io.Writer = lw var logOutput io.Writer = lw
if runtime.GOOS == "windows" && c.Collection == logtail.CollectionNode { if runtime.GOOS == "windows" && conf.Collection == logtail.CollectionNode {
logID := newc.PublicID.String() logID := newc.PublicID.String()
exe, _ := os.Executable() exe, _ := os.Executable()
if strings.EqualFold(filepath.Base(exe), "tailscaled.exe") { if strings.EqualFold(filepath.Base(exe), "tailscaled.exe") {

View File

@ -21,6 +21,8 @@ type Buffer interface {
TryReadLine() ([]byte, error) TryReadLine() ([]byte, error)
// Write writes a log line into the ring buffer. // Write writes a log line into the ring buffer.
//
// Write takes ownership of the provided slice.
Write([]byte) (int, error) Write([]byte) (int, error)
} }

View File

@ -167,8 +167,9 @@ type Logger struct {
procID uint32 procID uint32
includeProcSequence bool includeProcSequence bool
writeLock sync.Mutex // guards increments of procSequence
procSequence uint64 writeLock sync.Mutex // guards increments of procSequence
procSequence uint64
shutdownStart chan struct{} // closed when shutdown begins shutdownStart chan struct{} // closed when shutdown begins
shutdownDone chan struct{} // closed when shutdown complete shutdownDone chan struct{} // closed when shutdown complete
@ -454,7 +455,7 @@ func Disable() {
logtailDisabled.Set(true) logtailDisabled.Set(true)
} }
func (l *Logger) send(jsonBlob []byte) (int, error) { func (l *Logger) sendLocked(jsonBlob []byte) (int, error) {
if logtailDisabled.Get() { if logtailDisabled.Get() {
return len(jsonBlob), nil return len(jsonBlob), nil
} }
@ -578,7 +579,7 @@ func (l *Logger) encodeText(buf []byte, skipClientTime bool, procID uint32, proc
return b return b
} }
func (l *Logger) encode(buf []byte, level int) []byte { func (l *Logger) encodeLocked(buf []byte, level int) []byte {
if l.includeProcSequence { if l.includeProcSequence {
l.procSequence++ l.procSequence++
} }
@ -659,10 +660,12 @@ func (l *Logger) Write(buf []byte) (int, error) {
l.stderr.Write(withNL) l.stderr.Write(withNL)
} }
} }
l.writeLock.Lock() l.writeLock.Lock()
b := l.encode(buf, level) defer l.writeLock.Unlock()
_, err := l.send(b)
l.writeLock.Unlock() b := l.encodeLocked(buf, level)
_, err := l.sendLocked(b)
return len(buf), err return len(buf), err
} }