(t *testing.T)
| 241 | } |
| 242 | |
| 243 | func TestManagedRegistry_limited(t *testing.T) { |
| 244 | appender := &capturingAppender{} |
| 245 | |
| 246 | overrides := &mockOverrides{} |
| 247 | atLimit := false |
| 248 | overflowLabels := labels.FromStrings("metric_overflow", "true") |
| 249 | overflowHash := overflowLabels.Hash() |
| 250 | limiter := &mockLimiter{ |
| 251 | onAddFunc: func(hash uint64, _ uint32, lbls labels.Labels) (labels.Labels, uint64) { |
| 252 | if !atLimit { |
| 253 | return lbls, hash |
| 254 | } |
| 255 | return overflowLabels, overflowHash |
| 256 | }, |
| 257 | } |
| 258 | registry := New(&Config{}, overrides, "test", appender, log.NewNopLogger(), limiter) |
| 259 | defer registry.Close() |
| 260 | |
| 261 | counter1 := registry.NewCounter("metric_1") |
| 262 | counter2 := registry.NewCounter("metric_2") |
| 263 | |
| 264 | counter1.Inc(buildTestLabels([]string{"label"}, []string{"value-1"}), 1.0) |
| 265 | atLimit = true |
| 266 | // these series should be mapped to overflow |
| 267 | counter1.Inc(buildTestLabels([]string{"label"}, []string{"value-2"}), 1.0) |
| 268 | counter2.Inc(labels.New(), 1.0) |
| 269 | |
| 270 | // 1 accepted series + 2 overflow series (one per metric) = 3 total |
| 271 | assert.Equal(t, uint32(3), registry.activeSeries()) |
| 272 | expectedSamples := []sample{ |
| 273 | newSample(map[string]string{"__name__": "metric_1", "label": "value-1", "__metrics_gen_instance": mustGetHostname()}, 0, 0), |
| 274 | newSample(map[string]string{"__name__": "metric_1", "label": "value-1", "__metrics_gen_instance": mustGetHostname()}, 0, 1), |
| 275 | newSample(map[string]string{"__name__": "metric_1", "metric_overflow": "true", "__metrics_gen_instance": mustGetHostname()}, 0, 0), |
| 276 | newSample(map[string]string{"__name__": "metric_1", "metric_overflow": "true", "__metrics_gen_instance": mustGetHostname()}, 0, 1), |
| 277 | newSample(map[string]string{"__name__": "metric_2", "metric_overflow": "true", "__metrics_gen_instance": mustGetHostname()}, 0, 0), |
| 278 | newSample(map[string]string{"__name__": "metric_2", "metric_overflow": "true", "__metrics_gen_instance": mustGetHostname()}, 0, 1), |
| 279 | } |
| 280 | collectRegistryMetricsAndAssert(t, registry, appender, expectedSamples) |
| 281 | } |
| 282 | |
| 283 | func TestManagedRegistry_maxEntities(t *testing.T) { |
| 284 | appender := &capturingAppender{} |
nothing calls this directly
no test coverage detected