tailcfg, logtail: provide Debug bit to disable logtail

For people running self-hosted control planes who want a global
opt-out knob instead of running their own logcatcher.

Change-Id: I7f996c09f45850ff77b58bfd5a535e197971725a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2022-04-18 13:43:03 -07:00
committed by Brad Fitzpatrick
parent ecea6cb994
commit 9f1dd716e8
3 changed files with 20 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ import (
"tailscale.com/logtail/backoff"
"tailscale.com/net/interfaces"
"tailscale.com/syncs"
tslogger "tailscale.com/types/logger"
"tailscale.com/wgengine/monitor"
)
@@ -412,7 +413,18 @@ func (l *Logger) Flush() error {
return nil
}
// logtailDisabled is whether logtail uploads to logcatcher are disabled.
var logtailDisabled syncs.AtomicBool
// Disable disables logtail uploads for the lifetime of the process.
func Disable() {
logtailDisabled.Set(true)
}
func (l *Logger) send(jsonBlob []byte) (int, error) {
if logtailDisabled.Get() {
return len(jsonBlob), nil
}
n, err := l.buffer.Write(jsonBlob)
if l.drainLogs == nil {
select {