diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:20 +0000 |
commit | 87d772a7d708fec12f48cd8adc0dedff6e1025da (patch) | |
tree | 1fee344c64cc3f43074a01981e21126c8482a522 /src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go | |
parent | Adding upstream version 1.46.3. (diff) | |
download | netdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.tar.xz netdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.zip |
Adding upstream version 1.47.0.upstream/1.47.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go')
-rw-r--r-- | src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go b/src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go deleted file mode 100644 index 76199800a..000000000 --- a/src/go/collectors/go.d.plugin/pkg/prometheus/client_test.go +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -package prometheus - -import ( - "bytes" - "compress/gzip" - "net/http" - "net/http/httptest" - "os" - "strings" - "testing" - - "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus/selector" - "github.com/netdata/netdata/go/go.d.plugin/pkg/web" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -var ( - testData, _ = os.ReadFile("testdata/testdata.txt") - testDataNoMeta, _ = os.ReadFile("testdata/testdata.nometa.txt") -) - -func Test_testClientDataIsValid(t *testing.T) { - for name, data := range map[string][]byte{ - "testData": testData, - } { - require.NotNilf(t, data, name) - } -} - -func TestPrometheus404(t *testing.T) { - tsMux := http.NewServeMux() - tsMux.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(404) - }) - ts := httptest.NewServer(tsMux) - defer ts.Close() - - req := web.Request{URL: ts.URL + "/metrics"} - prom := New(http.DefaultClient, req) - res, err := prom.ScrapeSeries() - - assert.Error(t, err) - assert.Nil(t, res) -} - -func TestPrometheusPlain(t *testing.T) { - tsMux := http.NewServeMux() - tsMux.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write(testData) - }) - ts := httptest.NewServer(tsMux) - defer ts.Close() - - req := web.Request{URL: ts.URL + "/metrics"} - prom := New(http.DefaultClient, req) - res, err := prom.ScrapeSeries() - - assert.NoError(t, err) - verifyTestData(t, res) -} - -func TestPrometheusPlainWithSelector(t *testing.T) { - tsMux := http.NewServeMux() - tsMux.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write(testData) - }) - ts := httptest.NewServer(tsMux) - defer ts.Close() - - req := web.Request{URL: ts.URL + "/metrics"} - sr, err := selector.Parse("go_gc*") - require.NoError(t, err) - prom := NewWithSelector(http.DefaultClient, req, sr) - - res, err := prom.ScrapeSeries() - require.NoError(t, err) - - for _, v := range res { - assert.Truef(t, strings.HasPrefix(v.Name(), "go_gc"), v.Name()) - } -} - -func TestPrometheusGzip(t *testing.T) { - counter := 0 - rawTestData := [][]byte{testData, testDataNoMeta} - tsMux := http.NewServeMux() - tsMux.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Encoding", "gzip") - w.WriteHeader(200) - gz := new(bytes.Buffer) - ww := gzip.NewWriter(gz) - _, _ = ww.Write(rawTestData[counter]) - _ = ww.Close() - _, _ = gz.WriteTo(w) - counter++ - }) - ts := httptest.NewServer(tsMux) - defer ts.Close() - - req := web.Request{URL: ts.URL + "/metrics"} - prom := New(http.DefaultClient, req) - - for i := 0; i < 2; i++ { - res, err := prom.ScrapeSeries() - assert.NoError(t, err) - verifyTestData(t, res) - } -} - -func TestPrometheusReadFromFile(t *testing.T) { - req := web.Request{URL: "file://testdata/testdata.txt"} - prom := NewWithSelector(http.DefaultClient, req, nil) - - for i := 0; i < 2; i++ { - res, err := prom.ScrapeSeries() - assert.NoError(t, err) - verifyTestData(t, res) - } -} - -func verifyTestData(t *testing.T, ms Series) { - assert.Equal(t, 410, len(ms)) - assert.Equal(t, "go_gc_duration_seconds", ms[0].Labels.Get("__name__")) - assert.Equal(t, "0.25", ms[0].Labels.Get("quantile")) - assert.InDelta(t, 4.9351e-05, ms[0].Value, 0.0001) - - notExistYet := ms.FindByName("not_exist_yet") - assert.NotNil(t, notExistYet) - assert.Len(t, notExistYet, 0) - - targetInterval := ms.FindByName("prometheus_target_interval_length_seconds") - assert.Len(t, targetInterval, 5) -} |