types/logger: move RusagePrefixLog to logger package, disable by default

The RusagePrefixLog is rarely useful, hasn't been useful in a long
time, is rarely the measurement we need, and is pretty spammy (and
syscall-heavy). Disable it by default. We can enable it when we're
debugging memory.
pull/832/head
Brad Fitzpatrick 4 years ago
parent ff0cf6340a
commit 86c271caba

@ -19,6 +19,7 @@ import (
"os/signal"
"runtime"
"runtime/debug"
"strconv"
"syscall"
"time"
@ -115,7 +116,10 @@ func run() error {
pol.Shutdown(ctx)
}()
logf := wgengine.RusagePrefixLog(log.Printf)
var logf logger.Logf = log.Printf
if v, _ := strconv.ParseBool(os.Getenv("TS_DEBUG_MEMORY")); v {
logf = logger.RusagePrefixLog(logf)
}
logf = logger.RateLimitedFn(logf, 5*time.Second, 5, 100)
if args.cleanup {

@ -2,19 +2,17 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package wgengine
package logger
import (
"fmt"
"runtime"
"tailscale.com/types/logger"
)
// RusagePrefixLog returns a Logf func wrapping the provided logf func that adds
// a prefixed log message to each line with the current binary memory usage
// and max RSS.
func RusagePrefixLog(logf logger.Logf) logger.Logf {
func RusagePrefixLog(logf Logf) Logf {
return func(f string, argv ...interface{}) {
var m runtime.MemStats
runtime.ReadMemStats(&m)

@ -4,7 +4,7 @@
// +build !windows
package wgengine
package logger
import (
"runtime"

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package wgengine
package logger
func rusageMaxRSS() float64 {
// TODO(apenwarr): Substitute Windows equivalent of Getrusage() here.
Loading…
Cancel
Save