MCPcopy Create free account
hub / github.com/cortexproject/cortex / TestOTLP

Function TestOTLP

integration/otlp_test.go:27–114  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

25)
26
27func TestOTLP(t *testing.T) {
28 s, err := e2e.NewScenario(networkName)
29 require.NoError(t, err)
30 defer s.Close()
31
32 // Start dependencies.
33 minio := e2edb.NewMinio(9000, bucketName)
34 require.NoError(t, s.StartAndWaitReady(minio))
35
36 // Start Cortex components.
37 require.NoError(t, copyFileToSharedDir(s, "docs/configuration/single-process-config-blocks.yaml", cortexConfigFile))
38
39 // Start Cortex in single binary mode, reading the config from file and overwriting
40 // the backend config to make it work with Minio.
41 flags := map[string]string{
42 "-blocks-storage.s3.access-key-id": e2edb.MinioAccessKey,
43 "-blocks-storage.s3.secret-access-key": e2edb.MinioSecretKey,
44 "-blocks-storage.s3.bucket-name": bucketName,
45 "-blocks-storage.s3.endpoint": fmt.Sprintf("%s-minio-9000:9000", networkName),
46 "-blocks-storage.s3.insecure": "true",
47 "-blocks-storage.tsdb.enable-native-histograms": "true",
48 // alert manager
49 "-alertmanager.web.external-url": "http://localhost/alertmanager",
50 "-alertmanager-storage.backend": "local",
51 "-alertmanager-storage.local.path": filepath.Join(e2e.ContainerSharedDir, "alertmanager_configs"),
52 }
53 // make alert manager config dir
54 require.NoError(t, writeFileToSharedDir(s, "alertmanager_configs", []byte{}))
55
56 cortex := e2ecortex.NewSingleBinaryWithConfigFile("cortex-1", cortexConfigFile, flags, "", 9009, 9095)
57 require.NoError(t, s.StartAndWaitReady(cortex))
58
59 c, err := e2ecortex.NewClient(cortex.HTTPEndpoint(), cortex.HTTPEndpoint(), "", "", "user-1")
60 require.NoError(t, err)
61
62 // Push some series to Cortex.
63 now := time.Now()
64 series, expectedVector := generateSeries("series_1_total", now, prompb.Label{Name: "foo", Value: "bar"})
65
66 metadata := []prompb.MetricMetadata{
67 {
68 Help: "help",
69 Unit: "total",
70 },
71 }
72
73 res, err := c.OTLP(series, metadata)
74 require.NoError(t, err)
75 require.Equal(t, 200, res.StatusCode)
76
77 // Query the series.
78 result, err := c.Query("series_1_total", now)
79 require.NoError(t, err)
80 require.Equal(t, model.ValVector, result.Type())
81 assert.Equal(t, expectedVector, result.(model.Vector))
82
83 labelValues, err := c.LabelValues("foo", time.Time{}, time.Time{}, nil)
84 require.NoError(t, err)

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
OTLPMethod · 0.95
QueryMethod · 0.95
LabelValuesMethod · 0.95
LabelNamesMethod · 0.95
MetadataMethod · 0.95
QueryRangeMethod · 0.95
NewScenarioFunction · 0.92
NewClientFunction · 0.92
GenerateHistogramSeriesFunction · 0.92

Tested by

no test coverage detected