in ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/PhoenixHBaseAccessor.java [1778:1841]
public void saveMetricMetadata(Collection<TimelineMetricMetadata> metricMetadata) throws SQLException {
if (metricMetadata.isEmpty()) {
LOG.info("No metadata records to save.");
return;
}
Connection conn = getConnection();
PreparedStatement stmt = null;
try {
stmt = conn.prepareStatement(UPSERT_METADATA_SQL);
int rowCount = 0;
for (TimelineMetricMetadata metadata : metricMetadata) {
if (LOG.isTraceEnabled()) {
LOG.trace("TimelineMetricMetadata: metricName = " + metadata.getMetricName()
+ ", appId = " + metadata.getAppId()
+ ", seriesStartTime = " + metadata.getSeriesStartTime()
);
}
try {
stmt.clearParameters();
stmt.setString(1, metadata.getMetricName());
stmt.setString(2, metadata.getAppId());
stmt.setString(3, metadata.getInstanceId());
stmt.setBytes(4, metadata.getUuid());
stmt.setString(5, metadata.getUnits());
stmt.setString(6, metadata.getType());
stmt.setLong(7, metadata.getSeriesStartTime());
stmt.setBoolean(8, metadata.isSupportsAggregates());
stmt.setBoolean(9, metadata.isWhitelisted());
} catch (Exception e) {
LOG.error("Exception in saving metric metadata entry. ");
continue;
}
try {
stmt.executeUpdate();
rowCount++;
} catch (SQLException sql) {
LOG.error("Error saving metadata.", sql);
}
}
conn.commit();
LOG.info("Saved " + rowCount + " metadata records.");
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// Ignore
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException sql) {
// Ignore
}
}
}
}