From 6845af08acf839e9658862e26ebdca82c6745578 Mon Sep 17 00:00:00 2001
From: ensiouel <ensiouel@gmail.com>
Date: Fri, 22 Dec 2023 13:58:34 +0300
Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20?=
 =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D1=8B=20prometheus?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/metrics/example_test.go | 123 ------------------------------------
 1 file changed, 123 deletions(-)
 delete mode 100644 pkg/metrics/example_test.go

diff --git a/pkg/metrics/example_test.go b/pkg/metrics/example_test.go
deleted file mode 100644
index d08e75e6..00000000
--- a/pkg/metrics/example_test.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package metrics
-
-import (
-	"fmt"
-	"io"
-	"net"
-	"net/http"
-	"testing"
-
-	"git.perx.ru/perxis/perxis-go/pkg/id"
-	"git.perx.ru/perxis/perxis-go/pkg/optional"
-	"github.com/prometheus/client_golang/prometheus"
-	"github.com/prometheus/client_golang/prometheus/promhttp"
-	dto "github.com/prometheus/client_model/go"
-	"github.com/stretchr/testify/assert"
-	"github.com/stretchr/testify/require"
-)
-
-func serveMetricsHTTP(t *testing.T) net.Listener {
-	mux := http.NewServeMux()
-	mux.Handle("/metrics", promhttp.Handler())
-	srv := &http.Server{Addr: "localhost:30341", Handler: mux}
-	listener, err := net.Listen("tcp", "localhost:0")
-	require.NoError(t, err)
-	go func() { _ = srv.Serve(listener) }()
-	return listener
-}
-
-func TestMetrics_Example(t *testing.T) {
-	t.Run("Metrics do not allow dynamically assigned labels", func(t *testing.T) {
-		m := prometheus.NewCounterVec(prometheus.CounterOpts{Name: "test_counter_" + id.GenerateNewID()}, nil)
-		prometheus.MustRegister(m)
-		assert.Panics(t, func() { m.With(prometheus.Labels{"a": "v_a1", "b": "v_b1"}).Inc() })
-	})
-
-	t.Run("Metrics allow dynamically assigned label values", func(t *testing.T) {
-		l := serveMetricsHTTP(t)
-		defer func() { _ = l.Close() }()
-
-		name := "test_counter_" + id.GenerateNewID()
-		m := prometheus.NewCounterVec(prometheus.CounterOpts{Name: name}, []string{"a", "b"})
-		prometheus.MustRegister(m)
-		m.With(prometheus.Labels{"a": "v_a1", "b": "v_b1"}).Inc()
-
-		resp, err := http.Get(fmt.Sprintf("http://%s/metrics", l.Addr().String()))
-		require.NoError(t, err)
-		defer resp.Body.Close()
-		b, err := io.ReadAll(resp.Body)
-		require.NoError(t, err)
-		// fmt.Println(string(b))
-		assert.Contains(t, string(b), name+"{a=\"v_a1\",b=\"v_b1\"} 1")
-	})
-
-	t.Run("Metrics with constant label values", func(t *testing.T) {
-		l := serveMetricsHTTP(t)
-		defer func() { _ = l.Close() }()
-
-		name := "test_counter_" + id.GenerateNewID()
-		m := prometheus.NewCounterVec(prometheus.CounterOpts{
-			Namespace:   "test_namespace",
-			Subsystem:   "test_subsystem",
-			Name:        name,
-			Help:        "Test Help",
-			ConstLabels: prometheus.Labels{"const_1": "val_1"},
-		}, []string{"a", "b"})
-		prometheus.MustRegister(m)
-		m.With(prometheus.Labels{"a": "v_a1", "b": "v_b1"}).Inc()
-
-		resp, err := http.Get(fmt.Sprintf("http://%s/metrics", l.Addr().String()))
-		require.NoError(t, err)
-		defer resp.Body.Close()
-		b, err := io.ReadAll(resp.Body)
-		require.NoError(t, err)
-		// fmt.Println(string(b))
-		assert.Contains(t, string(b), name+"{a=\"v_a1\",b=\"v_b1\",const_1=\"val_1\"} 1")
-	})
-
-	t.Run("Multiple metrics registered with the same name and labels combine into metric family", func(t *testing.T) {
-		registry := prometheus.NewRegistry()
-
-		name := "test_counter_" + id.GenerateNewID()
-		m1 := prometheus.NewCounterVec(prometheus.CounterOpts{Name: name, ConstLabels: prometheus.Labels{"const_1": "val_1"}}, []string{"a1", "b1"})
-		registry.MustRegister(m1)
-		m1.With(prometheus.Labels{"a1": "v_a1", "b1": "v_b1"}).Inc()
-
-		m2 := prometheus.NewCounterVec(prometheus.CounterOpts{Name: name, ConstLabels: prometheus.Labels{"const_1": "val_2"}}, []string{"a1", "b1"})
-		registry.MustRegister(m2)
-		m2.With(prometheus.Labels{"a1": "v_a2", "b1": "v_b2"}).Inc()
-		assert.Panics(t, func() { m2.With(prometheus.Labels{"c": "v3"}).Inc() }, "Невозможно добавить метку, которая не была зарегистрирована при создании метрики")
-
-		assert.Panics(t, func() {
-			m3 := prometheus.NewCounterVec(prometheus.CounterOpts{Name: name, ConstLabels: prometheus.Labels{"const_2": "val_2"}}, []string{"a3", "b3"})
-			registry.MustRegister(m3)
-		}, "Невозможно зарегистрировать метрики с одним названием, но разными метками")
-
-		metricsFamily, err := registry.Gather()
-		require.NoError(t, err)
-		require.Len(t, metricsFamily, 1)
-
-		assert.Equal(t, name, *metricsFamily[0].Name)
-		require.Len(t, metricsFamily[0].Metric, 2)
-
-		registeredMetric1 := metricsFamily[0].Metric[0]
-		assert.Equal(t,
-			[]*dto.LabelPair{
-				{Name: optional.Ptr("a1"), Value: optional.Ptr("v_a1")},
-				{Name: optional.Ptr("b1"), Value: optional.Ptr("v_b1")},
-				{Name: optional.Ptr("const_1"), Value: optional.Ptr("val_1")},
-			},
-			registeredMetric1.Label,
-		)
-
-		registeredMetric2 := metricsFamily[0].Metric[1]
-		assert.Equal(t,
-			[]*dto.LabelPair{
-				{Name: optional.Ptr("a1"), Value: optional.Ptr("v_a2")},
-				{Name: optional.Ptr("b1"), Value: optional.Ptr("v_b2")},
-				{Name: optional.Ptr("const_1"), Value: optional.Ptr("val_2")},
-			},
-			registeredMetric2.Label,
-		)
-	})
-}
-- 
GitLab