Start influx servers at runtime.
import de.flapdoodle.embed.process.runtime.Network;
import io.apisense.embed.influx.InfluxServer;
import io.apisense.embed.influx.ServerAlreadyRunningException;
import io.apisense.embed.influx.ServerNotRunningException;
import io.apisense.embed.influx.configuration.InfluxConfigurationWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException, ServerAlreadyRunningException, InterruptedException, ServerNotRunningException {
InfluxServer.Builder builder = new InfluxServer.Builder();
int freeHttpPort = Network.getFreeServerPort();
int freeUdpPort = Network.getFreeServerPort();
// configuration to start InfluxDB server with HTTP on port `freeHttpPort`
// and default backup restore port
InfluxConfigurationWriter influxConfig = new InfluxConfigurationWriter.Builder()
.setHttp(freeHttpPort) // by default auth is disabled
.setUdp(freeUdpPort) // If you happen to need udp enabled, by default to 'udp' database
.build();
builder.setInfluxConfiguration(influxConfig); // let's start both of protocols, HTTP and UDP
InfluxServer server = builder.build();
server.start();
Thread.sleep(10 * 1000);
server.stop();
}
}
- InfluxDB is using 2 ports by default per server, one for the Backup & Restore feature, and another for the HTTP query endpoint. But you can extend it with 3th port parameter for UDP