From 1b385a3e6fbe574ab5a05fb1bf71f85f45d542d1 Mon Sep 17 00:00:00 2001 From: dengliming Date: Sat, 29 Feb 2020 00:58:26 +0800 Subject: [PATCH] Add ExecutionAvgTime metrics in HibernateStatisticsCollector --- .../client/hibernate/HibernateStatisticsCollector.java | 10 ++++++++++ .../hibernate/HibernateStatisticsCollectorTest.java | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/simpleclient_hibernate/src/main/java/io/prometheus/client/hibernate/HibernateStatisticsCollector.java b/simpleclient_hibernate/src/main/java/io/prometheus/client/hibernate/HibernateStatisticsCollector.java index 32f07f8f9..f37c1521f 100644 --- a/simpleclient_hibernate/src/main/java/io/prometheus/client/hibernate/HibernateStatisticsCollector.java +++ b/simpleclient_hibernate/src/main/java/io/prometheus/client/hibernate/HibernateStatisticsCollector.java @@ -557,6 +557,16 @@ public double getValue(Statistics statistics, String query) { .getExecutionTotalTime()); } } + ), + createGaugeForQuery("hibernate_per_query_execution_seconds_avg", + "Accumulated execution time of query in seconds (based on getExecutionAvgTime)", + new ValueProviderPerQuery() { + @Override + public double getValue(Statistics statistics, String query) { + return toSeconds(statistics.getQueryStatistics(query) + .getExecutionAvgTime()); + } + } ) )); diff --git a/simpleclient_hibernate/src/test/java/io/prometheus/client/hibernate/HibernateStatisticsCollectorTest.java b/simpleclient_hibernate/src/test/java/io/prometheus/client/hibernate/HibernateStatisticsCollectorTest.java index b148ee108..a0010d87d 100644 --- a/simpleclient_hibernate/src/test/java/io/prometheus/client/hibernate/HibernateStatisticsCollectorTest.java +++ b/simpleclient_hibernate/src/test/java/io/prometheus/client/hibernate/HibernateStatisticsCollectorTest.java @@ -182,7 +182,7 @@ public void shouldPublishPerQueryMetricsWhenEnabled() { assertThat(getSampleForQuery("hibernate_per_query_execution_rows_total", "factory6", query), is(7.0)); assertThat(getSampleForQuery("hibernate_per_query_execution_total", "factory6", query), is(8.0)); assertThat(getSampleForQuery("hibernate_per_query_execution_seconds_total", "factory6", query), is(102.540d)); - + assertThat(getSampleForQuery("hibernate_per_query_execution_seconds_avg", "factory6", query), is(0.255d)); } @Test @@ -201,7 +201,8 @@ public void shouldNotPublishPerQueryMetricsByDefault() { assertThat(getSampleForQuery("hibernate_per_query_execution_min_seconds", "factory7", query), nullValue()); assertThat(getSampleForQuery("hibernate_per_query_execution_rows_total", "factory7", query), nullValue()); assertThat(getSampleForQuery("hibernate_per_query_execution_total", "factory7", query), nullValue()); - assertThat(getSampleForQuery("hibernate_per_query_execution_seconds", "factory7", query), nullValue()); + assertThat(getSampleForQuery("hibernate_per_query_execution_seconds_total", "factory7", query), nullValue()); + assertThat(getSampleForQuery("hibernate_per_query_execution_seconds_avg", "factory7", query), nullValue()); } @@ -216,6 +217,7 @@ private void mockQueryStatistics(String query) { when(queryStatistics.getExecutionRowCount()).thenReturn(7L); when(queryStatistics.getExecutionCount()).thenReturn(8L); when(queryStatistics.getExecutionTotalTime()).thenReturn(102540L); + when(queryStatistics.getExecutionAvgTime()).thenReturn(255L); } @Test