@Bean public RateLimiterExports rateLimiterPrometheusCollector(RateLimiterRegistry rateLimiterRegistry){ RateLimiterExports collector = RateLimiterExports.ofRateLimiterRegistry(rateLimiterRegistry); collector.register(); return collector; } }
@Test public void testExportsRateLimiterMetrics() { // Given final CollectorRegistry registry = new CollectorRegistry(); final RateLimiter rateLimiter = RateLimiter.ofDefaults("foo"); RateLimiterExports.ofIterable("boo_rate_limiter", singletonList(rateLimiter)).register(registry); final Supplier<Map<String, Double>> values = () -> HashSet .of("available_permissions", "waiting_threads") .map(param -> Tuple.of(param, registry.getSampleValue( "boo_rate_limiter", new String[]{"name", "param"}, new String[]{"foo", param}))) .toMap(t -> t); // When final Map<String, Double> initialValues = values.get(); // Then assertThat(initialValues).isEqualTo(HashMap.of( "available_permissions", 50.0, "waiting_threads", 0.0 )); }
RateLimiterExports rateLimiterExports = RateLimiterExports.ofRateLimiterRegistry(rateLimiterRegistry); circuitBreakerExports.register(collectorRegistry); rateLimiterExports.register(collectorRegistry);
RateLimiterExports rateLimiterExports = RateLimiterExports.ofRateLimiterRegistry(rateLimiterRegistry); circuitBreakerExports.register(collectorRegistry); rateLimiterExports.register(collectorRegistry);