metrics: add a NewLabelMap helper to create and register label maps

Updates tailscale/corp#31174

Signed-off-by: Anton Tolchanov <anton@tailscale.com>
pull/11970/merge
Anton Tolchanov 2 days ago committed by Anton Tolchanov
parent 76fb09c6bd
commit 17b0c7bfb3

@ -99,18 +99,13 @@ var (
)
var (
tlsRequestVersion = &metrics.LabelMap{Label: "version"}
tlsActiveVersion = &metrics.LabelMap{Label: "version"}
tlsRequestVersion = metrics.NewLabelMap("derper_tls_request_version", "version")
tlsActiveVersion = metrics.NewLabelMap("gauge_derper_tls_active_version", "version")
)
const setecMeshKeyName = "meshkey"
const meshKeyEnvVar = "TAILSCALE_DERPER_MESH_KEY"
func init() {
expvar.Publish("derper_tls_request_version", tlsRequestVersion)
expvar.Publish("gauge_derper_tls_active_version", tlsActiveVersion)
}
type config struct {
PrivateKey key.NodePrivate
}

@ -43,6 +43,14 @@ type LabelMap struct {
shardedIntMu syncs.Mutex
}
// NewLabelMap creates and publishes a new LabelMap metric with the given
// metric name and label name.
func NewLabelMap(metric, label string) *LabelMap {
m := &LabelMap{Label: label}
expvar.Publish(metric, m)
return m
}
// SetInt64 sets the *Int value stored under the given map key.
func (m *LabelMap) SetInt64(key string, v int64) {
m.Get(key).Set(v)

Loading…
Cancel
Save