mirror of
https://github.com/tailscale/tailscale.git
synced 2025-10-09 08:01:31 +00:00
metrics: revert changes to MultiLabelMap's String method
This breaks its ability to be used as an expvar and is blocking a trunkd deploy. Revert for now, and add a test to ensure that we don't break it in a future change. Updates #13550 Signed-off-by: Andrew Dunham <andrew@du.nham.ca> Change-Id: I1f1221c257c1de47b4bff0597c12f8530736116d
This commit is contained in:
@@ -5,6 +5,7 @@ package metrics
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"expvar"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -129,3 +130,21 @@ func BenchmarkMultiLabelWriteAllocs(b *testing.B) {
|
||||
m.WritePrometheus(w, "test")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMultiLabelMapExpvar(t *testing.T) {
|
||||
m := new(MultiLabelMap[L2])
|
||||
m.Add(L2{"a", "b"}, 2)
|
||||
m.Add(L2{"b", "c"}, 4)
|
||||
|
||||
em := new(expvar.Map)
|
||||
em.Set("multi", m)
|
||||
|
||||
// Ensure that the String method is valid JSON to ensure that it can be
|
||||
// used by expvar.
|
||||
encoded := []byte(em.String())
|
||||
if !json.Valid(encoded) {
|
||||
t.Fatalf("invalid JSON: %s", encoded)
|
||||
}
|
||||
|
||||
t.Logf("em = %+v", em)
|
||||
}
|
||||
|
Reference in New Issue
Block a user