mirror of https://github.com/grafana/loki
Add integration for SSD (read & write targets) (#6585)
* Add integration for SSD (read & write targets) * Hardcode randStringRunes to fix linterpull/6626/head
parent
f17d3d768c
commit
5073b48b62
@ -0,0 +1,75 @@ |
||||
package integration |
||||
|
||||
import ( |
||||
"testing" |
||||
"time" |
||||
|
||||
"github.com/stretchr/testify/assert" |
||||
"github.com/stretchr/testify/require" |
||||
|
||||
"github.com/grafana/loki/integration/client" |
||||
"github.com/grafana/loki/integration/cluster" |
||||
) |
||||
|
||||
func TestSimpleScalableIngestQuery(t *testing.T) { |
||||
clu := cluster.New() |
||||
defer func() { |
||||
assert.NoError(t, clu.Cleanup()) |
||||
}() |
||||
|
||||
var ( |
||||
tRead = clu.AddComponent( |
||||
"read", |
||||
"-target=read", |
||||
) |
||||
tWrite = clu.AddComponent( |
||||
"write", |
||||
"-target=write", |
||||
) |
||||
) |
||||
|
||||
require.NoError(t, clu.Run()) |
||||
|
||||
tenantID := randStringRunes() |
||||
|
||||
now := time.Now() |
||||
cliWrite := client.New(tenantID, "", tWrite.HTTPURL().String()) |
||||
cliWrite.Now = now |
||||
cliRead := client.New(tenantID, "", tRead.HTTPURL().String()) |
||||
cliRead.Now = now |
||||
|
||||
t.Run("ingest logs", func(t *testing.T) { |
||||
// ingest some log lines
|
||||
require.NoError(t, cliWrite.PushLogLineWithTimestamp("lineA", now.Add(-45*time.Minute), map[string]string{"job": "fake"})) |
||||
require.NoError(t, cliWrite.PushLogLineWithTimestamp("lineB", now.Add(-45*time.Minute), map[string]string{"job": "fake"})) |
||||
|
||||
require.NoError(t, cliWrite.PushLogLine("lineC", map[string]string{"job": "fake"})) |
||||
require.NoError(t, cliWrite.PushLogLine("lineD", map[string]string{"job": "fake"})) |
||||
}) |
||||
|
||||
t.Run("query", func(t *testing.T) { |
||||
resp, err := cliRead.RunRangeQuery(`{job="fake"}`) |
||||
require.NoError(t, err) |
||||
assert.Equal(t, "streams", resp.Data.ResultType) |
||||
|
||||
var lines []string |
||||
for _, stream := range resp.Data.Stream { |
||||
for _, val := range stream.Values { |
||||
lines = append(lines, val[1]) |
||||
} |
||||
} |
||||
assert.ElementsMatch(t, []string{"lineA", "lineB", "lineC", "lineD"}, lines) |
||||
}) |
||||
|
||||
t.Run("label-names", func(t *testing.T) { |
||||
resp, err := cliRead.LabelNames() |
||||
require.NoError(t, err) |
||||
assert.ElementsMatch(t, []string{"job"}, resp) |
||||
}) |
||||
|
||||
t.Run("label-values", func(t *testing.T) { |
||||
resp, err := cliRead.LabelValues("job") |
||||
require.NoError(t, err) |
||||
assert.ElementsMatch(t, []string{"fake"}, resp) |
||||
}) |
||||
} |
||||
Loading…
Reference in new issue