summaryrefslogtreecommitdiffstats
path: root/config-proxy
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-07-12 10:42:31 +0200
committerHarald Musum <musum@verizonmedia.com>2019-07-12 10:42:31 +0200
commit8d8783a3f13dfaa134c11888516dfa5c0b507aae (patch)
tree57e7503f637ac6f76649ba91e9e2a47b2ac56522 /config-proxy
parentb1d06e05aa49d7004e39f42bea5446c7c4f2f5a6 (diff)
Remove event logging from config proxy
Statistics in config proxy are logged as events in vespa log, we want to move away from that to using real metrics if we need something like this in the future. AFAIK these events have not proved useful for anything in a long time.
Diffstat (limited to 'config-proxy')
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java1
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyStatistics.java104
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java49
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java6
-rw-r--r--config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java25
-rw-r--r--config-proxy/src/test/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClientTest.java5
6 files changed, 15 insertions, 175 deletions
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
index 5ffc7293742..e815fd9a5f9 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
@@ -133,7 +133,6 @@ public class ConfigProxyRpcServer implements Runnable, TargetWatcher, RpcServer
dispatchRpcRequest(req, () -> {
JRTServerConfigRequest request = JRTServerConfigRequestV3.createFromRequest(req);
if (isProtocolVersionSupported(request)) {
- proxyServer.getStatistics().incRpcRequests();
req.target().addWatcher(this);
getConfigImpl(request);
return;
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyStatistics.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyStatistics.java
deleted file mode 100644
index 314a4b0cb11..00000000000
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyStatistics.java
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.config.proxy;
-
-import com.yahoo.log.LogLevel;
-import com.yahoo.log.event.Event;
-
-/**
- * Statistics/metrics for config proxy.
- * //TODO Use metrics framework
- *
- * @author hmusum
- */
-class ConfigProxyStatistics implements Runnable {
- static final long defaultEventInterval = 5 * 60; // in seconds
-
- private final long eventInterval; // in seconds
- private boolean stopped;
- private long lastRun = System.currentTimeMillis();
-
- /* Number of RPC getConfig requests */
- private long rpcRequests = 0;
- private long processedRequests = 0;
- private long errors = 0;
- private long delayedResponses = 0;
-
- ConfigProxyStatistics() {
- this(defaultEventInterval);
- }
-
- ConfigProxyStatistics(long eventInterval) {
- this.eventInterval = eventInterval;
- }
-
- // Send events every eventInterval seconds
- public void run() {
- while (true) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- ProxyServer.log.log(LogLevel.WARNING, e.getMessage());
- }
- if (stopped) {
- return;
- }
- ProxyServer.log.log(LogLevel.SPAM, "Running ConfigProxyStatistics");
- // Only send events every eventInterval seconds
- if ((System.currentTimeMillis() - lastRun) > eventInterval * 1000) {
- lastRun = System.currentTimeMillis();
- sendEvents();
- }
- }
- }
-
- private void sendEvents() {
- Event.count("rpc_requests", rpcRequests());
- Event.count("processed_messages", processedRequests());
- Event.count("errors", errors());
- Event.value("delayed_responses", delayedResponses());
- }
-
- void stop() {
- stopped = true;
- }
-
- Long getEventInterval() {
- return eventInterval;
- }
-
- void incRpcRequests() {
- rpcRequests++;
- }
-
- void incProcessedRequests() {
- processedRequests++;
- }
-
- void incErrorCount() {
- errors++;
- }
-
- long processedRequests() {
- return processedRequests;
- }
-
- long rpcRequests() {
- return rpcRequests;
- }
-
- long errors() {
- return errors;
- }
-
- long delayedResponses() {
- return delayedResponses;
- }
-
- void delayedResponses(long count) {
- delayedResponses = count;
- }
-
- void decDelayedResponses() {
- delayedResponses--;
- }
-}
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java
index 4bf3bd5a786..c819192eb62 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java
@@ -38,7 +38,7 @@ public class ProxyServer implements Runnable {
private static final int JRT_TRANSPORT_THREADS = 4;
static final String DEFAULT_PROXY_CONFIG_SOURCES = "tcp/localhost:19070";
- final static Logger log = Logger.getLogger(ProxyServer.class.getName());
+ private final static Logger log = Logger.getLogger(ProxyServer.class.getName());
private final AtomicBoolean signalCaught = new AtomicBoolean(false);
// Scheduled executor that periodically checks for requests that have timed out and response should be returned to clients
@@ -52,7 +52,6 @@ public class ProxyServer implements Runnable {
private volatile ConfigSourceClient configClient;
- private final ConfigProxyStatistics statistics;
private final TimingValues timingValues;
private final MemoryCache memoryCache;
private static final double timingValuesRatio = 0.8;
@@ -72,33 +71,29 @@ public class ProxyServer implements Runnable {
defaultTimingValues = tv;
}
- private ProxyServer(Spec spec, DelayedResponses delayedResponses, ConfigSourceSet source,
- ConfigProxyStatistics statistics, TimingValues timingValues,
- boolean delayedResponseHandling, MemoryCache memoryCache,
- ConfigSourceClient configClient) {
+ private ProxyServer(Spec spec, DelayedResponses delayedResponses, ConfigSourceSet source, TimingValues timingValues,
+ boolean delayedResponseHandling, MemoryCache memoryCache, ConfigSourceClient configClient) {
this.delayedResponses = delayedResponses;
this.configSource = source;
log.log(LogLevel.DEBUG, "Using config source '" + source);
- this.statistics = statistics;
this.timingValues = timingValues;
this.delayedResponseHandling = delayedResponseHandling;
this.memoryCache = memoryCache;
this.rpcServer = createRpcServer(spec);
- this.configClient = createClient(rpcServer, statistics, delayedResponses, source, timingValues, memoryCache, configClient);
+ this.configClient = createClient(rpcServer, delayedResponses, source, timingValues, memoryCache, configClient);
this.fileDistributionAndUrlDownload = new FileDistributionAndUrlDownload(supervisor, source);
}
static ProxyServer createTestServer(ConfigSourceSet source) {
- return createTestServer(source, null, new MemoryCache(), new ConfigProxyStatistics());
+ return createTestServer(source, null, new MemoryCache());
}
static ProxyServer createTestServer(ConfigSourceSet source,
ConfigSourceClient configSourceClient,
- MemoryCache memoryCache,
- ConfigProxyStatistics statistics) {
+ MemoryCache memoryCache) {
final boolean delayedResponseHandling = false;
return new ProxyServer(null, new DelayedResponses(),
- source, statistics, defaultTimingValues(), delayedResponseHandling,
+ source, defaultTimingValues(), delayedResponseHandling,
memoryCache, configSourceClient);
}
@@ -120,7 +115,6 @@ public class ProxyServer implements Runnable {
}
RawConfig resolveConfig(JRTServerConfigRequest req) {
- statistics.incProcessedRequests();
// Calling getConfig() will either return with an answer immediately or
// create a background thread that retrieves config from the server and
// calls updateSubscribers when new config is returned from the config source.
@@ -155,12 +149,11 @@ public class ProxyServer implements Runnable {
}
}
- private ConfigSourceClient createClient(RpcServer rpcServer, ConfigProxyStatistics statistics,
- DelayedResponses delayedResponses,
+ private ConfigSourceClient createClient(RpcServer rpcServer, DelayedResponses delayedResponses,
ConfigSourceSet source, TimingValues timingValues,
MemoryCache memoryCache, ConfigSourceClient client) {
return (client == null)
- ? new RpcConfigSourceClient(rpcServer, source, statistics, memoryCache, timingValues, delayedResponses)
+ ? new RpcConfigSourceClient(rpcServer, source, memoryCache, timingValues, delayedResponses)
: client;
}
@@ -169,7 +162,7 @@ public class ProxyServer implements Runnable {
}
private RpcConfigSourceClient createRpcClient() {
- return new RpcConfigSourceClient(rpcServer, configSource, statistics, memoryCache, timingValues, delayedResponses);
+ return new RpcConfigSourceClient(rpcServer, configSource, memoryCache, timingValues, delayedResponses);
}
private void setupSignalHandler() {
@@ -202,15 +195,10 @@ public class ProxyServer implements Runnable {
port = Integer.parseInt(args[0]);
}
Event.started("configproxy");
- ConfigProxyStatistics statistics = new ConfigProxyStatistics(properties.eventInterval);
- Thread t = new Thread(statistics);
- t.setName("Metrics generator");
- t.setDaemon(true);
- t.start();
ConfigSourceSet configSources = new ConfigSourceSet(properties.configSources);
DelayedResponses delayedResponses = new DelayedResponses();
- ProxyServer proxyServer = new ProxyServer(new Spec(null, port), delayedResponses, configSources, statistics,
+ ProxyServer proxyServer = new ProxyServer(new Spec(null, port), delayedResponses, configSources,
defaultTimingValues(), true, new MemoryCache(), null);
// catch termination and interrupt signal
proxyServer.setupSignalHandler();
@@ -221,18 +209,14 @@ public class ProxyServer implements Runnable {
}
static Properties getSystemProperties() {
- // Read system properties
- long eventInterval = Long.getLong("eventinterval", ConfigProxyStatistics.defaultEventInterval);
final String[] inputConfigSources = System.getProperty("proxyconfigsources", DEFAULT_PROXY_CONFIG_SOURCES).split(",");
- return new Properties(eventInterval, inputConfigSources);
+ return new Properties(inputConfigSources);
}
static class Properties {
- final long eventInterval;
final String[] configSources;
- Properties(long eventInterval, String[] configSources) {
- this.eventInterval = eventInterval;
+ Properties(String[] configSources) {
this.configSources = configSources;
}
}
@@ -245,10 +229,6 @@ public class ProxyServer implements Runnable {
return timingValues;
}
- ConfigProxyStatistics getStatistics() {
- return statistics;
- }
-
// Cancels all config instances and flushes the cache. When this method returns,
// the cache will not be updated again before someone calls getConfig().
private synchronized void flush() {
@@ -261,9 +241,6 @@ public class ProxyServer implements Runnable {
if (rpcServer != null) rpcServer.shutdown();
if (delayedResponseScheduler != null) delayedResponseScheduler.cancel(true);
flush();
- if (statistics != null) {
- statistics.stop();
- }
fileDistributionAndUrlDownload.close();
}
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
index c9f43ac48e2..d809a3c97ed 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java
@@ -38,7 +38,6 @@ class RpcConfigSourceClient implements ConfigSourceClient {
private final HashMap<ConfigCacheKey, Subscriber> activeSubscribers = new HashMap<>();
private final Object activeSubscribersLock = new Object();
private final MemoryCache memoryCache;
- private final ConfigProxyStatistics statistics;
private final DelayedResponses delayedResponses;
private final TimingValues timingValues;
@@ -48,13 +47,11 @@ class RpcConfigSourceClient implements ConfigSourceClient {
RpcConfigSourceClient(RpcServer rpcServer,
ConfigSourceSet configSourceSet,
- ConfigProxyStatistics statistics,
MemoryCache memoryCache,
TimingValues timingValues,
DelayedResponses delayedResponses) {
this.rpcServer = rpcServer;
this.configSourceSet = configSourceSet;
- this.statistics = statistics;
this.memoryCache = memoryCache;
this.delayedResponses = delayedResponses;
this.timingValues = timingValues;
@@ -122,7 +119,6 @@ class RpcConfigSourceClient implements ConfigSourceClient {
// happens at the same time
DelayedResponse delayedResponse = new DelayedResponse(request);
delayedResponses.add(delayedResponse);
- statistics.delayedResponses(delayedResponses.size());
final ConfigCacheKey configCacheKey = new ConfigCacheKey(input.getKey(), input.getDefMd5());
RawConfig cachedConfig = memoryCache.get(configCacheKey);
@@ -139,7 +135,6 @@ class RpcConfigSourceClient implements ConfigSourceClient {
// unless another thread already did it
ret = cachedConfig;
}
- statistics.decDelayedResponses();
}
if (!cachedConfig.isError() && cachedConfig.getGeneration() > 0) {
needToGetConfig = false;
@@ -220,7 +215,6 @@ class RpcConfigSourceClient implements ConfigSourceClient {
*/
public void updateSubscribers(RawConfig config) {
log.log(LogLevel.DEBUG, () -> "Config updated for " + config.getKey() + "," + config.getGeneration());
- if (config.isError()) { statistics.incErrorCount(); }
DelayQueue<DelayedResponse> responseDelayQueue = delayedResponses.responses();
log.log(LogLevel.SPAM, () -> "Delayed response queue: " + responseDelayQueue);
if (responseDelayQueue.size() == 0) {
diff --git a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
index 9d6d0ca2a39..803f5c85b5c 100644
--- a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
+++ b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
@@ -23,7 +23,6 @@ public class ProxyServerTest {
private final MemoryCache memoryCache = new MemoryCache();
private final MockConfigSource source = new MockConfigSource();
private MockConfigSourceClient client = new MockConfigSourceClient(source, memoryCache);
- private final ConfigProxyStatistics statistics = new ConfigProxyStatistics();
private ProxyServer proxy;
static final RawConfig fooConfig = ConfigTester.fooConfig;
@@ -42,7 +41,7 @@ public class ProxyServerTest {
source.clear();
source.put(fooConfig.getKey(), createConfigWithNextConfigGeneration(fooConfig, 0));
source.put(errorConfigKey, createConfigWithNextConfigGeneration(fooConfig, ErrorCode.UNKNOWN_DEFINITION));
- proxy = ProxyServer.createTestServer(source, client, memoryCache, statistics);
+ proxy = ProxyServer.createTestServer(source, client, memoryCache);
}
@After
@@ -64,27 +63,6 @@ public class ProxyServerTest {
assertThat(res.getPayload().toString(), is(ConfigTester.fooPayload.toString()));
assertEquals(1, memoryCache.size());
assertThat(memoryCache.get(new ConfigCacheKey(fooConfig.getKey(), fooConfig.getDefMd5())), is(res));
-
-
- assertEquals(1, statistics.processedRequests());
- assertEquals(0, statistics.rpcRequests());
- assertEquals(0, statistics.errors());
- assertEquals(0, statistics.delayedResponses());
-
- statistics.incProcessedRequests();
- statistics.incRpcRequests();
- statistics.incErrorCount();
- statistics.delayedResponses(1);
-
- assertEquals(2, statistics.processedRequests());
- assertEquals(1, statistics.rpcRequests());
- assertEquals(1, statistics.errors());
- assertEquals(1, statistics.delayedResponses());
-
- statistics.decDelayedResponses();
- assertEquals(0, statistics.delayedResponses());
-
- assertEquals(ConfigProxyStatistics.defaultEventInterval, statistics.getEventInterval().longValue());
}
/**
@@ -228,7 +206,6 @@ public class ProxyServerTest {
@Test
public void testReadingSystemProperties() {
ProxyServer.Properties properties = ProxyServer.getSystemProperties();
- assertThat(properties.eventInterval, is(ConfigProxyStatistics.defaultEventInterval));
assertThat(properties.configSources.length, is(1));
assertThat(properties.configSources[0], is(ProxyServer.DEFAULT_PROXY_CONFIG_SOURCES));
}
diff --git a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClientTest.java b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClientTest.java
index 7f762955b92..35f1dd8fcd8 100644
--- a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClientTest.java
+++ b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClientTest.java
@@ -18,7 +18,6 @@ import static org.junit.Assert.assertEquals;
public class RpcConfigSourceClientTest {
private MockRpcServer rpcServer;
- private ConfigProxyStatistics statistics;
private DelayedResponses delayedResponses;
private RpcConfigSourceClient rpcConfigSourceClient;
@@ -29,10 +28,9 @@ public class RpcConfigSourceClientTest {
@Before
public void setup() {
rpcServer = new MockRpcServer();
- statistics = new ConfigProxyStatistics();
delayedResponses = new DelayedResponses();
rpcConfigSourceClient =
- new RpcConfigSourceClient(rpcServer, new MockConfigSource(), statistics,
+ new RpcConfigSourceClient(rpcServer, new MockConfigSource(),
new MemoryCache(), ProxyServer.defaultTimingValues(), delayedResponses);
}
@@ -57,7 +55,6 @@ public class RpcConfigSourceClientTest {
public void errorResponse() {
configUpdatedSendResponse(ProxyServerTest.errorConfig);
assertSentResponses(0);
- assertEquals(1, statistics.errors());
}
@Test