(t *testing.T)
| 634 | } |
| 635 | |
| 636 | func TestLimiter_FormatError(t *testing.T) { |
| 637 | // Mock the ring |
| 638 | ring := &ringCountMock{} |
| 639 | ring.On("HealthyInstancesCount").Return(3) |
| 640 | ring.On("ZonesCount").Return(1) |
| 641 | |
| 642 | // Mock limits |
| 643 | limits := validation.NewOverrides(validation.Limits{ |
| 644 | MaxGlobalSeriesPerUser: 100, |
| 645 | MaxGlobalNativeHistogramSeriesPerUser: 100, |
| 646 | MaxGlobalSeriesPerMetric: 20, |
| 647 | MaxGlobalMetricsWithMetadataPerUser: 10, |
| 648 | MaxGlobalMetadataPerMetric: 3, |
| 649 | }, nil) |
| 650 | |
| 651 | limiter := NewLimiter(limits, ring, util.ShardingStrategyDefault, true, 3, false, "please contact administrator to raise it") |
| 652 | lbls := labels.FromStrings(labels.MetricName, "testMetric") |
| 653 | |
| 654 | actual := limiter.FormatError("user-1", errMaxSeriesPerUserLimitExceeded, lbls) |
| 655 | assert.EqualError(t, actual, "per-user series limit of 100 exceeded, please contact administrator to raise it (local limit: 0 global limit: 100 actual local limit: 100)") |
| 656 | |
| 657 | actual = limiter.FormatError("user-1", errMaxNativeHistogramSeriesPerUserLimitExceeded, lbls) |
| 658 | assert.EqualError(t, actual, "per-user native histogram series limit of 100 exceeded, please contact administrator to raise it (local limit: 0 global limit: 100 actual local limit: 100)") |
| 659 | |
| 660 | actual = limiter.FormatError("user-1", errMaxSeriesPerMetricLimitExceeded, lbls) |
| 661 | assert.EqualError(t, actual, "per-metric series limit of 20 exceeded for metric testMetric, please contact administrator to raise it (local limit: 0 global limit: 20 actual local limit: 20)") |
| 662 | |
| 663 | actual = limiter.FormatError("user-1", errMaxMetadataPerUserLimitExceeded, lbls) |
| 664 | assert.EqualError(t, actual, "per-user metric metadata limit of 10 exceeded, please contact administrator to raise it (local limit: 0 global limit: 10 actual local limit: 10)") |
| 665 | |
| 666 | actual = limiter.FormatError("user-1", errMaxMetadataPerMetricLimitExceeded, lbls) |
| 667 | assert.EqualError(t, actual, "per-metric metadata limit of 3 exceeded for metric testMetric, please contact administrator to raise it (local limit: 0 global limit: 3 actual local limit: 3)") |
| 668 | |
| 669 | input := errors.New("unknown error") |
| 670 | actual = limiter.FormatError("user-1", input, lbls) |
| 671 | assert.Equal(t, input, actual) |
| 672 | } |
| 673 | |
| 674 | func TestLimiter_minNonZero(t *testing.T) { |
| 675 | t.Parallel() |
nothing calls this directly
no test coverage detected