@Test public void metricNamingStrategy_defaultImpl_with_args_method_works_as_expected() { // given String prefix = UUID.randomUUID().toString(); String wordDelimiter = UUID.randomUUID().toString(); // when MetricNamingStrategy result = MetricNamingStrategy.defaultImpl(prefix, wordDelimiter); // then assertThat(result).isInstanceOf(DefaultMetricNamingStrategy.class); DefaultMetricNamingStrategy defStrat = (DefaultMetricNamingStrategy)result; assertThat(defStrat.prefix).isEqualTo(prefix); assertThat(defStrat.wordDelimiter).isEqualTo(wordDelimiter); }
@Test public void metricNamingStrategy_defaultNoPrefixImpl_method_works_as_expected() { // when MetricNamingStrategy result = MetricNamingStrategy.defaultNoPrefixImpl(); // then assertThat(result).isInstanceOf(DefaultMetricNamingStrategy.class); DefaultMetricNamingStrategy defStrat = (DefaultMetricNamingStrategy)result; assertThat(defStrat.prefix).isEqualTo(null); assertThat(defStrat.wordDelimiter).isEqualTo(DEFAULT_WORD_DELIMITER); }
/** * Adds metrics related to the given ServerConfig - usually gauges so you can inspect how the ServerConfig was setup. * Usually not needed - better to log this info on startup. */ protected void addServerConfigMetrics(ServerConfig config) { // add server config gauges metricsCollector.registerNamedMetric(serverConfigMetricNamingStrategy.nameFor(BOSS_THREADS), (Gauge<Integer>)config::numBossThreads); metricsCollector.registerNamedMetric(serverConfigMetricNamingStrategy.nameFor(WORKER_THREADS), (Gauge<Integer>)config::numWorkerThreads); metricsCollector.registerNamedMetric(serverConfigMetricNamingStrategy.nameFor(MAX_REQUEST_SIZE_IN_BYTES), (Gauge<Integer>)config::maxRequestSizeInBytes); List<String> endpointsList = config.appEndpoints() .stream() .map( endpoint -> endpoint.getClass().getName() + "-" + getMatchingHttpMethodsAsCombinedString(endpoint) + "-" + endpoint.requestMatcher().matchingPathTemplates() ) .collect(Collectors.toList()); metricsCollector.registerNamedMetric(serverConfigMetricNamingStrategy.nameFor(ENDPOINTS), (Gauge<List<String>>)() -> endpointsList); }
serverStatsMetricNamingStrategy = MetricNamingStrategy.defaultImpl();
protected void addServerStatisticsMetrics() { this.inflightRequests = metricsCollector.getNamedCounter( serverStatsMetricNamingStrategy.nameFor(INFLIGHT_REQUESTS) ); this.processedRequests = metricsCollector.getNamedCounter( serverStatsMetricNamingStrategy.nameFor(PROCESSED_REQUESTS) ); this.failedRequests = metricsCollector.getNamedCounter( serverStatsMetricNamingStrategy.nameFor(FAILED_REQUESTS) ); this.responseWriteFailed = metricsCollector.getNamedCounter( serverStatsMetricNamingStrategy.nameFor(RESPONSE_WRITE_FAILED) ); this.responseSizes = metricsCollector.registerNamedMetric( serverStatsMetricNamingStrategy.nameFor(RESPONSE_SIZES), requestAndResponseSizeHistogramSupplier.get() ); this.requestSizes = metricsCollector.registerNamedMetric( serverStatsMetricNamingStrategy.nameFor(REQUEST_SIZES), requestAndResponseSizeHistogramSupplier.get() ); }
/** * @return A {@link DefaultMetricNamingStrategy} that has no prefix but is otherwise default. */ static <T extends Enum> MetricNamingStrategy<T> defaultNoPrefixImpl() { return defaultImpl(null, DefaultMetricNamingStrategy.DEFAULT_WORD_DELIMITER); }
@Test public void metricNamingStrategy_defaultImpl_no_args_method_works_as_expected() { // when MetricNamingStrategy result = MetricNamingStrategy.defaultImpl(); // then assertThat(result).isInstanceOf(DefaultMetricNamingStrategy.class); DefaultMetricNamingStrategy defStrat = (DefaultMetricNamingStrategy)result; assertThat(defStrat.prefix).isEqualTo(DEFAULT_PREFIX); assertThat(defStrat.wordDelimiter).isEqualTo(DEFAULT_WORD_DELIMITER); }