summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAnton Tolchanov <commits@knyar.net>2025-05-08 06:42:21 +0100
committerAnton Tolchanov <commits@knyar.net>2025-05-08 07:44:10 +0100
commit008a35c6774f0733747cf970e6effbf2920de66d (patch)
treec2bfbba20b99ed71b1152e9e74388afb769275a2
parente83fe9a7624ade01d125132b345510cb607eef76 (diff)
downloadtailscale-knyar/lp.tar.xz
tailscale-knyar/lp.zip
cmd/lopower: expose metrics and tsnet logsknyar/lp
-rw-r--r--cmd/lopower/lopower.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/cmd/lopower/lopower.go b/cmd/lopower/lopower.go
index 0710f25db..66091c1f4 100644
--- a/cmd/lopower/lopower.go
+++ b/cmd/lopower/lopower.go
@@ -51,10 +51,12 @@ import (
"tailscale.com/net/tsaddr"
"tailscale.com/syncs"
"tailscale.com/tsnet"
+ "tailscale.com/tsweb/varz"
"tailscale.com/types/dnstype"
"tailscale.com/types/ipproto"
"tailscale.com/types/key"
"tailscale.com/types/logger"
+ "tailscale.com/util/clientmetric"
"tailscale.com/util/must"
"tailscale.com/wgengine/wgcfg"
)
@@ -68,6 +70,7 @@ var (
includeV4 = flag.Bool("include-v4", true, "include IPv4 (CGNAT) in the WireGuard configuration; incompatible with some carriers. IPv6 is always included.")
verbosePackets = flag.Bool("verbose-packets", false, "log packet contents")
verboseDNS = flag.Bool("verbose-dns", false, "log DNS queries")
+ verboseTsnet = flag.Bool("verbose-tsnet", false, "print tsnet logs")
)
type config struct {
@@ -541,6 +544,12 @@ func (lp *lpServer) serveQR() {
log.Printf("# Serving QR code at http://%s/", ln.Addr())
hs := &http.Server{
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path == "/metrics" {
+ w.Header().Set("Content-Type", "text/plain")
+ varz.Handler(w, r)
+ clientmetric.WritePrometheusExpositionFormat(w)
+ return
+ }
if r.URL.Path != "/" {
http.NotFound(w, r)
return
@@ -642,6 +651,9 @@ func (lp *lpServer) startTSNet(ctx context.Context) {
UserLogf: log.Printf,
Ephemeral: false,
}
+ if *verboseTsnet {
+ ts.Logf = log.Printf
+ }
lp.tsnet = ts
ts.PreStart = func() error {
dnsMgr := ts.Sys().DNSManager.Get()