Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
<module>ranger-server-common</module>
<module>ranger-server-bundle</module>
<module>ranger-http-model</module>
<module>ranger-discovery-common</module>
<module>ranger-discovery-bundle</module>
<module>ranger-hub-server-bundle</module>
<module>ranger-server</module>
Expand Down Expand Up @@ -121,7 +122,6 @@
<dropwizard.version>2.1.12</dropwizard.version>
<logback.version>1.2.12</logback.version>
<metrics.version>4.2.0</metrics.version>

<jacoco.version>0.8.13</jacoco.version>
</properties>

Expand Down
5 changes: 5 additions & 0 deletions ranger-discovery-bundle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger-discovery-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger-zk-client</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,6 @@ public class Constants {

public static final int DEFAULT_PORT = -1;
public static final int DEFAULT_DW_CHECK_INTERVAL = 15;
public static final int DEFAULT_RETRY_CONN_INTERVAL = 5000;

public static final String ZOOKEEPER_HOST_DELIMITER = ",";
public static final String HOST_PORT_DELIMITER = ":";
public static final String PATH_DELIMITER = "/";

public static final Set<String> LOCAL_ADDRESSES = ImmutableSet.of("127.0.0.1", "127.0.1.1", "localhost");

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,22 @@
import io.appform.ranger.core.model.ServiceNode;
import io.appform.ranger.core.model.ShardSelector;
import io.appform.ranger.core.serviceprovider.ServiceProvider;
import io.appform.ranger.discovery.bundle.healthchecks.InitialDelayChecker;
import io.appform.ranger.discovery.bundle.healthchecks.InternalHealthChecker;
import io.appform.ranger.discovery.bundle.healthchecks.RotationCheck;
import io.appform.ranger.discovery.bundle.monitors.DropwizardHealthMonitor;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.healthchecks.InitialDelayChecker;
import io.appform.ranger.discovery.common.healthchecks.InternalHealthChecker;
import io.appform.ranger.discovery.common.healthchecks.RotationCheck;
import io.appform.ranger.discovery.common.monitors.DropwizardHealthMonitor;
import io.appform.ranger.discovery.bundle.monitors.DropwizardServerStartupCheck;
import io.appform.ranger.discovery.bundle.resolvers.DefaultNodeInfoResolver;
import io.appform.ranger.discovery.common.resolvers.DefaultNodeInfoResolver;
import io.appform.ranger.discovery.bundle.resolvers.DefaultPortSchemeResolver;
import io.appform.ranger.discovery.bundle.resolvers.NodeInfoResolver;
import io.appform.ranger.discovery.common.resolvers.NodeInfoResolver;
import io.appform.ranger.discovery.bundle.resolvers.PortSchemeResolver;
import io.appform.ranger.discovery.bundle.rotationstatus.BIRTask;
import io.appform.ranger.discovery.bundle.rotationstatus.DropwizardServerStatus;
import io.appform.ranger.discovery.common.rotationstatus.DropwizardServerStatus;
import io.appform.ranger.discovery.bundle.rotationstatus.OORTask;
import io.appform.ranger.discovery.bundle.rotationstatus.RotationStatus;
import io.appform.ranger.discovery.bundle.selectors.HierarchicalEnvironmentAwareShardSelector;
import io.appform.ranger.discovery.bundle.util.ConfigurationUtils;
import io.appform.ranger.discovery.common.rotationstatus.RotationStatus;
import io.appform.ranger.discovery.common.selectors.HierarchicalEnvironmentAwareShardSelector;
import io.appform.ranger.discovery.common.util.ConfigurationUtils;
import io.appform.ranger.id.IdGenerator;
import io.appform.ranger.id.NodeIdManager;
import io.appform.ranger.id.constraints.IdValidationConstraint;
Expand Down Expand Up @@ -294,7 +295,7 @@ private ServiceProvider<ShardInfo, ZkNodeDataSerializer<ShardInfo>> buildService
.withHealthcheck(new DropwizardServerStartupCheck(environment, serverStatus))
.withIsolatedHealthMonitor(new DropwizardHealthMonitor(
new TimeEntity(initialDelayForMonitor, dwMonitoringInterval, TimeUnit.SECONDS),
dwMonitoringStaleness * 1_000L, environment))
dwMonitoringStaleness * 1_000L, environment.healthChecks()))
.withHealthUpdateIntervalMs(serviceDiscoveryConfiguration.getRefreshTimeMs())
.withStaleUpdateThresholdMs(10000);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import io.appform.ranger.core.healthcheck.Healthcheck;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.bundle.rotationstatus.DropwizardServerStatus;
import io.appform.ranger.discovery.common.rotationstatus.DropwizardServerStatus;
import io.dropwizard.setup.Environment;
import lombok.extern.slf4j.Slf4j;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.appform.ranger.discovery.bundle.resolvers;

import io.appform.ranger.discovery.common.resolvers.CriteriaResolver;
import io.dropwizard.Configuration;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package io.appform.ranger.discovery.bundle.rotationstatus;


import io.appform.ranger.discovery.common.rotationstatus.RotationStatus;
import io.dropwizard.servlets.tasks.Task;
import lombok.extern.slf4j.Slf4j;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package io.appform.ranger.discovery.bundle.rotationstatus;

import io.appform.ranger.discovery.common.rotationstatus.RotationStatus;
import io.dropwizard.servlets.tasks.Task;
import lombok.extern.slf4j.Slf4j;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.bundle.util.ConfigurationUtils;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.util.ConfigurationUtils;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.health.HealthCheckRegistry;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.appform.ranger.discovery.bundle.util.ConfigurationUtils;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.util.ConfigurationUtils;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@
import com.google.common.collect.Lists;
import io.appform.ranger.discovery.bundle.rotationstatus.BIRTask;
import io.appform.ranger.discovery.bundle.rotationstatus.OORTask;
import io.appform.ranger.discovery.bundle.rotationstatus.RotationStatus;
import io.appform.ranger.discovery.bundle.util.ConfigurationUtils;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.rotationstatus.RotationStatus;
import io.appform.ranger.discovery.common.util.ConfigurationUtils;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.bundle.resolvers.DefaultNodeInfoResolver;
import io.appform.ranger.discovery.bundle.resolvers.NodeInfoResolver;
import io.appform.ranger.discovery.bundle.util.ConfigurationUtils;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.resolvers.DefaultNodeInfoResolver;
import io.appform.ranger.discovery.common.resolvers.NodeInfoResolver;
import io.appform.ranger.discovery.common.util.ConfigurationUtils;
import io.dropwizard.Configuration;
import io.dropwizard.jersey.DropwizardResourceConfig;
import io.dropwizard.jersey.setup.JerseyEnvironment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
*/
package io.appform.ranger.discovery.bundle.resolvers;

import io.appform.ranger.discovery.bundle.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.ServiceDiscoveryConfiguration;
import io.appform.ranger.discovery.common.resolvers.DefaultNodeInfoResolver;
import lombok.val;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
Expand Down
59 changes: 59 additions & 0 deletions ranger-discovery-common/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger</artifactId>
<version>1.1.1</version>
</parent>

<artifactId>ranger-discovery-common</artifactId>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failsafe.version>3.2.4</failsafe.version>
</properties>
<dependencies>
<dependency>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger-server-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>io.appform.ranger</groupId>
<artifactId>ranger-zk-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>dev.failsafe</groupId>
<artifactId>failsafe</artifactId>
<version>${failsafe.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-healthchecks</artifactId>
<version>${metrics.version}</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright 2024 Authors, Flipkart Internet Pvt. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package io.appform.ranger.discovery.common;

import lombok.experimental.UtilityClass;

/**
* Constants
*/
@UtilityClass
public class Constants {
public static final String DEFAULT_NAMESPACE = "default";
public static final String DEFAULT_HOST = "__DEFAULT_SERVICE_HOST";
public static final int DEFAULT_PORT = -1;
public static final int DEFAULT_DW_CHECK_INTERVAL = 15;
public static final int DEFAULT_RETRY_CONN_INTERVAL = 5000;

public static final String ZOOKEEPER_HOST_DELIMITER = ",";
public static final String HOST_PORT_DELIMITER = ":";
public static final String PATH_DELIMITER = "/";

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@
* limitations under the License.
*/

package io.appform.ranger.discovery.bundle;
package io.appform.ranger.discovery.common;

import com.google.common.base.Strings;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package io.appform.ranger.discovery.bundle.healthchecks;
package io.appform.ranger.discovery.common.healthchecks;

import io.appform.ranger.core.healthcheck.Healthcheck;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
* limitations under the License.
*/

package io.appform.ranger.discovery.bundle.healthchecks;
package io.appform.ranger.discovery.common.healthchecks;


import io.appform.ranger.core.healthcheck.Healthcheck;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
* limitations under the License.
*/

package io.appform.ranger.discovery.bundle.healthchecks;
package io.appform.ranger.discovery.common.healthchecks;

import io.appform.ranger.core.healthcheck.Healthcheck;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.discovery.bundle.rotationstatus.RotationStatus;
import io.appform.ranger.discovery.common.rotationstatus.RotationStatus;

/**
* This allows the node to be taken offline in the cluster but still keep running
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,33 @@
* limitations under the License.
*/

package io.appform.ranger.discovery.bundle.monitors;
package io.appform.ranger.discovery.common.monitors;

import com.codahale.metrics.health.HealthCheck;
import com.codahale.metrics.health.HealthCheckRegistry;
import io.appform.ranger.core.healthcheck.HealthcheckStatus;
import io.appform.ranger.core.healthservice.TimeEntity;
import io.appform.ranger.core.healthservice.monitor.IsolatedHealthMonitor;
import io.dropwizard.setup.Environment;

/**
* This monitor calls dropwizard healthchecks every few secs.
*/
public class DropwizardHealthMonitor extends IsolatedHealthMonitor<HealthcheckStatus> {

private final Environment environment;
private final HealthCheckRegistry healthCheckRegistry;

public DropwizardHealthMonitor(
TimeEntity runInterval,
long stalenessAllowedInMillis,
Environment environment) {
HealthCheckRegistry healthCheckRegistry) {
super("dropwizard-health-monitor", runInterval, stalenessAllowedInMillis);
this.environment = environment;
this.healthCheckRegistry = healthCheckRegistry;
}

@Override
public HealthcheckStatus monitor() {
return (null != environment.healthChecks()
&& environment.healthChecks()
return (null != healthCheckRegistry
&& healthCheckRegistry
.runHealthChecks()
.values()
.stream()
Expand Down
Loading