(t *testing.T)
| 394 | } |
| 395 | |
| 396 | func TestRecordAndReportRuleQueryMetrics(t *testing.T) { |
| 397 | metrics := NewRuleEvalMetrics(Config{EnableQueryStats: true}, prometheus.DefaultRegisterer) |
| 398 | |
| 399 | mockFunc := func(ctx context.Context, q string, t time.Time) (promql.Vector, error) { |
| 400 | queryStats := stats.FromContext(ctx) |
| 401 | queryStats.AddFetchedSeries(2) |
| 402 | queryStats.AddFetchedSamples(2) |
| 403 | queryStats.AddFetchedChunkBytes(10) |
| 404 | queryStats.AddFetchedDataBytes(14) |
| 405 | time.Sleep(1 * time.Second) |
| 406 | return promql.Vector{}, nil |
| 407 | } |
| 408 | qf := recordAndReportRuleQueryMetrics(mockFunc, "userID", metrics, log.NewNopLogger()) |
| 409 | _, _ = qf(context.Background(), "test", time.Now()) |
| 410 | |
| 411 | require.GreaterOrEqual(t, testutil.ToFloat64(metrics.RulerQuerySeconds.WithLabelValues("userID")), float64(1)) |
| 412 | require.Equal(t, testutil.ToFloat64(metrics.RulerQuerySeries.WithLabelValues("userID")), float64(2)) |
| 413 | require.Equal(t, testutil.ToFloat64(metrics.RulerQuerySamples.WithLabelValues("userID")), float64(2)) |
| 414 | require.Equal(t, testutil.ToFloat64(metrics.RulerQueryChunkBytes.WithLabelValues("userID")), float64(10)) |
| 415 | require.Equal(t, testutil.ToFloat64(metrics.RulerQueryDataBytes.WithLabelValues("userID")), float64(14)) |
| 416 | } |
| 417 | func TestPusherAppender_Commit_WithDiscardOutOfOrder(t *testing.T) { |
| 418 | pusher := &fakePusher{response: &cortexpb.WriteResponse{}} |
| 419 | counter := prometheus.NewCounter(prometheus.CounterOpts{Name: "test"}) |
nothing calls this directly
no test coverage detected