|
3 | 3 | package pqueriertest
|
4 | 4 |
|
5 | 5 | import (
|
6 |
| - "github.com/v3io/v3io-tsdb/pkg/aggregate" |
| 6 | + "fmt" |
7 | 7 | "testing"
|
8 | 8 | "time"
|
9 | 9 |
|
10 | 10 | "github.com/stretchr/testify/assert"
|
11 | 11 | "github.com/stretchr/testify/suite"
|
| 12 | + "github.com/v3io/v3io-tsdb/pkg/aggregate" |
12 | 13 | "github.com/v3io/v3io-tsdb/pkg/pquerier"
|
13 | 14 | "github.com/v3io/v3io-tsdb/pkg/tsdb"
|
14 | 15 | "github.com/v3io/v3io-tsdb/pkg/tsdb/tsdbtest"
|
@@ -221,3 +222,63 @@ func (suite *testVariantTypeSuite) TestCountAggregationForVariantTypeQueryWithSe
|
221 | 222 |
|
222 | 223 | assert.Equal(suite.T(), 1, seriesCount, "series count didn't match expected")
|
223 | 224 | }
|
| 225 | + |
| 226 | +func (suite *testVariantTypeSuite) TestVariantTypeQueryWithSeriesAlotOfData() { |
| 227 | + adapter, err := tsdb.NewV3ioAdapter(suite.v3ioConfig, nil, nil) |
| 228 | + if err != nil { |
| 229 | + suite.T().Fatalf("failed to create v3io adapter. reason: %s", err) |
| 230 | + } |
| 231 | + |
| 232 | + metricName := "log" |
| 233 | + labels := utils.LabelsFromStringList("os", "linux", "__name__", metricName) |
| 234 | + |
| 235 | + numberOfEvents := 1000 |
| 236 | + dataToIngest := make([]tsdbtest.DataPoint, numberOfEvents) |
| 237 | + for i := 0; i < numberOfEvents; i++ { |
| 238 | + dataToIngest[i] = tsdbtest.DataPoint{Time: suite.basicQueryTime + int64(i)*tsdbtest.MinuteInMillis, |
| 239 | + Value: fmt.Sprintf("%v", i)} |
| 240 | + } |
| 241 | + |
| 242 | + appender, err := adapter.Appender() |
| 243 | + if err != nil { |
| 244 | + suite.T().Fatalf("failed to create v3io appender. reason: %s", err) |
| 245 | + } |
| 246 | + |
| 247 | + ref, err := appender.Add(labels, dataToIngest[0].Time, dataToIngest[0].Value) |
| 248 | + if err != nil { |
| 249 | + suite.T().Fatalf("Failed to add data to the TSDB appender. Reason: %s", err) |
| 250 | + } |
| 251 | + for i := 1; i < numberOfEvents; i++ { |
| 252 | + appender.AddFast(labels, ref, dataToIngest[i].Time, dataToIngest[i].Value) |
| 253 | + } |
| 254 | + |
| 255 | + if _, err := appender.WaitForCompletion(0); err != nil { |
| 256 | + suite.T().Fatalf("Failed to wait for TSDB append completion. Reason: %s", err) |
| 257 | + } |
| 258 | + |
| 259 | + querierV2, err := adapter.QuerierV2() |
| 260 | + if err != nil { |
| 261 | + suite.T().Fatalf("Failed to create querier v2, err: %v", err) |
| 262 | + } |
| 263 | + |
| 264 | + params := &pquerier.SelectParams{RequestedColumns: []pquerier.RequestedColumn{{Metric: metricName}}, |
| 265 | + From: suite.basicQueryTime - tsdbtest.DaysInMillis, To: suite.basicQueryTime + tsdbtest.DaysInMillis} |
| 266 | + iter, err := querierV2.Select(params) |
| 267 | + if err != nil { |
| 268 | + suite.T().Fatalf("Failed to exeute query, err: %v", err) |
| 269 | + } |
| 270 | + var seriesCount int |
| 271 | + for iter.Next() { |
| 272 | + seriesCount++ |
| 273 | + iter := iter.At().Iterator() |
| 274 | + var slice []tsdbtest.DataPoint |
| 275 | + for iter.Next() { |
| 276 | + t, v := iter.AtString() |
| 277 | + slice = append(slice, tsdbtest.DataPoint{Time: t, Value: v}) |
| 278 | + } |
| 279 | + |
| 280 | + suite.Require().Equal(dataToIngest, slice, "number of events mismatch") |
| 281 | + } |
| 282 | + |
| 283 | + assert.Equal(suite.T(), 1, seriesCount, "series count didn't match expected") |
| 284 | +} |
0 commit comments