You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2014/09/26 04:23:28 UTC
git commit: AMBARI-5707. Fastdiff bug and other fixes.
Repository: ambari
Updated Branches:
refs/heads/branch-metrics-dev ab81ebda9 -> 3ea2d8cea
AMBARI-5707. Fastdiff bug and other fixes.
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3ea2d8ce
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3ea2d8ce
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3ea2d8ce
Branch: refs/heads/branch-metrics-dev
Commit: 3ea2d8cea23747ab0264ba482228f806a8a71f97
Parents: ab81ebd
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Thu Sep 25 19:22:36 2014 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Thu Sep 25 19:22:36 2014 -0700
----------------------------------------------------------------------
.../metrics/timeline/PhoenixHBaseAccessor.java | 19 +++---
.../metrics/timeline/PhoenixTransactSQL.java | 70 ++++++++++++--------
.../TimelineMetricAggregatorHourly.java | 4 +-
.../TimelineMetricAggregatorMinute.java | 4 +-
.../TimelineMetricClusterAggregator.java | 4 ++
5 files changed, 62 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/3ea2d8ce/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
index bb03cd1..f11a889 100644
--- a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
+++ b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java
@@ -43,6 +43,7 @@ import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.ti
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.CREATE_METRICS_CLUSTER_AGGREGATE_TABLE_SQL;
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.CREATE_METRICS_TABLE_SQL;
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.Condition;
+import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.DEFAULT_TABLE_COMPRESSION;
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.METRICS_RECORD_CACHE_TABLE_NAME;
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.METRICS_RECORD_CACHE_TABLE_TTL;
import static org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixTransactSQL.METRICS_RECORD_TABLE_NAME;
@@ -118,11 +119,11 @@ public class PhoenixHBaseAccessor {
metric.setAppId(rs.getString("APP_ID"));
metric.setInstanceId(rs.getString("INSTANCE_ID"));
metric.setHostName(rs.getString("HOSTNAME"));
- metric.setTimestamp(rs.getLong("TIMESTAMP"));
+ metric.setTimestamp(rs.getLong("SERVER_TIME"));
metric.setStartTime(rs.getLong("START_TIME"));
metric.setType(rs.getString("UNITS"));
metric.setMetricValues(
- (Map<Long, Double>) TimelineUtilsExt.readMetricFromJSON(
+ (Map<Long, Double>) TimelineUtils.readMetricFromJSON(
rs.getString("METRICS")));
return metric;
}
@@ -134,7 +135,7 @@ public class PhoenixHBaseAccessor {
metric.setAppId(rs.getString("APP_ID"));
metric.setInstanceId(rs.getString("INSTANCE_ID"));
metric.setHostName(rs.getString("HOSTNAME"));
- metric.setTimestamp(rs.getLong("TIMESTAMP"));
+ metric.setTimestamp(rs.getLong("SERVER_TIME"));
metric.setType(rs.getString("UNITS"));
return metric;
}
@@ -158,9 +159,11 @@ public class PhoenixHBaseAccessor {
LOG.info("Initializing metrics schema...");
stmt = conn.createStatement();
stmt.executeUpdate(String.format(CREATE_METRICS_TABLE_SQL,
- METRICS_RECORD_TABLE_NAME, METRICS_RECORD_TABLE_TTL));
+ METRICS_RECORD_TABLE_NAME, METRICS_RECORD_TABLE_TTL,
+ DEFAULT_TABLE_COMPRESSION));
stmt.executeUpdate(String.format(CREATE_METRICS_TABLE_SQL,
- METRICS_RECORD_CACHE_TABLE_NAME, METRICS_RECORD_CACHE_TABLE_TTL));
+ METRICS_RECORD_CACHE_TABLE_NAME, METRICS_RECORD_CACHE_TABLE_TTL,
+ "NONE"));
stmt.executeUpdate(CREATE_METRICS_AGGREGATE_HOURLY_TABLE_SQL);
stmt.executeUpdate(CREATE_METRICS_AGGREGATE_MINUTE_TABLE_SQL);
stmt.executeUpdate(CREATE_METRICS_CLUSTER_AGGREGATE_TABLE_SQL);
@@ -518,10 +521,10 @@ public class PhoenixHBaseAccessor {
metric.setMetricName(rs.getString("METRIC_NAME"));
metric.setAppId(rs.getString("APP_ID"));
metric.setInstanceId(rs.getString("INSTANCE_ID"));
- metric.setTimestamp(rs.getLong("TIMESTAMP"));
- metric.setStartTime(rs.getLong("TIMESTAMP"));
+ metric.setTimestamp(rs.getLong("SERVER_TIME"));
+ metric.setStartTime(rs.getLong("SERVER_TIME"));
Map<Long, Double> valueMap = new HashMap<Long, Double>();
- valueMap.put(rs.getLong("TIMESTAMP"), rs.getDouble("METRIC_SUM") /
+ valueMap.put(rs.getLong("SERVER_TIME"), rs.getDouble("METRIC_SUM") /
rs.getInt("HOSTS_COUNT"));
metric.setMetricValues(valueMap);
http://git-wip-us.apache.org/repos/asf/ambari/blob/3ea2d8ce/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixTransactSQL.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixTransactSQL.java b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixTransactSQL.java
index c0ddb89..a52fd4b 100644
--- a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixTransactSQL.java
+++ b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixTransactSQL.java
@@ -23,8 +23,7 @@ import org.apache.commons.logging.LogFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
@@ -40,80 +39,89 @@ public class PhoenixTransactSQL {
*/
public static final String CREATE_METRICS_TABLE_SQL = "CREATE TABLE IF NOT " +
"EXISTS %s (METRIC_NAME VARCHAR, " +
- "HOSTNAME VARCHAR, TIMESTAMP UNSIGNED_LONG NOT NULL, " +
+ "HOSTNAME VARCHAR, SERVER_TIME UNSIGNED_LONG NOT NULL, " +
"APP_ID VARCHAR, INSTANCE_ID VARCHAR, " +
"START_TIME UNSIGNED_LONG, UNITS CHAR(20), " +
"METRIC_AVG DOUBLE, METRIC_MAX DOUBLE, METRIC_MIN DOUBLE, " +
"METRICS VARCHAR CONSTRAINT pk " +
- "PRIMARY KEY (METRIC_NAME, HOSTNAME, TIMESTAMP, APP_ID, INSTANCE_ID)) " +
- "IMMUTABLE_ROWS=true, TTL=%s, COMPRESSION='SNAPPY'";
+ "PRIMARY KEY (METRIC_NAME, HOSTNAME, SERVER_TIME, APP_ID, " +
+ "INSTANCE_ID)) DATA_BLOCK_ENCODING='NONE', IMMUTABLE_ROWS=true, TTL=%s, " +
+ "COMPRESSION='%s'";
public static final String CREATE_METRICS_AGGREGATE_HOURLY_TABLE_SQL =
"CREATE TABLE IF NOT EXISTS METRIC_RECORD_HOURLY " +
"(METRIC_NAME VARCHAR, HOSTNAME VARCHAR, " +
- "APP_ID VARCHAR, INSTANCE_ID VARCHAR, TIMESTAMP UNSIGNED_LONG NOT NULL, " +
+ "APP_ID VARCHAR, INSTANCE_ID VARCHAR, " +
+ "SERVER_TIME UNSIGNED_LONG NOT NULL, " +
"UNITS CHAR(20), METRIC_AVG DOUBLE, METRIC_MAX DOUBLE," +
"METRIC_MIN DOUBLE CONSTRAINT pk " +
- "PRIMARY KEY (METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, TIMESTAMP)) " +
- "IMMUTABLE_ROWS=true, TTL=2592000, COMPRESSION='SNAPPY'";
+ "PRIMARY KEY (METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, " +
+ "SERVER_TIME)) DATA_BLOCK_ENCODING='NONE', IMMUTABLE_ROWS=true, TTL=2592000, " +
+ "COMPRESSION='SNAPPY'";
public static final String CREATE_METRICS_AGGREGATE_MINUTE_TABLE_SQL =
"CREATE TABLE IF NOT EXISTS METRIC_RECORD_MINUTE " +
"(METRIC_NAME VARCHAR, HOSTNAME VARCHAR, " +
- "APP_ID VARCHAR, INSTANCE_ID VARCHAR, TIMESTAMP UNSIGNED_LONG NOT NULL, " +
+ "APP_ID VARCHAR, INSTANCE_ID VARCHAR, " +
+ "SERVER_TIME UNSIGNED_LONG NOT NULL, " +
"UNITS CHAR(20), METRIC_AVG DOUBLE, METRIC_MAX DOUBLE," +
"METRIC_MIN DOUBLE CONSTRAINT pk " +
- "PRIMARY KEY (METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, TIMESTAMP)) " +
- "IMMUTABLE_ROWS=true, TTL=604800, COMPRESSION='SNAPPY'";
+ "PRIMARY KEY (METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, " +
+ "SERVER_TIME)) DATA_BLOCK_ENCODING='NONE', IMMUTABLE_ROWS=true, TTL=604800, " +
+ "COMPRESSION='SNAPPY'";
public static final String CREATE_METRICS_CLUSTER_AGGREGATE_TABLE_SQL =
"CREATE TABLE IF NOT EXISTS METRIC_AGGREGATE " +
"(METRIC_NAME VARCHAR, APP_ID VARCHAR, INSTANCE_ID VARCHAR, " +
- "TIMESTAMP UNSIGNED_LONG NOT NULL, UNITS CHAR(20), METRIC_SUM DOUBLE, " +
+ "SERVER_TIME UNSIGNED_LONG NOT NULL, " +
+ "UNITS CHAR(20), METRIC_SUM DOUBLE, " +
"HOSTS_COUNT UNSIGNED_INT, METRIC_MAX DOUBLE, METRIC_MIN DOUBLE " +
- "CONSTRAINT pk PRIMARY KEY (METRIC_NAME, APP_ID, INSTANCE_ID, TIMESTAMP)) " +
- "IMMUTABLE_ROWS=true, TTL=2592000, COMPRESSION='SNAPPY'";
+ "CONSTRAINT pk PRIMARY KEY (METRIC_NAME, APP_ID, INSTANCE_ID, " +
+ "SERVER_TIME)) DATA_BLOCK_ENCODING='NONE', IMMUTABLE_ROWS=true, TTL=2592000, " +
+ "COMPRESSION='SNAPPY'";
public static final String CREATE_METRICS_CLUSTER_AGGREGATE_HOURLY_TABLE_SQL =
"CREATE TABLE IF NOT EXISTS METRIC_AGGREGATE_HOURLY " +
"(METRIC_NAME VARCHAR, APP_ID VARCHAR, INSTANCE_ID VARCHAR, " +
- "TIMESTAMP UNSIGNED_LONG NOT NULL, UNITS CHAR(20), METRIC_AVG DOUBLE, " +
+ "SERVER_TIME UNSIGNED_LONG NOT NULL, " +
+ "UNITS CHAR(20), METRIC_AVG DOUBLE, " +
"METRIC_MAX DOUBLE, METRIC_MIN DOUBLE " +
- "CONSTRAINT pk PRIMARY KEY (METRIC_NAME, APP_ID, INSTANCE_ID, TIMESTAMP)) " +
- "IMMUTABLE_ROWS=true, TTL=31536000, COMPRESSION='SNAPPY'";
+ "CONSTRAINT pk PRIMARY KEY (METRIC_NAME, APP_ID, INSTANCE_ID, " +
+ "SERVER_TIME)) DATA_BLOCK_ENCODING='NONE', IMMUTABLE_ROWS=true, TTL=31536000, " +
+ "COMPRESSION='SNAPPY'";
/**
* Insert into metric records table.
*/
public static final String UPSERT_METRICS_SQL = "UPSERT INTO %s " +
- "(METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, TIMESTAMP, START_TIME, " +
+ "(METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, SERVER_TIME, START_TIME, " +
"UNITS, METRIC_AVG, METRIC_MAX, METRIC_MIN, METRICS) VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
public static final String UPSERT_CLUSTER_AGGREGATE_SQL = "UPSERT INTO " +
- "METRIC_AGGREGATE (METRIC_NAME, APP_ID, INSTANCE_ID, TIMESTAMP, " +
+ "METRIC_AGGREGATE (METRIC_NAME, APP_ID, INSTANCE_ID, SERVER_TIME, " +
"UNITS, METRIC_SUM, HOSTS_COUNT, METRIC_MAX, METRIC_MIN) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
public static final String UPSERT_AGGREGATE_RECORD_SQL = "UPSERT INTO " +
"%s (METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, " +
- "TIMESTAMP, UNITS, METRIC_AVG, METRIC_MAX, METRIC_MIN) " +
+ "SERVER_TIME, UNITS, METRIC_AVG, METRIC_MAX, METRIC_MIN) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
/**
* Retrieve a set of rows from metrics records table.
*/
public static final String GET_METRIC_SQL = "SELECT METRIC_NAME, " +
- "HOSTNAME, APP_ID, INSTANCE_ID, TIMESTAMP, START_TIME, UNITS, METRIC_AVG, " +
+ "HOSTNAME, APP_ID, INSTANCE_ID, SERVER_TIME, START_TIME, UNITS, METRIC_AVG, " +
"METRIC_MAX, METRIC_MIN, METRICS FROM %s";
public static final String GET_METRIC_AGGREGATE_ONLY_SQL = "SELECT " +
- "/* RANGE_SCAN */ METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, TIMESTAMP, " +
+ "METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, SERVER_TIME, " +
"UNITS, METRIC_AVG, METRIC_MAX, METRIC_MIN FROM %s";
public static final String GET_CLUSTER_AGGREGATE_SQL =
"SELECT METRIC_NAME, APP_ID, " +
- "INSTANCE_ID, TIMESTAMP, METRIC_SUM, HOSTS_COUNT, METRIC_MAX, " +
+ "INSTANCE_ID, SERVER_TIME, METRIC_SUM, HOSTS_COUNT, METRIC_MAX, " +
"METRIC_MIN FROM METRIC_AGGREGATE";
/**
@@ -130,6 +138,7 @@ public class PhoenixTransactSQL {
"METRIC_RECORD_MINUTE";
public static final String METRICS_AGGREGATE_HOURLY_TABLE_NAME =
"METRIC_RECORD_HOURLY";
+ public static final String DEFAULT_TABLE_COMPRESSION = "SNAPPY";
public static PreparedStatement prepareGetMetricsSqlStmt(
Connection connection, Condition condition) throws SQLException {
@@ -137,7 +146,7 @@ public class PhoenixTransactSQL {
if (condition.isEmpty()) {
throw new IllegalArgumentException("Condition is empty.");
}
- String stmtStr = GET_METRIC_SQL;
+ String stmtStr = String.format(GET_METRIC_SQL, METRICS_RECORD_TABLE_NAME);
if (condition.getStatement() != null) {
stmtStr = condition.getStatement();
}
@@ -146,10 +155,11 @@ public class PhoenixTransactSQL {
sb.append(" WHERE ");
sb.append(condition.getConditionClause());
String orderByClause = condition.getOrderByClause();
+
if (orderByClause != null) {
sb.append(orderByClause);
} else {
- sb.append(" ORDER BY METRIC_NAME, TIMESTAMP");
+ sb.append(" ORDER BY METRIC_NAME, SERVER_TIME ");
}
if (condition.getLimit() != null) {
sb.append(" LIMIT ").append(condition.getLimit());
@@ -196,7 +206,7 @@ public class PhoenixTransactSQL {
StringBuilder sb = new StringBuilder(GET_CLUSTER_AGGREGATE_SQL);
sb.append(" WHERE ");
sb.append(condition.getConditionClause());
- sb.append(" ORDER BY METRIC_NAME, TIMESTAMP");
+ sb.append(" ORDER BY METRIC_NAME, SERVER_TIME");
if (condition.getLimit() != null) {
sb.append(" LIMIT ").append(condition.getLimit());
}
@@ -238,7 +248,7 @@ public class PhoenixTransactSQL {
boolean noLimit = false;
Integer fetchSize;
String statement;
- Set<String> orderByColumns = new HashSet<String>();
+ Set<String> orderByColumns = new LinkedHashSet<String>();
Condition(List<String> metricNames, String hostname, String appId,
String instanceId, Long startTime, Long endTime, Integer limit,
@@ -319,14 +329,14 @@ public class PhoenixTransactSQL {
}
appendConjunction = false;
if (getStartTime() != null) {
- sb.append(" TIMESTAMP >= ?");
+ sb.append(" SERVER_TIME >= ?");
appendConjunction = true;
}
if (appendConjunction) {
sb.append(" AND");
}
if (getEndTime() != null) {
- sb.append(" TIMESTAMP < ?");
+ sb.append(" SERVER_TIME < ?");
}
return sb.toString();
}
@@ -408,6 +418,7 @@ public class PhoenixTransactSQL {
}
sb.append(orderByColumn);
}
+ sb.append(" ");
return sb.toString();
}
return null;
@@ -424,6 +435,7 @@ public class PhoenixTransactSQL {
", endTime=" + endTime +
", limit=" + limit +
", grouped=" + grouped +
+ ", orderBy=" + orderByColumns +
", noLimit=" + noLimit +
'}';
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/3ea2d8ce/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorHourly.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorHourly.java b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorHourly.java
index 34b75aa..6418322 100644
--- a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorHourly.java
+++ b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorHourly.java
@@ -60,7 +60,9 @@ public class TimelineMetricAggregatorHourly extends AbstractTimelineAggregator {
METRICS_AGGREGATE_MINUTE_TABLE_NAME));
condition.addOrderByColumn("METRIC_NAME");
condition.addOrderByColumn("HOSTNAME");
- condition.addOrderByColumn("TIMESTAMP");
+ condition.addOrderByColumn("APP_ID");
+ condition.addOrderByColumn("INSTANCE_ID");
+ condition.addOrderByColumn("SERVER_TIME");
Connection conn = null;
PreparedStatement stmt = null;
http://git-wip-us.apache.org/repos/asf/ambari/blob/3ea2d8ce/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorMinute.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorMinute.java b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorMinute.java
index 9d75aa9..bf8809c 100644
--- a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorMinute.java
+++ b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricAggregatorMinute.java
@@ -60,7 +60,9 @@ public class TimelineMetricAggregatorMinute extends AbstractTimelineAggregator {
METRICS_RECORD_CACHE_TABLE_NAME));
condition.addOrderByColumn("METRIC_NAME");
condition.addOrderByColumn("HOSTNAME");
- condition.addOrderByColumn("TIMESTAMP");
+ condition.addOrderByColumn("APP_ID");
+ condition.addOrderByColumn("INSTANCE_ID");
+ condition.addOrderByColumn("SERVER_TIME");
Connection conn = null;
PreparedStatement stmt = null;
http://git-wip-us.apache.org/repos/asf/ambari/blob/3ea2d8ce/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricClusterAggregator.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricClusterAggregator.java b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricClusterAggregator.java
index fb979b5..d07eede 100644
--- a/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricClusterAggregator.java
+++ b/ambari-metrics/ambari-metrics-hadoop-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricClusterAggregator.java
@@ -67,6 +67,10 @@ public class TimelineMetricClusterAggregator extends AbstractTimelineAggregator
condition.setNoLimit();
condition.setStatement(String.format(GET_METRIC_SQL,
METRICS_RECORD_CACHE_TABLE_NAME));
+ condition.addOrderByColumn("METRIC_NAME");
+ condition.addOrderByColumn("APP_ID");
+ condition.addOrderByColumn("INSTANCE_ID");
+ condition.addOrderByColumn("SERVER_TIME");
Connection conn;
PreparedStatement stmt;