protected void setupEndpointAggregateMetrics(MetricRegistry metricRegistry) { // codahale this.requests = createAndRegisterRequestTimer(name(prefix, "requests"), metricRegistry); this.responses = new Meter[]{ metricRegistry.meter(name(prefix, "1xx-responses")), // 1xx metricRegistry.meter(name(prefix, "2xx-responses")), // 2xx metricRegistry.meter(name(prefix, "3xx-responses")), // 3xx metricRegistry.meter(name(prefix, "4xx-responses")), // 4xx metricRegistry.meter(name(prefix, "5xx-responses")) // 5xx }; this.getRequests = createAndRegisterRequestTimer(name(prefix, "get-requests"), metricRegistry); this.postRequests = createAndRegisterRequestTimer(name(prefix, "post-requests"), metricRegistry); this.putRequests = createAndRegisterRequestTimer(name(prefix, "put-requests"), metricRegistry); this.deleteRequests = createAndRegisterRequestTimer(name(prefix, "delete-requests"), metricRegistry); this.otherRequests = createAndRegisterRequestTimer(name(prefix, "other-requests"), metricRegistry); }
+ timerAndMeterMapKeyForEndpoint); endpointRequestsTimers.put(timerAndMeterMapKeyForEndpoint, createAndRegisterRequestTimer(name, metricRegistry)); .put(ENDPOINT_NOT_FOUND_MAP_KEY, createAndRegisterRequestTimer(notFoundNameId, metricRegistry)); endpointResponsesMeters.put(ENDPOINT_NOT_FOUND_MAP_KEY, new Meter[]{ metricRegistry.meter(name(notFoundNameId, "4xx-responses"))}); .put(METHOD_NOT_ALLOWED_MAP_KEY, createAndRegisterRequestTimer(methodNotAllowedNameId, metricRegistry)); endpointResponsesMeters.put(METHOD_NOT_ALLOWED_MAP_KEY, new Meter[]{ metricRegistry.meter(name(methodNotAllowedNameId, "4xx-responses"))}); .put(ROUTING_ERROR_MAP_KEY, createAndRegisterRequestTimer(routingErrorNameId, metricRegistry)); endpointResponsesMeters.put(ROUTING_ERROR_MAP_KEY, new Meter[]{ metricRegistry.meter(name(routingErrorNameId, "5xx-responses"))}); .put(NO_ENDPOINT_SHORT_CIRCUIT_KEY, createAndRegisterRequestTimer(shortCircuitNameId, metricRegistry)); endpointResponsesMeters.put(NO_ENDPOINT_SHORT_CIRCUIT_KEY, new Meter[]{ metricRegistry.meter(name(shortCircuitNameId, "1xx-responses")), // 1xx
@Test public void createAndRegisterRequestTimer_should_use_requestTimerGenerator() { // given Timer timerMock = mock(Timer.class); Supplier<Timer> timerSupplier = () -> timerMock; EndpointMetricsHandlerDefaultImpl newImpl = new EndpointMetricsHandlerDefaultImpl(timerSupplier); // when Timer result = newImpl.createAndRegisterRequestTimer("foo", metricRegistryMock); // then assertThat(result).isSameAs(timerMock); }
Timer originalTimer = (Timer) invocation.callRealMethod(); return spy(originalTimer); }).when(instance).createAndRegisterRequestTimer(anyString(), any(MetricRegistry.class));
MetricRegistry registry = invocation.getArgumentAt(1, MetricRegistry.class); return registry.register(name, mock(Timer.class)); }).when(newImpl).createAndRegisterRequestTimer(anyString(), any(MetricRegistry.class));