You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2018/09/24 15:28:34 UTC
[29/50] [abbrv] phoenix git commit: PHOENIX-4853 Add sql statement to
PhoenixMetricsLog interface for query level metrics logging
PHOENIX-4853 Add sql statement to PhoenixMetricsLog interface for query level metrics logging
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/e979241a
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/e979241a
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/e979241a
Branch: refs/heads/omid2
Commit: e979241ac9e7fb938c56a9e41b38f7d5aa3a56cd
Parents: eb79c5b
Author: Karan Mehta <ka...@gmail.com>
Authored: Fri Aug 17 13:02:08 2018 -0700
Committer: Karan Mehta <ka...@gmail.com>
Committed: Fri Aug 17 17:36:28 2018 -0700
----------------------------------------------------------------------
.../monitoring/PhoenixLoggingMetricsIT.java | 15 +++++++++---
.../phoenix/jdbc/LoggingPhoenixConnection.java | 16 ++++++-------
.../jdbc/LoggingPhoenixPreparedStatement.java | 13 +++++++----
.../phoenix/jdbc/LoggingPhoenixResultSet.java | 10 ++++----
.../phoenix/jdbc/LoggingPhoenixStatement.java | 24 ++++++++++++++++----
.../apache/phoenix/jdbc/PhoenixMetricsLog.java | 6 ++---
6 files changed, 56 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
index 02640e7..97b2c5d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixLoggingMetricsIT.java
@@ -43,6 +43,7 @@ public class PhoenixLoggingMetricsIT extends BasePhoenixMetricsIT {
private String tableName1;
private String tableName2;
private LoggingPhoenixConnection loggedConn;
+ private String loggedSql;
@Before
public void beforeTest() throws Exception {
@@ -75,7 +76,10 @@ public class PhoenixLoggingMetricsIT extends BasePhoenixMetricsIT {
rs.close();
assertTrue("Read metrics for not found for " + tableName1,
requestReadMetricsMap.get(tableName1).size() > 0);
+ assertTrue("Logged query doesn't match actual query", loggedSql.equals(query));
+
assertTrue("Overall read metrics for not found ", overAllQueryMetricsMap.size() > 0);
+ assertTrue("Logged query doesn't match actual query", loggedSql.equals(query));
// run UPSERT SELECT to verify mutation metrics are logged
String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " + tableName1;
@@ -120,7 +124,10 @@ public class PhoenixLoggingMetricsIT extends BasePhoenixMetricsIT {
rs.close();
assertTrue("Read metrics for not found for " + tableName1,
requestReadMetricsMap.get(tableName1).size() > 0);
+ assertTrue("Logged query doesn't match actual query", loggedSql.equals(query));
+
assertTrue("Overall read metrics for not found ", overAllQueryMetricsMap.size() > 0);
+ assertTrue("Logged query doesn't match actual query", loggedSql.equals(query));
// run UPSERT SELECT to verify mutation metrics are logged
String upsertSelect = "UPSERT INTO " + tableName2 + " SELECT * FROM " + tableName1;
@@ -155,18 +162,20 @@ public class PhoenixLoggingMetricsIT extends BasePhoenixMetricsIT {
return new LoggingPhoenixConnection(conn, new PhoenixMetricsLog() {
@Override
public void logOverAllReadRequestMetrics(
- Map<MetricType, Long> overAllQueryMetrics) {
+ Map<MetricType, Long> overAllQueryMetrics, String sql) {
overAllQueryMetricsMap.putAll(overAllQueryMetrics);
+ loggedSql = sql;
}
@Override
public void logRequestReadMetrics(
- Map<String, Map<MetricType, Long>> requestReadMetrics) {
+ Map<String, Map<MetricType, Long>> requestReadMetrics, String sql) {
requestReadMetricsMap.putAll(requestReadMetrics);
+ loggedSql = sql;
}
@Override
- public void logWriteMetricsfoForMutations(
+ public void logWriteMetricsfoForMutationsSinceLastReset(
Map<String, Map<MetricType, Long>> mutationWriteMetrics) {
mutationWriteMetricsMap.putAll(mutationWriteMetrics);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixConnection.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixConnection.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixConnection.java
index 9a2e00f..37917e2 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixConnection.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixConnection.java
@@ -61,7 +61,7 @@ public class LoggingPhoenixConnection extends DelegateConnection {
@Override
public PreparedStatement prepareStatement(String sql) throws SQLException {
return new LoggingPhoenixPreparedStatement(super.prepareStatement(sql),
- phoenixMetricsLog);
+ phoenixMetricsLog, sql);
}
@Override
@@ -69,40 +69,40 @@ public class LoggingPhoenixConnection extends DelegateConnection {
int resultSetConcurrency) throws SQLException {
return new LoggingPhoenixPreparedStatement(
super.prepareStatement(sql, resultSetType, resultSetConcurrency),
- phoenixMetricsLog);
+ phoenixMetricsLog, sql);
}
@Override
public PreparedStatement prepareStatement(String sql, int resultSetType,
int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return new LoggingPhoenixPreparedStatement(super.prepareStatement(sql, resultSetType,
- resultSetConcurrency, resultSetHoldability), phoenixMetricsLog);
+ resultSetConcurrency, resultSetHoldability), phoenixMetricsLog, sql);
}
@Override
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
throws SQLException {
return new LoggingPhoenixPreparedStatement(super.prepareStatement(sql, autoGeneratedKeys),
- phoenixMetricsLog);
+ phoenixMetricsLog, sql);
}
@Override
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
return new LoggingPhoenixPreparedStatement(super.prepareStatement(sql, columnIndexes),
- phoenixMetricsLog);
+ phoenixMetricsLog, sql);
}
@Override
public PreparedStatement prepareStatement(String sql, String[] columnNames)
throws SQLException {
return new LoggingPhoenixPreparedStatement(super.prepareStatement(sql, columnNames),
- phoenixMetricsLog);
+ phoenixMetricsLog, sql);
}
@Override
public void commit() throws SQLException {
super.commit();
- phoenixMetricsLog.logWriteMetricsfoForMutations(PhoenixRuntime.getWriteMetricInfoForMutationsSinceLastReset(conn));
+ phoenixMetricsLog.logWriteMetricsfoForMutationsSinceLastReset(PhoenixRuntime.getWriteMetricInfoForMutationsSinceLastReset(conn));
phoenixMetricsLog.logReadMetricInfoForMutationsSinceLastReset(PhoenixRuntime.getReadMetricInfoForMutationsSinceLastReset(conn));
PhoenixRuntime.resetMetrics(conn);
}
@@ -110,7 +110,7 @@ public class LoggingPhoenixConnection extends DelegateConnection {
@Override
public void close() throws SQLException {
try {
- phoenixMetricsLog.logWriteMetricsfoForMutations(PhoenixRuntime.getWriteMetricInfoForMutationsSinceLastReset(conn));
+ phoenixMetricsLog.logWriteMetricsfoForMutationsSinceLastReset(PhoenixRuntime.getWriteMetricInfoForMutationsSinceLastReset(conn));
phoenixMetricsLog.logReadMetricInfoForMutationsSinceLastReset(PhoenixRuntime.getReadMetricInfoForMutationsSinceLastReset(conn));
PhoenixRuntime.resetMetrics(conn);
} finally {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixPreparedStatement.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixPreparedStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixPreparedStatement.java
index cc8ec1f..952e3fd 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixPreparedStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixPreparedStatement.java
@@ -20,34 +20,37 @@ package org.apache.phoenix.jdbc;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
public class LoggingPhoenixPreparedStatement extends DelegatePreparedStatement {
private PhoenixMetricsLog phoenixMetricsLog;
+ private String sql;
- public LoggingPhoenixPreparedStatement(PreparedStatement stmt, PhoenixMetricsLog phoenixMetricsLog) {
+ public LoggingPhoenixPreparedStatement(PreparedStatement stmt, PhoenixMetricsLog phoenixMetricsLog, String sql) {
super(stmt);
this.phoenixMetricsLog = phoenixMetricsLog;
+ this.sql = sql;
}
@Override
public ResultSet executeQuery(String sql) throws SQLException {
- return new LoggingPhoenixResultSet(super.executeQuery(sql), phoenixMetricsLog);
+ throw new SQLFeatureNotSupportedException();
}
@Override
public ResultSet executeQuery() throws SQLException {
- return new LoggingPhoenixResultSet(super.executeQuery(), phoenixMetricsLog);
+ return new LoggingPhoenixResultSet(super.executeQuery(), phoenixMetricsLog, sql);
}
@Override
public ResultSet getResultSet() throws SQLException {
- return new LoggingPhoenixResultSet(super.getResultSet(), phoenixMetricsLog);
+ return new LoggingPhoenixResultSet(super.getResultSet(), phoenixMetricsLog, sql);
}
@Override
public ResultSet getGeneratedKeys() throws SQLException {
- return new LoggingPhoenixResultSet(super.getGeneratedKeys(), phoenixMetricsLog);
+ return new LoggingPhoenixResultSet(super.getGeneratedKeys(), phoenixMetricsLog, sql);
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixResultSet.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixResultSet.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixResultSet.java
index fbde499..53f5cb4 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixResultSet.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixResultSet.java
@@ -25,16 +25,18 @@ import org.apache.phoenix.util.PhoenixRuntime;
public class LoggingPhoenixResultSet extends DelegateResultSet {
private PhoenixMetricsLog phoenixMetricsLog;
-
- public LoggingPhoenixResultSet(ResultSet rs, PhoenixMetricsLog phoenixMetricsLog) {
+ private String sql;
+
+ public LoggingPhoenixResultSet(ResultSet rs, PhoenixMetricsLog phoenixMetricsLog, String sql) {
super(rs);
this.phoenixMetricsLog = phoenixMetricsLog;
+ this.sql = sql;
}
@Override
public void close() throws SQLException {
- phoenixMetricsLog.logOverAllReadRequestMetrics(PhoenixRuntime.getOverAllReadRequestMetricInfo(rs));
- phoenixMetricsLog.logRequestReadMetrics(PhoenixRuntime.getRequestReadMetricInfo(rs));
+ phoenixMetricsLog.logOverAllReadRequestMetrics(PhoenixRuntime.getOverAllReadRequestMetricInfo(rs), sql);
+ phoenixMetricsLog.logRequestReadMetrics(PhoenixRuntime.getRequestReadMetricInfo(rs), sql);
PhoenixRuntime.resetMetrics(rs);
super.close();
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java
index ea919ed..f9abe6a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/LoggingPhoenixStatement.java
@@ -24,6 +24,7 @@ import java.sql.Statement;
public class LoggingPhoenixStatement extends DelegateStatement {
private PhoenixMetricsLog phoenixMetricsLog;
+ private String sql;
public LoggingPhoenixStatement(Statement stmt, PhoenixMetricsLog phoenixMetricsLog) {
super(stmt);
@@ -31,18 +32,31 @@ public class LoggingPhoenixStatement extends DelegateStatement {
}
@Override
+ public boolean execute(String sql) throws SQLException {
+ this.sql = sql;
+ return super.execute(sql);
+ }
+
+ @Override
public ResultSet executeQuery(String sql) throws SQLException {
- return new LoggingPhoenixResultSet(super.executeQuery(sql), phoenixMetricsLog);
+ this.sql = sql;
+ return new LoggingPhoenixResultSet(super.executeQuery(sql), phoenixMetricsLog, this.sql);
}
-
+
+ @Override
+ public int executeUpdate(String sql) throws SQLException {
+ this.sql = sql;
+ return super.executeUpdate(sql);
+ }
+
@Override
public ResultSet getResultSet() throws SQLException {
- return new LoggingPhoenixResultSet(super.getResultSet(), phoenixMetricsLog);
+ return new LoggingPhoenixResultSet(super.getResultSet(), phoenixMetricsLog, this.sql);
}
@Override
public ResultSet getGeneratedKeys() throws SQLException {
- return new LoggingPhoenixResultSet(super.getGeneratedKeys(), phoenixMetricsLog);
+ return new LoggingPhoenixResultSet(super.getGeneratedKeys(), phoenixMetricsLog, this.sql);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/e979241a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixMetricsLog.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixMetricsLog.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixMetricsLog.java
index be08e52..96556ad 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixMetricsLog.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixMetricsLog.java
@@ -23,11 +23,11 @@ import org.apache.phoenix.monitoring.MetricType;
public interface PhoenixMetricsLog {
- void logOverAllReadRequestMetrics(Map<MetricType, Long> overAllQueryMetrics);
+ void logOverAllReadRequestMetrics(Map<MetricType, Long> overAllQueryMetrics, String sql);
- void logRequestReadMetrics(Map<String, Map<MetricType, Long>> requestReadMetrics);
+ void logRequestReadMetrics(Map<String, Map<MetricType, Long>> requestReadMetrics, String sql);
- void logWriteMetricsfoForMutations(Map<String, Map<MetricType, Long>> mutationWriteMetrics);
+ void logWriteMetricsfoForMutationsSinceLastReset(Map<String, Map<MetricType, Long>> mutationWriteMetrics);
void logReadMetricInfoForMutationsSinceLastReset(Map<String, Map<MetricType, Long>> mutationReadMetrics);