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
4 changes: 2 additions & 2 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
ARG MESH_REGISTRY_HOST=docker.gentics.com
ARG MESH_VERSION

FROM maven:3.8-eclipse-temurin-17 AS build-env

ARG MVN_USERNAME
ARG MVN_PASSWORD

FROM maven:3.8-eclipse-temurin-17 AS build-env

ARG MESH_CONNECTOR
ARG MESH_ARTIFACTS_REPO=maven-snapshots

Expand Down
6 changes: 6 additions & 0 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,17 @@
<handlebars.version>4.5.2</handlebars.version>
<hsqldb.version>2.7.3</hsqldb.version>
<micrometer.version>1.15.5</micrometer.version>
<vertx-common.version>0.0.3-SNAPSHOT</vertx-common.version>
</properties>

<!-- IMPORTANT: Always keep dependencies in-sync with mesh-plugin-parent pom in order to avoid duplicate libraries in shaded plugin jars -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.gentics.vertx</groupId>
<artifactId>vertx-common</artifactId>
<version>${vertx-common.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Replaces liveness check with new generic liveness check library.
8 changes: 8 additions & 0 deletions common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
</dependencyManagement>

<dependencies>
<dependency>
<groupId>com.gentics</groupId>
<artifactId>cmp-liveness-dagger</artifactId>
</dependency>
<dependency>
<groupId>com.gentics.vertx</groupId>
<artifactId>vertx-common</artifactId>
</dependency>
<dependency>
<groupId>com.gentics.mesh</groupId>
<artifactId>mesh-mdm-common</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
import com.gentics.mesh.core.endpoint.admin.consistency.ConsistencyCheck;
import com.gentics.mesh.etc.config.MeshOptions;
import com.gentics.mesh.monitor.liveness.EventBusLivenessManager;
import com.gentics.mesh.monitor.liveness.LivenessManager;
import com.gentics.mesh.search.SearchProvider;
import com.gentics.mesh.search.index.BucketManager;
import com.gentics.mesh.util.SearchWaitUtil;
import com.gentics.monitoring.liveness.LivenessManager;

/**
* Central dagger mesh component which will expose dependencies.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@

import com.gentics.mesh.annotation.Getter;
import com.gentics.mesh.etc.config.MeshOptions;
import com.gentics.mesh.log.RouterLoggerHandlerImpl;
import com.gentics.mesh.monitor.liveness.LivenessManager;
import com.gentics.mesh.router.route.DefaultNotFoundHandler;
import com.gentics.mesh.router.route.FailureHandler;
import com.gentics.mesh.router.route.PoweredByHandler;
import com.gentics.mesh.router.route.SecurityLoggingHandler;

import com.gentics.monitoring.liveness.LivenessManager;
import com.gentics.vertx.logging.CmpLoggerHandlerImpl;
import io.vertx.core.Vertx;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.handler.LoggerFormat;

/**
* @see RootRouter
Expand All @@ -35,7 +34,7 @@ public RootRouterImpl(Vertx vertx, RouterStorage storage, MeshOptions options, L
this.vertx = vertx;
this.router = Router.router(vertx);
// Root handlersA
router.route().handler(new RouterLoggerHandlerImpl(LoggerFormat.SHORT));
router.route().handler(new CmpLoggerHandlerImpl());
// TODO add a dedicated error for api router that informs about
// APPLICATION_JSON requirements. This may not be true for other
// routes (eg. custom
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javax.inject.Inject;
import javax.naming.InvalidNameException;

import com.gentics.monitoring.liveness.LivenessManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -17,7 +18,6 @@
import com.gentics.mesh.etc.config.MeshOptions;
import com.gentics.mesh.handler.VersionHandler;
import com.gentics.mesh.handler.VersionHandlerImpl;
import com.gentics.mesh.monitor.liveness.LivenessManager;

import dagger.Lazy;
import io.vertx.core.Vertx;
Expand Down Expand Up @@ -59,10 +59,10 @@ public class RouterStorageImpl implements RouterStorage {

@Inject
public RouterStorageImpl(Vertx vertx, MeshOptions options, MeshAuthChain authChain, CorsHandler corsHandler, BodyHandlerImpl bodyHandler,
Lazy<BootstrapInitializer> boot,
Lazy<Database> db, VersionHandlerImpl versionHandler,
RouterStorageRegistryImpl routerStorageRegistry,
LivenessManager liveness, LocalConfigApi localConfigApi) {
Lazy<BootstrapInitializer> boot,
Lazy<Database> db, VersionHandlerImpl versionHandler,
RouterStorageRegistryImpl routerStorageRegistry,
LivenessManager liveness, LocalConfigApi localConfigApi) {
this.vertx = vertx;
this.options = options;
this.boot = boot;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.MissingResourceException;
import java.util.Optional;

import com.gentics.monitoring.liveness.LivenessManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -22,7 +23,6 @@
import com.gentics.mesh.etc.config.HttpServerConfig;
import com.gentics.mesh.json.JsonUtil;
import com.gentics.mesh.json.MeshJsonException;
import com.gentics.mesh.monitor.liveness.LivenessManager;

import io.vertx.core.Handler;
import io.vertx.core.VertxException;
Expand Down
17 changes: 16 additions & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@


<dependencies>

<!-- Internal dependencies -->
<dependency>
<groupId>com.gentics.mesh</groupId>
Expand All @@ -61,6 +60,11 @@
<artifactId>mesh-graphql</artifactId>
</dependency>

<dependency>
<groupId>com.gentics</groupId>
<artifactId>cmp-liveness-dagger</artifactId>
</dependency>

<!-- Plugin dependency -->
<dependency>
<groupId>io.vertx</groupId>
Expand Down Expand Up @@ -146,6 +150,17 @@
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-micrometer-1.5</artifactId>
<version>2.30.0-alpha</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
<version>1.64.0</version>
</dependency>

<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;

import com.gentics.monitoring.liveness.LivenessManager;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
Expand Down Expand Up @@ -72,7 +73,6 @@
import com.gentics.mesh.etc.config.MonitoringConfig;
import com.gentics.mesh.event.EventBusStore;
import com.gentics.mesh.monitor.liveness.EventBusLivenessManager;
import com.gentics.mesh.monitor.liveness.LivenessManager;
import com.gentics.mesh.plugin.manager.MeshPluginManager;
import com.gentics.mesh.router.RouterStorageRegistryImpl;
import com.gentics.mesh.search.IndexHandlerRegistryImpl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import com.gentics.mesh.core.endpoint.admin.LocalConfigApi;
import com.gentics.mesh.core.rest.admin.localconfig.LocalConfigModel;
import com.gentics.mesh.core.rest.plugin.PluginStatus;
import com.gentics.mesh.monitor.liveness.LivenessManager;
import com.gentics.mesh.plugin.manager.MeshPluginManager;

import com.gentics.monitoring.liveness.LivenessManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.vertx.ext.web.RoutingContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package com.gentics.mesh.dagger.module;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

import com.gentics.mesh.auth.MeshOAuthService;
import com.gentics.mesh.auth.oauth2.MeshOAuth2ServiceImpl;
import com.gentics.mesh.cache.CacheCollection;
Expand Down Expand Up @@ -107,11 +104,9 @@
import com.gentics.mesh.event.impl.EventQueueBatchImpl;
import com.gentics.mesh.handler.RangeRequestHandler;
import com.gentics.mesh.handler.impl.RangeRequestHandlerImpl;
import com.gentics.mesh.liveness.LivenessManagerImpl;
import com.gentics.mesh.metric.MetricsService;
import com.gentics.mesh.metric.MetricsServiceImpl;
import com.gentics.mesh.monitor.liveness.EventBusLivenessManager;
import com.gentics.mesh.monitor.liveness.LivenessManager;
import com.gentics.mesh.plugin.env.PluginEnvironment;
import com.gentics.mesh.plugin.manager.MeshPluginManager;
import com.gentics.mesh.plugin.manager.MeshPluginManagerImpl;
Expand Down Expand Up @@ -148,16 +143,22 @@
import com.gentics.mesh.security.SecurityUtils;
import com.gentics.mesh.security.SecurityUtilsImpl;
import com.gentics.mesh.storage.LocalBinaryStorageImpl;

import com.gentics.monitoring.liveness.dagger.LivenessManagerModule;
import dagger.Binds;
import dagger.Module;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
* Dagger module for common bindings
*/
@Module
@Module(includes = {
LivenessManagerModule .class,
MeshLivenessModule.class
})
public abstract class CommonBindModule {


@Binds
abstract LocalConfigApi localConfigApi(LocalConfigApiImpl e);

Expand Down Expand Up @@ -323,9 +324,6 @@ public abstract class CommonBindModule {
@Binds
abstract SecurityUtils bindSecurityUtils(SecurityUtilsImpl e);

@Binds
abstract LivenessManager bindLivenessManager(LivenessManagerImpl e);

@Binds
abstract EventBusLivenessManager bindEventbusLivenessManager(EventBusLivenessManagerImpl e);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
package com.gentics.mesh.dagger.module;

import com.gentics.monitoring.liveness.dagger.LivenessManagerModule;
import dagger.Module;

/**
* Main module which aggregates all sub modules.
*/
@Module(includes = { MeshModule.class, PluginModule.class, SearchProviderModule.class, DebugInfoProviderModule.class, MicrometerModule.class,
DaoTransformableModule.class, CommonBindModule.class, JobProcessingModule.class })
@Module(includes = {
MeshModule.class,
PluginModule.class,
SearchProviderModule.class,
DebugInfoProviderModule.class,
MicrometerModule.class,
DaoTransformableModule.class,
CommonBindModule.class,
JobProcessingModule.class,
LivenessManagerModule.class,
MeshLivenessModule.class
})
public class CommonModule {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.gentics.mesh.dagger.module;

import com.gentics.mesh.core.rest.plugin.PluginStatus;
import com.gentics.mesh.etc.config.MeshOptions;
import com.gentics.mesh.plugin.manager.MeshPluginManager;
import com.gentics.monitoring.liveness.LivenessCheck;
import com.gentics.monitoring.liveness.LivenessManagerOptions;
import dagger.Lazy;
import dagger.Module;
import dagger.Provides;
import dagger.multibindings.IntoSet;

/**
* Mesh-specific liveness configuration including plugin checks.
*/
@Module
public class MeshLivenessModule {

@Provides
static LivenessManagerOptions provideLivenessManagerOptions(MeshOptions options) {
return new LivenessManagerOptions(options.getLivePath())
.setMemoryLimit(options.getMonitoringOptions().getMemoryLimit())
.setGcTimeLimit(options.getMonitoringOptions().getGcTimeLimit());
}

@Provides
@IntoSet
static LivenessCheck providePluginLivenessCheck(Lazy<MeshPluginManager> pluginManager) {
return () -> {
for (var id: pluginManager.get().getPluginIds()) {
var status = pluginManager.get().getStatus(id);

if (status == PluginStatus.FAILED) {
return false;
}
}

return true;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.prometheusmetrics.PrometheusConfig;
import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.vertx.core.metrics.MetricsOptions;
import io.vertx.micrometer.Label;
import io.vertx.micrometer.Match;
Expand All @@ -35,6 +38,12 @@
@Module
public class MicrometerModule {

@Provides
@Singleton
public static OpenTelemetry openTelemetry() {
return AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
}

/**
* Create the meter registry for the given mesh options. The registry will automatically be tagged to include information about the nodeName and cluster
* name.
Expand All @@ -44,8 +53,8 @@ public class MicrometerModule {
*/
@Provides
@Singleton
public static MeterRegistry meterRegistry(MeshOptions options) {
PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
public static MeterRegistry meterRegistry(MeshOptions options, OpenTelemetry openTelemetry) {
var registry = OpenTelemetryMeterRegistry.builder(openTelemetry).build();

List<Tag> tags = Stream.of(
createTag("nodeName", options.getNodeName()),
Expand Down
Loading