From 116e17f5f215406bed6569b387ed72747d4a5014 Mon Sep 17 00:00:00 2001
From: Pavel Orlov
Date: Mon, 10 Aug 2020 19:22:12 +0300
Subject: [PATCH] HH-114285 add consul tag if service implement
LogLevelOverrideExtension
---
.../java/ru/hh/nab/starter/ConsulService.java | 19 ++++++++++++++-----
.../java/ru/hh/nab/starter/NabProdConfig.java | 7 +++++--
.../ru/hh/nab/starter/NabAppTestConfig.java | 2 +-
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/nab-starter/src/main/java/ru/hh/nab/starter/ConsulService.java b/nab-starter/src/main/java/ru/hh/nab/starter/ConsulService.java
index 266fac1ca..0b285d1d8 100644
--- a/nab-starter/src/main/java/ru/hh/nab/starter/ConsulService.java
+++ b/nab-starter/src/main/java/ru/hh/nab/starter/ConsulService.java
@@ -2,6 +2,8 @@
import com.ecwid.consul.v1.ConsulClient;
import com.ecwid.consul.v1.agent.model.NewService;
+import java.util.ArrayList;
+import javax.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.hh.nab.common.properties.FileSettings;
@@ -11,22 +13,29 @@
import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
+import ru.hh.nab.starter.logging.LogLevelOverrideExtension;
public class ConsulService {
- private static final Logger logger = LoggerFactory.getLogger(ConsulService.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConsulService.class);
+
+ private static final String LOG_LEVEL_OVERRIDE_EXTENSION_TAG = "log_level_override_extension_enabled";
private final ConsulClient client;
private final NewService service;
private final String id;
private final boolean enabled;
- public ConsulService(FileSettings fileSettings, String datacenter, String address, AppMetadata appMetadata) {
+ public ConsulService(FileSettings fileSettings, String datacenter, String address, AppMetadata appMetadata,
+ @Nullable LogLevelOverrideExtension logLevelOverrideExtension) {
var applicationPort = fileSettings.getInteger("jetty.port");
var applicationHost = Optional.ofNullable(fileSettings.getString("consul.check.host"))
.orElse("127.0.0.1");
var id = fileSettings.getString("serviceName") + "-" + datacenter + "-" + address + "-" + applicationPort;
- var tags = fileSettings.getStringList("consul.tags");
+ var tags = new ArrayList<>(fileSettings.getStringList("consul.tags"));
+ if (logLevelOverrideExtension != null) {
+ tags.add(LOG_LEVEL_OVERRIDE_EXTENSION_TAG);
+ }
NewService.Check check = new NewService.Check();
check.setHttp("http://" + applicationHost + ":" + applicationPort + "/status");
@@ -61,7 +70,7 @@ public void register() {
if (enabled) {
try {
client.agentServiceRegister(service);
- logger.info("Registered consul service: {}", service);
+ LOGGER.info("Registered consul service: {}", service);
} catch (RuntimeException ex) {
throw new ConsulServiceException("Can't register service in consul", ex);
}
@@ -72,7 +81,7 @@ public void register() {
void deregister() {
if (enabled) {
client.agentServiceDeregister(id);
- logger.info("De-registered id: {} from consul", id);
+ LOGGER.info("De-registered id: {} from consul", id);
}
}
diff --git a/nab-starter/src/main/java/ru/hh/nab/starter/NabProdConfig.java b/nab-starter/src/main/java/ru/hh/nab/starter/NabProdConfig.java
index e987a149a..cfabeac3c 100644
--- a/nab-starter/src/main/java/ru/hh/nab/starter/NabProdConfig.java
+++ b/nab-starter/src/main/java/ru/hh/nab/starter/NabProdConfig.java
@@ -4,6 +4,7 @@
import com.timgroup.statsd.NonBlockingStatsDClient;
import com.timgroup.statsd.StatsDClient;
+import java.util.Optional;
import static java.util.Optional.ofNullable;
import java.io.IOException;
@@ -21,6 +22,7 @@
import static ru.hh.nab.common.properties.PropertiesUtils.fromFilesInSettingsDir;
import ru.hh.nab.starter.events.JettyEventListener;
+import ru.hh.nab.starter.logging.LogLevelOverrideExtension;
import static ru.hh.nab.starter.server.cache.HttpCacheFilterFactory.createCacheFilterHolder;
@Configuration
@@ -57,9 +59,10 @@ ConsulClient consulClient(FileSettings fileSettings) {
@Bean
@Lazy(value = false)
- ConsulService consulService(FileSettings fileSettings, String datacenter, AppMetadata appMetadata) throws UnknownHostException {
+ ConsulService consulService(FileSettings fileSettings, String datacenter, AppMetadata appMetadata,
+ Optional logLevelOverrideExtensionOptional) throws UnknownHostException {
var address = InetAddress.getLocalHost().getHostAddress();
- return new ConsulService(fileSettings, datacenter, address, appMetadata);
+ return new ConsulService(fileSettings, datacenter, address, appMetadata, logLevelOverrideExtensionOptional.orElse(null));
}
@Bean
diff --git a/nab-tests/src/test/java/ru/hh/nab/starter/NabAppTestConfig.java b/nab-tests/src/test/java/ru/hh/nab/starter/NabAppTestConfig.java
index 001e668e3..8380170a2 100644
--- a/nab-tests/src/test/java/ru/hh/nab/starter/NabAppTestConfig.java
+++ b/nab-tests/src/test/java/ru/hh/nab/starter/NabAppTestConfig.java
@@ -13,7 +13,7 @@
public class NabAppTestConfig {
@Bean
ConsulService consulService(FileSettings fileSettings, AppMetadata appMetadata) {
- return spy(new ConsulService(fileSettings, null, null, appMetadata));
+ return spy(new ConsulService(fileSettings, null, null, appMetadata, null));
}
@Bean