use of mesosphere.marathon.client.model.v2.HealthCheck in project pravega by pravega.
the class BookkeeperService method createBookieApp.
private App createBookieApp() {
App app = new App();
app.setId(this.id);
app.setCpus(cpu);
app.setMem(mem);
app.setInstances(instances);
app.setConstraints(setConstraint("hostname", "UNIQUE"));
app.setContainer(new Container());
app.getContainer().setType(CONTAINER_TYPE);
app.getContainer().setDocker(new Docker());
app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/bookkeeper:" + PRAVEGA_VERSION);
Collection<Volume> volumeCollection = new ArrayList<>();
volumeCollection.add(createVolume("/bk", "mnt", "RW"));
// TODO: add persistent volume (see issue https://github.com/pravega/pravega/issues/639)
app.getContainer().setVolumes(volumeCollection);
app.setPorts(Arrays.asList(BK_PORT));
app.setRequirePorts(true);
// set env
String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;
Map<String, Object> map = new HashMap<>();
map.put("ZK_URL", zk);
map.put("ZK", zk);
map.put("bookiePort", String.valueOf(BK_PORT));
map.put("DLOG_EXTRA_OPTS", "-Xms512m");
app.setEnv(map);
// healthchecks
List<HealthCheck> healthCheckList = new ArrayList<>();
healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, BK_PORT));
app.setHealthChecks(healthCheckList);
return app;
}
use of mesosphere.marathon.client.model.v2.HealthCheck in project pravega by pravega.
the class ZookeeperService method createZookeeperApp.
private App createZookeeperApp() {
App app = new App();
app.setId(this.id);
app.setCpus(cpu);
app.setMem(mem);
app.setInstances(instances);
app.setContainer(new Container());
app.getContainer().setType(CONTAINER_TYPE);
app.getContainer().setDocker(new Docker());
app.getContainer().getDocker().setImage(ZK_IMAGE);
List<HealthCheck> healthCheckList = new ArrayList<>();
final HealthCheck hc = setHealthCheck(300, "TCP", false, 60, 20, 0, ZKSERVICE_ZKPORT);
healthCheckList.add(hc);
app.setHealthChecks(healthCheckList);
return app;
}
use of mesosphere.marathon.client.model.v2.HealthCheck in project pravega by pravega.
the class PravegaControllerService method createPravegaControllerApp.
/**
* To configure the controller app.
*
* @return App instance of marathon app
*/
private App createPravegaControllerApp() {
App app = new App();
app.setId(this.id);
app.setCpus(cpu);
app.setMem(mem);
app.setInstances(instances);
app.setConstraints(setConstraint("hostname", "UNIQUE"));
app.setContainer(new Container());
app.getContainer().setType(CONTAINER_TYPE);
app.getContainer().setDocker(new Docker());
app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/pravega:" + PRAVEGA_VERSION);
String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;
// set port
app.setPortDefinitions(Arrays.asList(createPortDefinition(CONTROLLER_PORT), createPortDefinition(REST_PORT)));
app.setRequirePorts(true);
List<HealthCheck> healthCheckList = new ArrayList<HealthCheck>();
healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, CONTROLLER_PORT));
app.setHealthChecks(healthCheckList);
// set env
String controllerSystemProperties = "-Xmx512m" + setSystemProperty("ZK_URL", zk) + setSystemProperty("CONTROLLER_RPC_PUBLISHED_HOST", this.id + ".marathon.mesos") + setSystemProperty("CONTROLLER_RPC_PUBLISHED_PORT", String.valueOf(CONTROLLER_PORT)) + setSystemProperty("CONTROLLER_SERVER_PORT", String.valueOf(CONTROLLER_PORT)) + setSystemProperty("REST_SERVER_PORT", String.valueOf(REST_PORT)) + setSystemProperty("log.level", "DEBUG") + setSystemProperty("log.dir", "$MESOS_SANDBOX/pravegaLogs") + setSystemProperty("curator-default-session-timeout", String.valueOf(10 * 1000)) + setSystemProperty("MAX_LEASE_VALUE", String.valueOf(60 * 1000)) + setSystemProperty("MAX_SCALE_GRACE_PERIOD", String.valueOf(60 * 1000)) + setSystemProperty("RETENTION_FREQUENCY_MINUTES", String.valueOf(2));
Map<String, Object> map = new HashMap<>();
map.put("PRAVEGA_CONTROLLER_OPTS", controllerSystemProperties);
app.setEnv(map);
app.setArgs(Arrays.asList("controller"));
return app;
}
use of mesosphere.marathon.client.model.v2.HealthCheck in project pravega by pravega.
the class PravegaSegmentStoreService method createPravegaSegmentStoreApp.
private App createPravegaSegmentStoreApp() {
App app = new App();
app.setId(this.id);
app.setCpus(cpu);
app.setMem(mem);
app.setInstances(instances);
// set constraints
app.setConstraints(setConstraint("hostname", "UNIQUE"));
// docker container
app.setContainer(new Container());
app.getContainer().setType(CONTAINER_TYPE);
app.getContainer().setDocker(new Docker());
// set the image and network
app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/pravega:" + PRAVEGA_VERSION);
// set port
app.setPortDefinitions(Arrays.asList(createPortDefinition(SEGMENTSTORE_PORT)));
app.setRequirePorts(true);
// healthchecks
List<HealthCheck> healthCheckList = new ArrayList<HealthCheck>();
healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, SEGMENTSTORE_PORT));
app.setHealthChecks(healthCheckList);
// set env
String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;
// Environment variables to configure SS service.
Map<String, Object> map = new HashMap<>();
map.put("ZK_URL", zk);
map.put("BK_ZK_URL", zk);
map.put("CONTROLLER_URL", conUri.toString());
getCustomEnvVars(map, SEGMENTSTORE_EXTRA_ENV);
// Properties set to override defaults for system tests
String hostSystemProperties = "-Xmx1024m" + setSystemProperty("autoScale.muteInSeconds", "120") + setSystemProperty("autoScale.cooldownInSeconds", "120") + setSystemProperty("autoScale.cacheExpiryInSeconds", "120") + setSystemProperty("autoScale.cacheCleanUpInSeconds", "120") + setSystemProperty("log.level", "DEBUG") + setSystemProperty("log.dir", "$MESOS_SANDBOX/pravegaLogs") + setSystemProperty("curator-default-session-timeout", String.valueOf(30 * 1000)) + setSystemProperty("hdfs.replaceDataNodesOnFailure", "false");
map.put("PRAVEGA_SEGMENTSTORE_OPTS", hostSystemProperties);
app.setEnv(map);
app.setArgs(Arrays.asList("segmentstore"));
return app;
}
use of mesosphere.marathon.client.model.v2.HealthCheck in project pravega by pravega.
the class MarathonBasedService method setHealthCheck.
HealthCheck setHealthCheck(final int gracePeriodSeconds, final String protocol, final boolean ignoreHttp1xx, final int intervalSeconds, final int timeoutSeconds, final int maxConsecutiveFailures) {
HealthCheck hc = new HealthCheck();
hc.setMaxConsecutiveFailures(maxConsecutiveFailures);
hc.setTimeoutSeconds(timeoutSeconds);
hc.setIntervalSeconds(intervalSeconds);
hc.setIgnoreHttp1xx(ignoreHttp1xx);
hc.setGracePeriodSeconds(gracePeriodSeconds);
hc.setProtocol(protocol);
return hc;
}
Aggregations