FullTableScanAbsoluteMetricConverter.java (eucalyptus-4.4.1) | : | FullTableScanAbsoluteMetricConverter.java (eucalyptus-4.4.2) | ||
---|---|---|---|---|
skipping to change at line 55 | skipping to change at line 55 | |||
protected static List<AbsoluteMetricQueueItem> dealWithAbsoluteMetrics(Iterabl e<AbsoluteMetricQueueItem> dataBatch) { | protected static List<AbsoluteMetricQueueItem> dealWithAbsoluteMetrics(Iterabl e<AbsoluteMetricQueueItem> dataBatch) { | |||
List<AbsoluteMetricQueueItem> regularMetrics = Lists.newArrayList(); | List<AbsoluteMetricQueueItem> regularMetrics = Lists.newArrayList(); | |||
List<SimpleAbsoluteMetricHistory> absoluteMetricsToInsert = Lists.newArrayLi st(); | List<SimpleAbsoluteMetricHistory> absoluteMetricsToInsert = Lists.newArrayLi st(); | |||
SortedAbsoluteMetrics sortedAbsoluteMetrics = sortAbsoluteMetrics(dataBatch) ; | SortedAbsoluteMetrics sortedAbsoluteMetrics = sortAbsoluteMetrics(dataBatch) ; | |||
regularMetrics.addAll(sortedAbsoluteMetrics.getRegularMetrics()); | regularMetrics.addAll(sortedAbsoluteMetrics.getRegularMetrics()); | |||
AbsoluteMetricMap absoluteMetricMap = sortedAbsoluteMetrics.getAbsoluteMetri cMap(); | AbsoluteMetricMap absoluteMetricMap = sortedAbsoluteMetrics.getAbsoluteMetri cMap(); | |||
try (final TransactionResource db = Entities.transactionFor(AbsoluteMetricHi story.class)) { | try (final TransactionResource db = Entities.transactionFor(AbsoluteMetricHi story.class)) { | |||
int count = 0; | int count = 0; | |||
Criteria criteria = Entities.createCriteria(AbsoluteMetricHistory.class); | Criteria criteria = Entities.createCriteria(AbsoluteMetricHistory.class); | |||
ScrollableResults absoluteMetrics = criteria.setCacheMode(CacheMode.IGNORE | final ScrollableResults absoluteMetrics = criteria.setCacheMode(CacheMode. | |||
).scroll(ScrollMode.FORWARD_ONLY); | IGNORE).scroll(ScrollMode.FORWARD_ONLY); | |||
while (absoluteMetrics.next()) { | try { | |||
AbsoluteMetricHistory absoluteMetricHistory = (AbsoluteMetricHistory) ab | while ( absoluteMetrics.next( ) ) { | |||
soluteMetrics.get(0); | AbsoluteMetricHistory absoluteMetricHistory = (AbsoluteMetricHistory) | |||
if (absoluteMetricMap.containsKey( | absoluteMetrics.get( 0 ); | |||
absoluteMetricHistory.getNamespace(), absoluteMetricHistory.getMetricN | if ( absoluteMetricMap.containsKey( | |||
ame(), | absoluteMetricHistory.getNamespace( ), absoluteMetricHistory.getMe | |||
absoluteMetricHistory.getDimensionName(), absoluteMetricHistory.getDim | tricName( ), | |||
ensionValue())) { | absoluteMetricHistory.getDimensionName( ), absoluteMetricHistory.g | |||
MetricsAndOtherFields metricsAndOtherFields = | etDimensionValue( ) ) ) { | |||
absoluteMetricMap.getMetricsAndOtherFields(absoluteMetricHistory.get | MetricsAndOtherFields metricsAndOtherFields = | |||
Namespace(), | absoluteMetricMap.getMetricsAndOtherFields( absoluteMetricHistor | |||
absoluteMetricHistory.getMetricName(), absoluteMetricHistory.getDi | y.getNamespace( ), | |||
mensionName(), | absoluteMetricHistory.getMetricName( ), absoluteMetricHistor | |||
absoluteMetricHistory.getDimensionValue()); | y.getDimensionName( ), | |||
Map<TimestampAndMetricValue, MetricDatum> metricDatumMap = metricsAndO | absoluteMetricHistory.getDimensionValue( ) ); | |||
therFields.getMetricDatumMap(); | Map<TimestampAndMetricValue, MetricDatum> metricDatumMap = metricsAn | |||
SequentialMetrics sequentialMetrics = calculateSequentialMetrics(absol | dOtherFields.getMetricDatumMap( ); | |||
uteMetricHistory, metricDatumMap, metricsAndOtherFields.getAccountId(), metricsA | SequentialMetrics sequentialMetrics = calculateSequentialMetrics( ab | |||
ndOtherFields.getRelativeMetricName()); | soluteMetricHistory, metricDatumMap, metricsAndOtherFields.getAccountId( ), metr | |||
absoluteMetricMap.removeEntries(absoluteMetricHistory.getNamespace(), | icsAndOtherFields.getRelativeMetricName( ) ); | |||
absoluteMetricHistory.getMetricName(), | absoluteMetricMap.removeEntries( absoluteMetricHistory.getNamespace( | |||
absoluteMetricHistory.getDimensionName(), absoluteMetricHistory.getD | ), absoluteMetricHistory.getMetricName( ), | |||
imensionValue()); | absoluteMetricHistory.getDimensionName( ), absoluteMetricHistory | |||
for (AbsoluteMetricQueueItem regularMetric: sequentialMetrics.getRegul | .getDimensionValue( ) ); | |||
arMetrics()) { | for ( AbsoluteMetricQueueItem regularMetric : sequentialMetrics.getR | |||
if (AbsoluteMetricHelper.AWS_EBS_NAMESPACE.equals(regularMetric.getN | egularMetrics( ) ) { | |||
amespace())) { | if ( AbsoluteMetricHelper.AWS_EBS_NAMESPACE.equals( regularMetric. | |||
if (AbsoluteMetricHelper.VOLUME_READ_OPS_METRIC_NAME.equals(regula | getNamespace( ) ) ) { | |||
rMetric.getMetricDatum().getMetricName())) { // special case | if ( AbsoluteMetricHelper.VOLUME_READ_OPS_METRIC_NAME.equals( re | |||
regularMetrics.add(AbsoluteMetricHelper.createVolumeThroughputMe | gularMetric.getMetricDatum( ).getMetricName( ) ) ) { // special case | |||
tric(regularMetric.getAccountId(), regularMetric.getNamespace(), regularMetric.g | regularMetrics.add( AbsoluteMetricHelper.createVolumeThroughpu | |||
etMetricDatum())); | tMetric( regularMetric.getAccountId( ), regularMetric.getNamespace( ), regularMe | |||
} else if (AbsoluteMetricHelper.VOLUME_TOTAL_READ_WRITE_TIME_METRI | tric.getMetricDatum( ) ) ); | |||
C_NAME.equals(regularMetric.getMetricDatum().getMetricName())) { | } else if ( AbsoluteMetricHelper.VOLUME_TOTAL_READ_WRITE_TIME_ME | |||
AbsoluteMetricHelper.convertVolumeTotalReadWriteTimeToVolumeIdle | TRIC_NAME.equals( regularMetric.getMetricDatum( ).getMetricName( ) ) ) { | |||
Time(regularMetric.getMetricDatum()); | AbsoluteMetricHelper.convertVolumeTotalReadWriteTimeToVolumeId | |||
leTime( regularMetric.getMetricDatum( ) ); | ||||
} | ||||
} | } | |||
regularMetrics.add( regularMetric ); | ||||
} | ||||
absoluteMetricHistory.setTimestamp( sequentialMetrics.getUpdateTimes | ||||
tamp( ) ); | ||||
absoluteMetricHistory.setLastMetricValue( sequentialMetrics.getUpdat | ||||
eValue( ) ); | ||||
if ( ++count % AbsoluteMetricQueue.ABSOLUTE_METRIC_NUM_DB_OPERATIONS | ||||
_UNTIL_SESSION_FLUSH == 0 ) { | ||||
Entities.flushSession( AbsoluteMetricHistory.class ); | ||||
Entities.clearSession( AbsoluteMetricHistory.class ); | ||||
} | } | |||
regularMetrics.add(regularMetric); | ||||
} | ||||
absoluteMetricHistory.setTimestamp(sequentialMetrics.getUpdateTimestam | ||||
p()); | ||||
absoluteMetricHistory.setLastMetricValue(sequentialMetrics.getUpdateVa | ||||
lue()); | ||||
if (++count % AbsoluteMetricQueue.ABSOLUTE_METRIC_NUM_DB_OPERATIONS_UN | ||||
TIL_SESSION_FLUSH == 0) { | ||||
Entities.flushSession(AbsoluteMetricHistory.class); | ||||
Entities.clearSession(AbsoluteMetricHistory.class); | ||||
} | } | |||
} | } | |||
} finally { | ||||
absoluteMetrics.close( ); | ||||
} | } | |||
db.commit(); | db.commit(); | |||
} | } | |||
// Now parse entries only in the map... | // Now parse entries only in the map... | |||
for (AbsoluteMetricMap.NamespaceMetricNameAndDimension namespaceMetricNameAn dDimension: absoluteMetricMap.keySet()) { | for (AbsoluteMetricMap.NamespaceMetricNameAndDimension namespaceMetricNameAn dDimension: absoluteMetricMap.keySet()) { | |||
AbsoluteMetricHistory absoluteMetricHistory = new AbsoluteMetricHistory(); | AbsoluteMetricHistory absoluteMetricHistory = new AbsoluteMetricHistory(); | |||
absoluteMetricHistory.setNamespace(namespaceMetricNameAndDimension.getName space()); | absoluteMetricHistory.setNamespace(namespaceMetricNameAndDimension.getName space()); | |||
absoluteMetricHistory.setMetricName(namespaceMetricNameAndDimension.getMet ricName()); | absoluteMetricHistory.setMetricName(namespaceMetricNameAndDimension.getMet ricName()); | |||
absoluteMetricHistory.setDimensionName(namespaceMetricNameAndDimension.get DimensionName()); | absoluteMetricHistory.setDimensionName(namespaceMetricNameAndDimension.get DimensionName()); | |||
absoluteMetricHistory.setDimensionValue(namespaceMetricNameAndDimension.ge tDimensionValue()); | absoluteMetricHistory.setDimensionValue(namespaceMetricNameAndDimension.ge tDimensionValue()); | |||
End of changes. 4 change blocks. | ||||
48 lines changed or deleted | 52 lines changed or added |