summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-11-05 22:32:26 +0100
committerGitHub <noreply@github.com>2021-11-05 22:32:26 +0100
commit213f516d7b3b613cc11b0de0ee74b69939cf7136 (patch)
tree79479020e3fa7816a300acb821ef68b7416fb2e2
parenta5ccb0a496677a9638510b12f741de465455d2ba (diff)
parentb4148a2a1fa384c590a9c45e92b347980a32676d (diff)
Merge pull request #19894 from vespa-engine/balder/gc-old-metrics-from-docproc
GC use of old metrics framework.
-rw-r--r--docproc/abi-spec.json4
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Call.java21
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/CallStack.java31
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java6
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java20
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java11
-rw-r--r--docproc/src/test/java/com/yahoo/docproc/SimpleDocumentProcessorTestCase.java4
7 files changed, 41 insertions, 56 deletions
diff --git a/docproc/abi-spec.json b/docproc/abi-spec.json
index 116e2c9edfb..34bf2c21824 100644
--- a/docproc/abi-spec.json
+++ b/docproc/abi-spec.json
@@ -79,8 +79,10 @@
],
"methods": [
"public void <init>(com.yahoo.docproc.DocumentProcessor)",
+ "public void <init>(com.yahoo.docproc.DocumentProcessor, com.yahoo.jdisc.Metric)",
"public void <init>(com.yahoo.docproc.DocumentProcessor, com.yahoo.statistics.Statistics, com.yahoo.jdisc.Metric)",
"public void <init>(com.yahoo.docproc.DocumentProcessor, java.lang.String, com.yahoo.statistics.Statistics, com.yahoo.jdisc.Metric)",
+ "public void <init>(com.yahoo.docproc.DocumentProcessor, java.lang.String, com.yahoo.jdisc.Metric)",
"public java.lang.Object clone()",
"public com.yahoo.docproc.DocumentProcessor getDocumentProcessor()",
"public com.yahoo.component.ComponentId getDocumentProcessorId()",
@@ -99,8 +101,10 @@
"methods": [
"public void <init>()",
"public void <init>(java.lang.String)",
+ "public void <init>(com.yahoo.jdisc.Metric)",
"public void <init>(com.yahoo.statistics.Statistics, com.yahoo.jdisc.Metric)",
"public void <init>(java.lang.String, com.yahoo.statistics.Statistics, com.yahoo.jdisc.Metric)",
+ "public void <init>(java.lang.String, com.yahoo.jdisc.Metric)",
"public void <init>(com.yahoo.docproc.CallStack)",
"public void <init>(java.lang.String, java.util.Collection, com.yahoo.statistics.Statistics, com.yahoo.jdisc.Metric)",
"public java.lang.String getName()",
diff --git a/docproc/src/main/java/com/yahoo/docproc/Call.java b/docproc/src/main/java/com/yahoo/docproc/Call.java
index 3598ddaff6c..c640dbcf832 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Call.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Call.java
@@ -11,7 +11,6 @@ import com.yahoo.document.DocumentPut;
import com.yahoo.document.DocumentUpdate;
import com.yahoo.jdisc.Metric;
import com.yahoo.concurrent.SystemTimer;
-import com.yahoo.statistics.Counter;
import com.yahoo.statistics.Statistics;
import java.util.List;
@@ -25,14 +24,12 @@ import java.util.List;
public class Call implements Cloneable {
private final DocumentProcessor processor;
- private final Counter docCounter;
private final String docCounterName;
- private final Counter procTimeCounter;
private final String procTimeCounterName;
private final Metric metric;
public Call(DocumentProcessor processor) {
- this(processor, Statistics.nullImplementation, new NullMetric());
+ this(processor, new NullMetric());
}
/**
@@ -40,11 +37,19 @@ public class Call implements Cloneable {
*
* @param processor the document processor to call
*/
+ public Call(DocumentProcessor processor, Metric metric) {
+ this(processor, "", metric);
+ }
+ @Deprecated
public Call(DocumentProcessor processor, Statistics manager, Metric metric) {
- this(processor, "", manager, metric);
+ this(processor, "", metric);
}
-
+ @Deprecated
public Call(DocumentProcessor processor, String chainName, Statistics manager, Metric metric) {
+ this(processor, chainName, metric);
+ }
+
+ public Call(DocumentProcessor processor, String chainName, Metric metric) {
this.processor = processor;
if (chainName == null)
chainName = "";
@@ -53,8 +58,6 @@ public class Call implements Cloneable {
getDocumentProcessorId().stringValue().replaceAll("[^\\p{Alnum}]", "_") + "_documents";
procTimeCounterName = "docprocessor_" + chainName + "_" +
getDocumentProcessorId().stringValue().replaceAll("[^\\p{Alnum}]", "_") + "_proctime";
- docCounter = new Counter(docCounterName, manager, false);
- procTimeCounter = new Counter(procTimeCounterName, manager, false, null, true);
this.metric = metric;
}
@@ -171,12 +174,10 @@ public class Call implements Cloneable {
}
private void incrementDocs(long increment) {
- docCounter.increment(increment);
metric.add(docCounterName, increment, null);
}
private void incrementProcTime(long increment) {
- procTimeCounter.increment(increment);
metric.add(procTimeCounterName, increment, null);
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/CallStack.java b/docproc/src/main/java/com/yahoo/docproc/CallStack.java
index 41adce4b23c..7e0920f717c 100644
--- a/docproc/src/main/java/com/yahoo/docproc/CallStack.java
+++ b/docproc/src/main/java/com/yahoo/docproc/CallStack.java
@@ -31,29 +31,33 @@ public class CallStack {
/** The last element popped from the call stack, if any */
private Call lastPopped = null;
- /** Used for creating counters in Call */
- private final Statistics statistics;
-
/** Used for metrics in Call */
private final Metric metric;
public CallStack() {
- this(null, Statistics.nullImplementation, new NullMetric());
+ this(new NullMetric());
}
public CallStack(String name) {
- this(name, Statistics.nullImplementation, new NullMetric());
+ this(name, new NullMetric());
}
/** Creates an empty stack */
+ public CallStack(Metric metric) {
+ this.name = null;
+ this.metric = metric;
+ }
+ @Deprecated
public CallStack(Statistics statistics, Metric metric) {
- this(null, statistics, metric);
+ this(metric);
}
- /** Creates an empty stack with a name */
public CallStack(String name, Statistics manager, Metric metric) {
+ this(name, metric);
+ }
+ /** Creates an empty stack with a name */
+ public CallStack(String name, Metric metric) {
this.name = name;
- this.statistics = manager;
this.metric = metric;
}
@@ -67,7 +71,6 @@ public class CallStack {
Call callToCopy = i.next();
elements.add((Call) callToCopy.clone());
}
- this.statistics = stackToCopy.statistics;
this.metric = stackToCopy.metric;
}
@@ -111,7 +114,7 @@ public class CallStack {
* @return this for convenience
*/
public CallStack addNext(DocumentProcessor processor) {
- return addNext(new Call(processor, name, statistics, metric));
+ return addNext(new Call(processor, name, metric));
}
/**
@@ -140,7 +143,7 @@ public class CallStack {
* @return this for convenience
*/
public CallStack addLast(DocumentProcessor processor) {
- return addLast(new Call(processor, name, statistics, metric));
+ return addLast(new Call(processor, name, metric));
}
/**
@@ -186,7 +189,7 @@ public class CallStack {
* @return this for convenience
*/
public CallStack addBefore(Call before, DocumentProcessor processor) {
- return addBefore(before, new Call(processor, name, statistics, metric));
+ return addBefore(before, new Call(processor, name, metric));
}
/**
@@ -240,7 +243,7 @@ public class CallStack {
* @return this for convenience
*/
public CallStack addAfter(Call after, DocumentProcessor processor) {
- return addAfter(after, new Call(processor, name, statistics, metric));
+ return addAfter(after, new Call(processor, name, metric));
}
/**
@@ -378,7 +381,7 @@ public class CallStack {
}
public Statistics getStatistics() {
- return statistics;
+ return null;
}
public Metric getMetric() {
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java b/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
index 18f7c5bda4c..716fee0e4d9 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
@@ -5,7 +5,6 @@ import com.yahoo.document.DocumentOperation;
import com.yahoo.document.DocumentPut;
import com.yahoo.document.json.JsonWriter;
import com.yahoo.jdisc.Metric;
-import com.yahoo.statistics.Counter;
import com.yahoo.text.Utf8;
import java.util.HashMap;
@@ -32,7 +31,6 @@ public class DocprocExecutor {
private final String name;
private final String docCounterName;
- private final Counter docCounter;
private final Metric metric;
private Function<String, Metric.Context> contexts;
private final CallStack callStack;
@@ -47,7 +45,6 @@ public class DocprocExecutor {
this.name = name;
String chainDimension = name != null ? name.replaceAll("[^\\p{Alnum}]", "_") : name;
docCounterName = "chain_" + chainDimension + "_documents";
- docCounter = new Counter(docCounterName, callStack.getStatistics(), false);
this.metric = callStack.getMetric();
this.callStack = callStack;
this.callStack.setName(name);
@@ -64,7 +61,6 @@ public class DocprocExecutor {
public DocprocExecutor(DocprocExecutor oldExecutor, CallStack callStack) {
this.name = oldExecutor.name;
this.docCounterName = oldExecutor.docCounterName;
- this.docCounter = oldExecutor.docCounter;
this.metric = oldExecutor.metric;
this.contexts = oldExecutor.contexts;
this.callStack = callStack;
@@ -81,7 +77,6 @@ public class DocprocExecutor {
private void incrementNumDocsProcessed(Processing processing) {
List<DocumentOperation> operations = processing.getOnceOperationsToBeProcessed();
if ( ! operations.isEmpty()) {
- docCounter.increment(operations.size());
metric.add(docCounterName, operations.size(), null);
operations.stream()
.collect(groupingBy(operation -> operation.getId().getDocType(), counting()))
@@ -114,7 +109,6 @@ public class DocprocExecutor {
return progress;
}
- progress = DocumentProcessor.Progress.DONE;
//might throw exception, which is OK:
progress = call.call(processing);
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
index 95558fbb524..acbedaf1156 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
@@ -25,7 +25,6 @@ import com.yahoo.jdisc.handler.ContentChannel;
import com.yahoo.jdisc.handler.ResponseHandler;
import com.yahoo.messagebus.jdisc.MbusRequest;
import com.yahoo.processing.execution.chain.ChainRegistry;
-import com.yahoo.statistics.Statistics;
import java.util.TimerTask;
import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -43,7 +42,7 @@ import static com.yahoo.component.chain.model.ChainsModelBuilder.buildFromConfig
*/
public class DocumentProcessingHandler extends AbstractRequestHandler {
- private static Logger log = Logger.getLogger(DocumentProcessingHandler.class.getName());
+ private static final Logger log = Logger.getLogger(DocumentProcessingHandler.class.getName());
private final ComponentRegistry<DocprocService> docprocServiceRegistry;
private final ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry;
private final ChainRegistry<DocumentProcessor> chainRegistry = new ChainRegistry<>();
@@ -57,7 +56,7 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry,
int numThreads,
DocumentTypeManager documentTypeManager,
- ChainsModel chainsModel, SchemaMap schemaMap, Statistics statistics,
+ ChainsModel chainsModel, SchemaMap schemaMap,
Metric metric,
ContainerDocumentConfig containerDocConfig) {
this.docprocServiceRegistry = docprocServiceRegistry;
@@ -73,7 +72,7 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
for (Chain<DocumentProcessor> chain : chainRegistry.allComponents()) {
log.config("Setting up call stack for chain " + chain.getId());
- DocprocService service = new DocprocService(chain.getId(), convertToCallStack(chain, statistics, metric), documentTypeManager, computeNumThreads(numThreads));
+ DocprocService service = new DocprocService(chain.getId(), convertToCallStack(chain, metric), documentTypeManager, computeNumThreads(numThreads));
service.setInService(true);
docprocServiceRegistry.register(service.getId(), service);
}
@@ -91,7 +90,6 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
this(docprocServiceRegistry, documentProcessorComponentRegistry, docFactoryRegistry,
params.getMaxNumThreads(),
params.getDocumentTypeManager(), params.getChainsModel(), params.getSchemaMap(),
- params.getStatisticsManager(),
params.getMetric(),
params.getContainerDocConfig());
}
@@ -104,7 +102,6 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
DocumentmanagerConfig docManConfig,
DocprocConfig docprocConfig,
ContainerDocumentConfig containerDocConfig,
- Statistics manager,
Metric metric) {
this(new ComponentRegistry<>(),
documentProcessorComponentRegistry, docFactoryRegistry,
@@ -112,7 +109,6 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
.setMaxNumThreads(docprocConfig.numthreads())
.setDocumentTypeManager(new DocumentTypeManager(docManConfig))
.setChainsModel(buildFromConfig(chainsConfig)).setSchemaMap(configureMapping(mappingConfig))
- .setStatisticsManager(manager)
.setMetric(metric)
.setContainerDocumentConfig(containerDocConfig));
docprocServiceRegistry.freeze();
@@ -139,8 +135,8 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
}
- private static CallStack convertToCallStack(Chain<DocumentProcessor> chain, Statistics statistics, Metric metric) {
- CallStack stack = new CallStack(chain.getId().stringValue(), statistics, metric);
+ private static CallStack convertToCallStack(Chain<DocumentProcessor> chain, Metric metric) {
+ CallStack stack = new CallStack(chain.getId().stringValue(), metric);
for (DocumentProcessor processor : chain.components()) {
processor.getFieldMap().putAll(DocprocService.schemaMap.chainMap(chain.getId().stringValue(), processor.getId().stringValue()));
stack.addLast(processor);
@@ -188,9 +184,9 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
laterExecutor.schedule(timerTask, delay, TimeUnit.MILLISECONDS);
}
- private class LaterTimerTask extends TimerTask {
- private DocumentProcessingTask processingTask;
- private long delay;
+ private static class LaterTimerTask extends TimerTask {
+ private final DocumentProcessingTask processingTask;
+ private final long delay;
private LaterTimerTask(DocumentProcessingTask processingTask, long delay) {
this.delay = delay;
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
index d2fe43ccfed..0f01ffb8ca7 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
@@ -7,7 +7,6 @@ import com.yahoo.docproc.jdisc.metric.NullMetric;
import com.yahoo.docproc.proxy.SchemaMap;
import com.yahoo.document.DocumentTypeManager;
import com.yahoo.jdisc.Metric;
-import com.yahoo.statistics.Statistics;
/**
* Class to hold parameters given to DocumentProcessingHandler, typically used by unit tests.
@@ -21,7 +20,6 @@ public class DocumentProcessingHandlerParameters {
private DocumentTypeManager documentTypeManager = null;
private ChainsModel chainsModel = null;
private SchemaMap schemaMap = null;
- private Statistics statisticsManager = Statistics.nullImplementation;
private Metric metric = new NullMetric();
private ContainerDocumentConfig containerDocConfig;
@@ -86,15 +84,6 @@ public class DocumentProcessingHandlerParameters {
return this;
}
- public Statistics getStatisticsManager() {
- return statisticsManager;
- }
-
- public DocumentProcessingHandlerParameters setStatisticsManager(Statistics statisticsManager) {
- this.statisticsManager = statisticsManager;
- return this;
- }
-
public DocumentProcessingHandlerParameters setContainerDocumentConfig(ContainerDocumentConfig containerDocConfig) {
this.containerDocConfig = containerDocConfig;
return this;
diff --git a/docproc/src/test/java/com/yahoo/docproc/SimpleDocumentProcessorTestCase.java b/docproc/src/test/java/com/yahoo/docproc/SimpleDocumentProcessorTestCase.java
index b5c36524421..7d5dd11216e 100644
--- a/docproc/src/test/java/com/yahoo/docproc/SimpleDocumentProcessorTestCase.java
+++ b/docproc/src/test/java/com/yahoo/docproc/SimpleDocumentProcessorTestCase.java
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.docproc;
-import com.yahoo.container.StatisticsConfig;
import com.yahoo.jdisc.test.MockMetric;
import com.yahoo.document.DataType;
import com.yahoo.document.DocumentId;
@@ -13,7 +12,6 @@ import com.yahoo.document.DocumentUpdate;
import com.yahoo.document.datatypes.StringFieldValue;
import com.yahoo.document.idstring.IdIdString;
import com.yahoo.jdisc.Metric;
-import com.yahoo.statistics.StatisticsImpl;
import org.junit.Test;
import java.util.Map;
@@ -28,7 +26,7 @@ import static org.junit.Assert.assertTrue;
public class SimpleDocumentProcessorTestCase {
private static DocprocService setupDocprocService(SimpleDocumentProcessor processor, Metric metric) {
- CallStack stack = new CallStack("default", new StatisticsImpl(new StatisticsConfig(new StatisticsConfig.Builder())), metric);
+ CallStack stack = new CallStack("default", metric);
stack.addLast(processor);
DocprocService service = new DocprocService("default");
service.setCallStack(stack);