health: make it omittable

Saves 86 KB.

And stop depending on expvar and usermetrics when disabled,
in prep to removing all the expvar/metrics/tsweb stuff.

Updates #12614

Change-Id: I35d2479ddd1d39b615bab32b1fa940ae8cbf9b11
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-10-03 11:05:37 -07:00
committed by Brad Fitzpatrick
parent 9c3aec58ba
commit 447cbdd1d0
17 changed files with 369 additions and 230 deletions

View File

@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build ts_omit_health
package buildfeatures
// HasHealth is whether the binary was built with support for modular feature "Health checking support".
// Specifically, it's whether the binary was NOT built with the "ts_omit_health" build tag.
// It's a const so it can be used for dead code elimination.
const HasHealth = false

View File

@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build !ts_omit_health
package buildfeatures
// HasHealth is whether the binary was built with support for modular feature "Health checking support".
// Specifically, it's whether the binary was NOT built with the "ts_omit_health" build tag.
// It's a const so it can be used for dead code elimination.
const HasHealth = true

View File

@@ -150,6 +150,7 @@ var Features = map[FeatureTag]FeatureMeta{
Desc: "Generic Receive Offload support (performance)",
Deps: []FeatureTag{"netstack"},
},
"health": {Sym: "Health", Desc: "Health checking support"},
"hujsonconf": {Sym: "HuJSONConf", Desc: "HuJSON config file support"},
"iptables": {Sym: "IPTables", Desc: "Linux iptables support"},
"kube": {Sym: "Kube", Desc: "Kubernetes integration"},