From 80631ad6cf0510cbe2edde9aee3f0ea02319e703 Mon Sep 17 00:00:00 2001 From: dyknon Date: Sun, 20 Jul 2025 06:19:50 +0900 Subject: rename --- exporter-multiplexer.go | 58 ------------------------------------------ exporter-multiplexer_test.go | 60 -------------------------------------------- main.go | 58 ++++++++++++++++++++++++++++++++++++++++++ metrics_test.go | 35 ++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 118 deletions(-) delete mode 100644 exporter-multiplexer.go delete mode 100644 exporter-multiplexer_test.go create mode 100644 main.go create mode 100644 metrics_test.go diff --git a/exporter-multiplexer.go b/exporter-multiplexer.go deleted file mode 100644 index c88e01b..0000000 --- a/exporter-multiplexer.go +++ /dev/null @@ -1,58 +0,0 @@ -// r5f.jp/cgit/prometheus-exporter-multiplexer.git - -package main - -import ( - "fmt" - "log/slog" - "net/http" - logflag "github.com/prometheus/common/promslog/flag" - "gopkg.in/alecthomas/kingpin.v2" - "github.com/prometheus/common/promslog" - tkweb "github.com/prometheus/exporter-toolkit/web" - tkflag "github.com/prometheus/exporter-toolkit/web/kingpinflag" -) - - -var ( - relabelMap = argRelabel(kingpin.Flag( - "relabel", "name=yaml.", - ).Short('r')) - srcList = argSrcList(kingpin.Arg( - "sources", "Metric source.", - ).Required()) - logger *slog.Logger -) - -func main() { - promslogConfig := &promslog.Config{} - logflag.AddFlags(kingpin.CommandLine, promslogConfig) - tkFlag := tkflag.AddFlags(kingpin.CommandLine, ":9199") - kingpin.CommandLine.HelpFlag.Short('h') - kingpin.Parse() - - logger = promslog.New(promslogConfig) - parts, err := PartsFromArgs(*srcList, relabelMap) - if err != nil{ - logger.Error(err.Error()) - return - } - - http.HandleFunc("/metrics", func( - w http.ResponseWriter, r *http.Request, - ){ - out, err := parts.Get() - if err != nil{ - logger.Error(err.Error()) - w.WriteHeader(500) - } - w.Header()["Content-Type"] = []string{"application/openmetrics-text"} - fmt.Fprint(w, out) - }) - - err = tkweb.ListenAndServe(&http.Server{}, tkFlag, logger) - if err != nil{ - logger.Error(err.Error()) - return - } -} diff --git a/exporter-multiplexer_test.go b/exporter-multiplexer_test.go deleted file mode 100644 index 7c73df7..0000000 --- a/exporter-multiplexer_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -import ( - "testing" - "strings" -) - -func TestLargeMetrics(t *testing.T){ - first := rune(0x41) - last := rune(0x5a) - omb := strings.Builder{} - for r1 := first; r1 <= last; r1++{ - for r2 := first; r2 <= last; r2++{ - name := strings.Builder{} - name.WriteString("test_metric_name_") - name.WriteRune(r1) - name.WriteRune(r2) - omb.WriteString("# TYPE ") - omb.WriteString(name.String()) - omb.WriteString(" gauge\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"0\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"1\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"2\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"3\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"4\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"5\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"6\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"7\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"8\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"9\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"10\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"11\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"12\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"13\"} 1\n") - omb.WriteString(name.String()) - omb.WriteString("{index=\"14\"} 1\n") - } - } - omb.WriteString("# EOF\n") - - m, e := ParseMetrics(([]byte)(omb.String()), "application/openmetrics-text") - if e != nil{ - t.Error(e) - } - m.String() -} diff --git a/main.go b/main.go new file mode 100644 index 0000000..c88e01b --- /dev/null +++ b/main.go @@ -0,0 +1,58 @@ +// r5f.jp/cgit/prometheus-exporter-multiplexer.git + +package main + +import ( + "fmt" + "log/slog" + "net/http" + logflag "github.com/prometheus/common/promslog/flag" + "gopkg.in/alecthomas/kingpin.v2" + "github.com/prometheus/common/promslog" + tkweb "github.com/prometheus/exporter-toolkit/web" + tkflag "github.com/prometheus/exporter-toolkit/web/kingpinflag" +) + + +var ( + relabelMap = argRelabel(kingpin.Flag( + "relabel", "name=yaml.", + ).Short('r')) + srcList = argSrcList(kingpin.Arg( + "sources", "Metric source.", + ).Required()) + logger *slog.Logger +) + +func main() { + promslogConfig := &promslog.Config{} + logflag.AddFlags(kingpin.CommandLine, promslogConfig) + tkFlag := tkflag.AddFlags(kingpin.CommandLine, ":9199") + kingpin.CommandLine.HelpFlag.Short('h') + kingpin.Parse() + + logger = promslog.New(promslogConfig) + parts, err := PartsFromArgs(*srcList, relabelMap) + if err != nil{ + logger.Error(err.Error()) + return + } + + http.HandleFunc("/metrics", func( + w http.ResponseWriter, r *http.Request, + ){ + out, err := parts.Get() + if err != nil{ + logger.Error(err.Error()) + w.WriteHeader(500) + } + w.Header()["Content-Type"] = []string{"application/openmetrics-text"} + fmt.Fprint(w, out) + }) + + err = tkweb.ListenAndServe(&http.Server{}, tkFlag, logger) + if err != nil{ + logger.Error(err.Error()) + return + } +} diff --git a/metrics_test.go b/metrics_test.go new file mode 100644 index 0000000..a91e93c --- /dev/null +++ b/metrics_test.go @@ -0,0 +1,35 @@ +package main + +import ( + "testing" + "strings" + "fmt" +) + +func TestLargeMetrics(t *testing.T){ + first := rune(0x41) + last := rune(0x5a) + omb := strings.Builder{} + for r1 := first; r1 <= last; r1++{ + for r2 := first; r2 <= last; r2++{ + name := strings.Builder{} + name.WriteString("test_metric_name_") + name.WriteRune(r1) + name.WriteRune(r2) + omb.WriteString("# TYPE ") + omb.WriteString(name.String()) + omb.WriteString(" gauge\n") + for i := 0; i < 16; i++{ + omb.WriteString(name.String()) + omb.WriteString(fmt.Sprintf("{index=\"%d\"} 1\n", i)) + } + } + } + omb.WriteString("# EOF\n") + + m, e := ParseMetrics(([]byte)(omb.String()), "application/openmetrics-text") + if e != nil{ + t.Error(e) + } + m.String() +} -- cgit v1.2.3