当前位置: 首页>>代码示例>>Java>>正文


Java FetchData类代码示例

本文整理汇总了Java中org.rrd4j.core.FetchData的典型用法代码示例。如果您正苦于以下问题:Java FetchData类的具体用法?Java FetchData怎么用?Java FetchData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FetchData类属于org.rrd4j.core包,在下文中一共展示了FetchData类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: query

import org.rrd4j.core.FetchData; //导入依赖的package包/类
public double query(String dsName, long startTimestamp, long endTimestamp, ConsolFun consolidationFunction) {
    long tStart = convertToUnixTimestamp(startTimestamp);
    long tEnd = convertToUnixTimestamp(endTimestamp);
    if (tStart == tEnd) {
        this.logger.warn("Shifting end time by 1 second because it is identical with the start time.");
        tEnd++;
    }
    try {
        final FetchRequest request = this.rrdDb.createFetchRequest(consolidationFunction, tStart, tEnd);
        final FetchData fetchData = request.fetchData();
        return fetchData.getAggregate(dsName, consolidationFunction);
    } catch (IOException e) {
        e.printStackTrace();
        return Double.NaN;
    }
}
 
开发者ID:daqcri,项目名称:rheem,代码行数:17,代码来源:RrdAccessor.java

示例2: addRrdData

import org.rrd4j.core.FetchData; //导入依赖的package包/类
private Map<Long, ArrayList<String>> addRrdData(
		Map<Long, ArrayList<String>> data, String itemName,
		ConsolFun consilidationFunction, Date timeBegin, Date timeEnd,
		long resolution) throws IOException {
	RrdDb rrdDb = new RrdDb(RRD_FOLDER + File.separator + itemName + ".rrd");
	FetchRequest fetchRequest = rrdDb.createFetchRequest(
			consilidationFunction, Util.getTimestamp(timeBegin),
			Util.getTimestamp(timeEnd), resolution);
	FetchData fetchData = fetchRequest.fetchData();
	// logger.info(fetchData.toString());
	long[] timestamps = fetchData.getTimestamps();
	double[][] values = fetchData.getValues();

	logger.debug("RRD fetch returned '{}' rows and '{}' columns",
			fetchData.getRowCount(), fetchData.getColumnCount());

	for (int row = 0; row < fetchData.getRowCount(); row++) {
		// change to microseconds
		long time = timestamps[row] * 1000L;

		if (!data.containsKey(time)) {
			data.put(time, new ArrayList<String>());
		}
		ArrayList<String> vals = data.get(time);
		int indexOffset = vals.size();
		for (int dsIndex = 0; dsIndex < fetchData.getColumnCount(); dsIndex++) {
			vals.add(dsIndex + indexOffset,
					formatDouble(values[dsIndex][row], "null", true));
		}
	}
	rrdDb.close();

	return data;
}
 
开发者ID:andrey-desman,项目名称:openhab-hdl,代码行数:35,代码来源:RrdResource.java

示例3: addRrdData

import org.rrd4j.core.FetchData; //导入依赖的package包/类
private Map<Long, ArrayList<String>> addRrdData(Map<Long, ArrayList<String>> data, String itemName,
        ConsolFun consilidationFunction, Date timeBegin, Date timeEnd, long resolution) throws IOException {
    RrdDb rrdDb = new RrdDb(RRD_FOLDER + File.separator + itemName + ".rrd");
    FetchRequest fetchRequest = rrdDb.createFetchRequest(consilidationFunction, Util.getTimestamp(timeBegin),
            Util.getTimestamp(timeEnd), resolution);
    FetchData fetchData = fetchRequest.fetchData();
    // logger.info(fetchData.toString());
    long[] timestamps = fetchData.getTimestamps();
    double[][] values = fetchData.getValues();

    logger.debug("RRD fetch returned '{}' rows and '{}' columns", fetchData.getRowCount(),
            fetchData.getColumnCount());

    for (int row = 0; row < fetchData.getRowCount(); row++) {
        // change to microseconds
        long time = timestamps[row] * 1000;

        if (!data.containsKey(time)) {
            data.put(time, new ArrayList<String>());
        }
        ArrayList<String> vals = data.get(time);
        int indexOffset = vals.size();
        for (int dsIndex = 0; dsIndex < fetchData.getColumnCount(); dsIndex++) {
            vals.add(dsIndex + indexOffset, formatDouble(values[dsIndex][row], "null", true));
        }
    }
    rrdDb.close();

    return data;
}
 
开发者ID:openhab,项目名称:openhab2-addons,代码行数:31,代码来源:ChartResource.java

示例4: getAttributesHistory

import org.rrd4j.core.FetchData; //导入依赖的package包/类
@Override
public String getAttributesHistory(String objectName, String[] attrs, String range) throws IOException {

    RrdDb db = new RrdDb(statBaseName, true);

    long timeEnd = db.getLastUpdateTime();
    // force float separator for JSON parsing
    DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.US);
    otherSymbols.setDecimalSeparator('.');
    // formatting will greatly reduce response size
    DecimalFormat formatter = new DecimalFormat("###.###", otherSymbols);

    // construct the JSON response directly in a String
    StringBuilder result = new StringBuilder();
    result.append("{");

    for (int i = 0; i < attrs.length; i++) {

        String dataSource = RRDSigarDataStore.toDataStoreName(attrs[i] + "-" + objectName);

        char zone = range.charAt(0);
        long timeStart;

        switch (zone) {
            default:
            case 'a': // 1 minute
                timeStart = timeEnd - 60;
                break;
            case 'm': // 10 minute
                timeStart = timeEnd - 60 * 10;
                break;
            case 'h': // 1 hours
                timeStart = timeEnd - 60 * 60;
                break;
            case 'H': // 8 hours
                timeStart = timeEnd - 60 * 60 * 8;
                break;
            case 'd': // 1 day
                timeStart = timeEnd - 60 * 60 * 24;
                break;
            case 'w': // 1 week
                timeStart = timeEnd - 60 * 60 * 24 * 7;
                break;
            case 'M': // 1 month
                timeStart = timeEnd - 60 * 60 * 24 * 28;
                break;
            case 'y': // 1 year
                timeStart = timeEnd - 60 * 60 * 24 * 365;
                break;
        }

        FetchRequest req = db.createFetchRequest(ConsolFun.AVERAGE, timeStart, timeEnd);
        req.setFilter(dataSource);
        FetchData fetchData = req.fetchData();
        result.append("\"").append(dataSource).append("\":[");

        double[] values = fetchData.getValues(dataSource);
        for (int j = 0; j < values.length - 1; j++) {
            if (Double.compare(Double.NaN, values[j]) == 0) {
                result.append("null");
            } else {
                result.append(formatter.format(values[j]));
            }
            if (j < values.length - 2)
                result.append(',');
        }
        result.append(']');
        if (i < attrs.length - 1)
            result.append(',');
    }
    result.append("}");

    db.close();

    return result.toString();
}
 
开发者ID:ow2-proactive,项目名称:scheduling,代码行数:77,代码来源:SigarProcesses.java

示例5: testSpike

import org.rrd4j.core.FetchData; //导入依赖的package包/类
@Test
public void testSpike() throws IOException {
    RrdDef rrdDef = new RrdDef("testSpike.rrd", 0, 60);
    rrdDef.setVersion(2);
    rrdDef.addDatasource("ds", GAUGE, 3600, -5, 30);
    rrdDef.addArchive(AVERAGE, 0.5, 60, 999);
    RrdDb rrdDb = new RrdDb(rrdDef,factory);

    Calendar testTime = Calendar.getInstance();
    testTime.set(Calendar.MINUTE, 0);
    testTime.set(Calendar.SECOND, 0);
    testTime.set(Calendar.MILLISECOND, 0);
    System.out.println(testTime);
    //testTime.add(Calendar.HOUR, -1);
    long start =  Util.getTimestamp(testTime);
    long timeStamp = start;

    for(int i = 0; i < 180; i++) {
        long  sampleTime = timeStamp;
        if(i == 117) {
            sampleTime += -1;
        }
        rrdDb.createSample(sampleTime).setValue("ds", 30).update();
        timeStamp += 60;
    }

    long end = timeStamp;
    FetchData f = rrdDb.createFetchRequest(AVERAGE, start, end).fetchData();
    System.out.println(f.dump());
    double[] values = f.getValues("ds");

    assertTrue("Data before first entry", Double.isNaN(values[0]));
    assertEquals("Bad average in point 1", 30, values[1], 1e-3);
    assertEquals("Bad average in point 2", 30, values[2], 1e-3);
    assertTrue("Data after last entry", Double.isNaN(values[3]));

    rrdDb.close();

    RrdDb rrdDbForRead = new RrdDb("testSpike.rrd",factory);
    FetchData result = rrdDbForRead.createFetchRequest(AVERAGE, start, end).fetchData();
    System.out.println(f.dump());
    double[] resultData = result.getValues("ds");

    assertTrue("Data before first entry", Double.isNaN(resultData[0]));
    assertEquals("Bad average in point 1", 30, resultData[1], 1e-3);
    assertEquals("Bad average in point 2", 30, resultData[2], 1e-3);
    assertTrue("Data after last entry", Double.isNaN(resultData[3]));

    rrdDbForRead.close();
}
 
开发者ID:ChaosXu,项目名称:rrd4j-cassandra,代码行数:51,代码来源:CassandraBackendTest.java


注:本文中的org.rrd4j.core.FetchData类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。