blob: 0a132456ae40e91789a3cfa7e431c442704ad2af [file] [log] [blame]
/*
*Licensed to the Apache Software Foundation (ASF) under one
*or more contributor license agreements. See the NOTICE file
*distributed with this work for additional information
*regarding copyright ownership. The ASF licenses this file
*to you under the Apache License, Version 2.0 (the
*"License"); you may not use this file except in compliance
*with the License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing,
*software distributed under the License is distributed on an
*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
*KIND, either express or implied. See the License for the
*specific language governing permissions and limitations
*under the License.
*/
package org.apache.stratos.usage.summary.helper;
import org.apache.stratos.usage.summary.helper.util.DataAccessObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.analytics.hive.extension.AbstractHiveAnalyzer;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Helper class to set the timestamp of the last hourly summarization cycle in hive config.
* This is needed to excluded the already summarized usage stats in the current summarization cycle.
*/
public class HourlyServiceStatsSummarizerHelper extends AbstractHiveAnalyzer {
private static Log log = LogFactory.getLog(HourlyServiceStatsSummarizerHelper.class);
public void execute() {
log.info("Running custom analyzer for Stratos service stats hourly summarization.");
try {
String lastHourlyTimestampStr = DataAccessObject.getInstance().getAndUpdateLastServiceStatsHourlyTimestamp();
Long lastHourlyTimestamp = Timestamp.valueOf(lastHourlyTimestampStr).getTime();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:00");
String currentTsStr = formatter.format(new Date().getTime());
log.info("Running hourly service stats analytics from " + lastHourlyTimestampStr + " to " + currentTsStr);
setProperty("last_hourly_ts", lastHourlyTimestamp.toString());
} catch (Exception e) {
log.error("An error occurred while setting hour range for hourly service stats analysis. ", e);
}
}
}