Example usage for org.apache.commons.math.stat.descriptive StorelessUnivariateStatistic increment

List of usage examples for org.apache.commons.math.stat.descriptive StorelessUnivariateStatistic increment

Introduction

In this page you can find the example usage for org.apache.commons.math.stat.descriptive StorelessUnivariateStatistic increment.

Prototype

void increment(double d);

Source Link

Document

Updates the internal state of the statistic to reflect the addition of the new value.

Usage

From source file:net.sf.katta.tool.loadtest.LoadTestMasterOperation.java

@Override
public void nodeOperationsComplete(MasterContext context, List<OperationResult> nodeResults) throws Exception {
    try {//  w  w  w .j  a v a2  s. c  o  m
        final int queryRate = calculateCurrentQueryRate();
        LOG.info("collecting results for iteration " + _currentIteration + " and query rate " + queryRate
                + " after " + (System.currentTimeMillis() - _currentIterationStartTime) + " ms ...");
        List<LoadTestQueryResult> queryResults = new ArrayList<LoadTestQueryResult>();
        for (OperationResult operationResult : nodeResults) {
            if (operationResult == null || operationResult.getUnhandledException() != null) {
                Exception rootException = null;
                if (operationResult != null) {
                    rootException = operationResult.getUnhandledException();
                }
                throw new IllegalStateException(
                        "at least one node operation did not completed properly: " + nodeResults,
                        rootException);
            }
            LoadTestNodeOperationResult nodeOperationResult = (LoadTestNodeOperationResult) operationResult;
            queryResults.addAll(nodeOperationResult.getQueryResults());
        }
        LOG.info("Received " + queryResults.size() + " queries, expected " + queryRate * _runTime / 1000);

        File statisticsFile = new File(_resultDir, "load-test-log-" + _startTime + ".log");
        File resultsFile = new File(_resultDir, "load-test-results-" + _startTime + ".log");
        Writer statisticsWriter = new OutputStreamWriter(new FileOutputStream(statisticsFile, true));
        Writer resultWriter = new OutputStreamWriter(new FileOutputStream(resultsFile, true));
        if (_currentIteration == 0) {
            // print headers
            statisticsWriter.append("#queryRate \tnode \tstartTime \tendTime \telapseTime \tquery \n");
            resultWriter.append(
                    "#requestedQueryRate \tachievedQueryRate \tfiredQueries \tqueryErrors \tavarageQueryDuration \tstandardDeviation  \n");
        }
        try {
            StorelessUnivariateStatistic timeStandardDeviation = new StandardDeviation();
            StorelessUnivariateStatistic timeMean = new Mean();
            int errors = 0;

            for (LoadTestQueryResult result : queryResults) {
                long elapsedTime = result.getEndTime() > 0 ? result.getEndTime() - result.getStartTime() : -1;
                statisticsWriter.write(queryRate + "\t" + result.getNodeId() + "\t" + result.getStartTime()
                        + "\t" + result.getEndTime() + "\t" + elapsedTime + "\t" + result.getQuery() + "\n");
                if (elapsedTime != -1) {
                    timeStandardDeviation.increment(elapsedTime);
                    timeMean.increment(elapsedTime);
                } else {
                    ++errors;
                }
            }
            resultWriter.write(queryRate + "\t" + ((double) queryResults.size() / (_runTime / 1000)) + "\t"
                    + queryResults.size() + "\t" + errors + "\t" + (int) timeMean.getResult() + "\t"
                    + (int) timeStandardDeviation.getResult() + "\n");
        } catch (IOException e) {
            throw new IllegalStateException("Failed to write statistics data.", e);
        }
        try {
            LOG.info("results written to " + resultsFile.getAbsolutePath());
            LOG.info("statistics written to " + statisticsFile.getAbsolutePath());
            statisticsWriter.close();
            resultWriter.close();
        } catch (IOException e) {
            LOG.warn("Failed to close statistics file.");
        }
        if (queryRate + _step <= _endRate) {
            _currentIteration++;
            LOG.info("triggering next iteration " + _currentIteration);
            context.getMasterQueue().add(this);
        } else {
            LOG.info("finish load test in iteration " + _currentIteration + " after "
                    + (System.currentTimeMillis() - _startTime) + " ms");
            context.getProtocol().removeFlag(getName());
        }
    } catch (Exception e) {
        context.getProtocol().removeFlag(getName());
    }
}

From source file:org.apache.accumulo.core.util.Stat.java

public void addStat(long stat) {
    for (StorelessUnivariateStatistic statistic : stats) {
        statistic.increment(stat);
    }/* w ww  .j a v  a2 s  .  c o  m*/
}