package org.sef4j.callstack.export.influxdb;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.sef4j.callstack.export.influxdb.jsonprinters.BasicTimeStatsLogHistogramInfluxDBPrinter;
import org.sef4j.callstack.export.influxdb.jsonprinters.PendingPerfCountInfluxDBPrinter;
import org.sef4j.callstack.export.influxdb.jsonprinters.PerfStatsInfluxDBPrinter;
import org.sef4j.callstack.stats.BasicTimeStatsLogHistogram;
import org.sef4j.callstack.stats.PendingPerfCount;
import org.sef4j.callstack.stats.PerfStats;
import org.sef4j.core.helpers.ext.influxdb.InfluxDBJsonSender;
import org.sef4j.core.helpers.senders.http.HttpPostBytesSenderFactory;
@Ignore
public class PerfStatsHttpPostInfluxDBJsonSenderIT extends AbstractInfluxDBSerieSenderIT {
private InfluxDBJsonSender sut = new InfluxDBJsonSender(url, dbName, username, password,
HttpPostBytesSenderFactory.DEFAULT_FACTORY);
@Test
public void testSendJSonBody() {
// Prepare
String json = "[ { \"name\": \"metric1\", \"columns\": [\"field1\", \"field2\", \"stringField1\" ], \"points\": [ [11.5, 20.6, \"test1\"] ] } ]";
// Perform
sut.sendJSonBody(json.getBytes());
// Post-check
}
@Test
public void testSendJSonBody_invalidJson() {
// Prepare
byte[] json = "[ invalid json ]".getBytes();
// Perform
try {
sut.sendJSonBody(json);
Assert.fail();
} catch(RuntimeException ex) {
// OK
String exMsg = ex.getMessage();
Assert.assertEquals("Failed to POST json to 'http://localhost:8086', response code:400 msg:Bad Request", exMsg);
}
// Post-check
}
@Test
public void testSend_PerfStats() {
// Prepare
PerfStatsInfluxDBPrinter perfStatPrinter = PerfStatsInfluxDBPrinter.DEFAULT_INSTANCE;
PerfStats perfStats = new PerfStats();
String perfStatsJson = perfStatPrinter.printValue("perfStats-test1", perfStats);
// Perform
sut.sendEvent(perfStatsJson);
// Post-check
// Prepare
PerfStats perfStats2 = new PerfStats();
String perfStatsJson2 = perfStatPrinter.printValue("perfStats-test2", perfStats2);
// Perform
sut.sendEvents(Arrays.asList(perfStatsJson, perfStatsJson2));
// Post-check
}
@Test
public void testSend_PendingPerfCount() {
// Prepare
PendingPerfCountInfluxDBPrinter pendingPerfCountPrinter = PendingPerfCountInfluxDBPrinter.INSTANCE;
PendingPerfCount value = new PendingPerfCount();
String json = pendingPerfCountPrinter.printValue("pending-test1", value);
// Perform
sut.sendEvent(json);
// Post-check
}
@Test
public void testSend_BasicTimeStatsLogHistogram() {
// Prepare
BasicTimeStatsLogHistogramInfluxDBPrinter basicStatsPrinter = BasicTimeStatsLogHistogramInfluxDBPrinter.INSTANCE;
BasicTimeStatsLogHistogram value = new BasicTimeStatsLogHistogram();
String json = basicStatsPrinter.printValue("basicTimeStats-test1", value);
// Perform
sut.sendEvent(json);
// Post-check
}
}