diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-05 22:02:11 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-05 22:06:56 +0100 |
commit | b4148a2a1fa384c590a9c45e92b347980a32676d (patch) | |
tree | 95e02784b22240237a391e6ee760d52b57295a9b /docproc | |
parent | 4209b3311f43cc5eb0d170a732dc861e3810e036 (diff) |
GC use of old metrics framework.
Diffstat (limited to 'docproc')
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); |