Search in sources :

Example 16 with TableDef

use of org.spf4j.tsdb2.avro.TableDef in project spf4j by zolyfarkas.

the class AllocationMonitorAspectTest method testAfterAllocation.

/**
 * Test of afterAllocation method, of class AllocationMonitorAspect.
 */
@Test
public void testAfterAllocation() throws InterruptedException, IOException {
    System.setProperty("spf4j.perf.allocations.sampleTimeMillis", "1000");
    MemoryUsageSampler.start(500);
    OpenFilesSampler.start(500, 512, 1000, false);
    for (int i = 0; i < 1000; i++) {
        LOG.debug("T{}", i);
        if (i % 100 == 0) {
            Thread.sleep(500);
        }
    }
    testAllocInStaticContext();
    TestClass.testAllocInStaticContext();
    final TSDBWriter dbWriter = ((TSDBMeasurementStore) RecorderFactory.MEASUREMENT_STORE).getDBWriter();
    dbWriter.flush();
    File file = dbWriter.getFile();
    List<TableDef> tableDef = TSDBQuery.getTableDef(file, "heap-used");
    Assert.assertFalse(tableDef.isEmpty());
    MemoryUsageSampler.stop();
    OpenFilesSampler.stop();
}
Also used : TSDBWriter(org.spf4j.tsdb2.TSDBWriter) File(java.io.File) TableDef(org.spf4j.tsdb2.avro.TableDef) TSDBMeasurementStore(org.spf4j.perf.impl.ms.tsdb.TSDBMeasurementStore) Test(org.junit.Test)

Example 17 with TableDef

use of org.spf4j.tsdb2.avro.TableDef in project spf4j by zolyfarkas.

the class TSDBReaderTest method testTsdb.

@Test
@SuppressFBWarnings({ "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE", "RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE", "NP_LOAD_OF_KNOWN_NULL_VALUE", "CLI_CONSTANT_LIST_INDEX" })
// try with resources trips up findbugs sometimes.
@SuppressWarnings("checkstyle:EmptyBlock")
public void testTsdb() throws IOException {
    File testFile = File.createTempFile("test", ".tsdb2");
    long tableId;
    try (TSDBWriter writer = new TSDBWriter(testFile, 4, "test", false)) {
    }
    try (TSDBWriter writer = new TSDBWriter(testFile, 4, "test", false)) {
        tableId = writer.writeTableDef(tableDef);
        final long time = System.currentTimeMillis();
        writer.writeDataRow(tableId, time, 0, 1, 2);
        writer.writeDataRow(tableId, time + 10, 1, 1, 2);
        writer.writeDataRow(tableId, time + 20, 2, 1, 2);
        writer.writeDataRow(tableId, time + 30, 3, 1, 2);
        writer.writeDataRow(tableId, time + 40, 4, 1, 2);
    }
    try (TSDBReader reader = new TSDBReader(testFile, 1024)) {
        Either<TableDef, DataBlock> read;
        while ((read = reader.read()) != null) {
            LOG.debug("TSDB block: {}", read);
        }
    }
    ListMultimap<String, TableDef> allTables = TSDBQuery.getAllTables(testFile);
    Assert.assertEquals(1, allTables.size());
    Assert.assertTrue(allTables.containsKey(tableDef.name));
    TimeSeries timeSeries = TSDBQuery.getTimeSeries(testFile, new long[] { tableId }, 0, Long.MAX_VALUE);
    Assert.assertEquals(2L, timeSeries.getValues()[2][0]);
}
Also used : File(java.io.File) TableDef(org.spf4j.tsdb2.avro.TableDef) DataBlock(org.spf4j.tsdb2.avro.DataBlock) Test(org.junit.Test) SuppressFBWarnings(edu.umd.cs.findbugs.annotations.SuppressFBWarnings)

Example 18 with TableDef

use of org.spf4j.tsdb2.avro.TableDef in project spf4j by zolyfarkas.

the class TSDBReaderTest method testTailing.

@Test
public void testTailing() throws IOException, InterruptedException, ExecutionException, TimeoutException {
    File testFile = File.createTempFile("test", ".tsdb2");
    try (TSDBWriter writer = new TSDBWriter(testFile, 4, "test", true);
        TSDBReader reader = new TSDBReader(testFile, 1024)) {
        writer.flush();
        final BlockingQueue<Either<TableDef, DataBlock>> queue = new ArrayBlockingQueue<>(100);
        Future<Void> bgWatch = reader.bgWatch((Either<TableDef, DataBlock> object, long deadline) -> {
            queue.put(object);
        }, TSDBReader.EventSensitivity.HIGH);
        long tableId = writer.writeTableDef(tableDef);
        writer.flush();
        final long time = System.currentTimeMillis();
        writer.writeDataRow(tableId, time, 0, 1, 2);
        writer.writeDataRow(tableId, time + 10, 1, 1, 2);
        writer.flush();
        Either<TableDef, DataBlock> td = queue.take();
        Assert.assertEquals(tableDef, td.getLeft());
        Either<TableDef, DataBlock> take = queue.take();
        Assert.assertEquals(2, take.getRight().getValues().size());
        writer.writeDataRow(tableId, time + 20, 2, 1, 2);
        writer.writeDataRow(tableId, time + 30, 3, 1, 2);
        writer.writeDataRow(tableId, time + 40, 4, 1, 2);
        writer.flush();
        Assert.assertEquals(3, queue.take().getRight().getValues().size());
        reader.stopWatching();
        bgWatch.get(10000, TimeUnit.MILLISECONDS);
    }
}
Also used : ArrayBlockingQueue(java.util.concurrent.ArrayBlockingQueue) Either(org.spf4j.base.Either) File(java.io.File) TableDef(org.spf4j.tsdb2.avro.TableDef) DataBlock(org.spf4j.tsdb2.avro.DataBlock) Test(org.junit.Test)

Aggregations

TableDef (org.spf4j.tsdb2.avro.TableDef)14 ColumnDef (org.spf4j.tsdb2.avro.ColumnDef)7 DataBlock (org.spf4j.tsdb2.avro.DataBlock)6 SuppressFBWarnings (edu.umd.cs.findbugs.annotations.SuppressFBWarnings)5 File (java.io.File)4 ArrayList (java.util.ArrayList)3 Test (org.junit.Test)3 TLongObjectHashMap (gnu.trove.map.hash.TLongObjectHashMap)2 IOException (java.io.IOException)2 Map (java.util.Map)2 JFreeChart (org.jfree.chart.JFreeChart)2 TSDBMeasurementStore (org.spf4j.perf.impl.ms.tsdb.TSDBMeasurementStore)2 TSDBWriter (org.spf4j.tsdb2.TSDBWriter)2 DataRow (org.spf4j.tsdb2.avro.DataRow)2 TLongList (gnu.trove.list.TLongList)1 TLongArrayList (gnu.trove.list.array.TLongArrayList)1 TLongObjectMap (gnu.trove.map.TLongObjectMap)1 Dimension (java.awt.Dimension)1 BufferedWriter (java.io.BufferedWriter)1 OutputStreamWriter (java.io.OutputStreamWriter)1