Class StreamIntrospectionComputation
- java.lang.Object
-
- org.nuxeo.lib.stream.computation.AbstractComputation
-
- org.nuxeo.ecm.core.bulk.introspection.StreamIntrospectionComputation
-
- All Implemented Interfaces:
Computation
public class StreamIntrospectionComputation extends AbstractComputation
A computation that reads processor and metrics streams to build a representation of stream activities in the cluster. The representation is pushed to the KV Store.- Since:
- 11.5
-
-
Field Summary
Fields Modifier and Type Field Description protected static long
CHECK_INTERVAL_MS
protected int
currentWorkerNodes
static String
INTROSPECTION_KEY
static String
INTROSPECTION_KV_STORE
protected long
lastMetricsReceived
protected Map<String,com.fasterxml.jackson.databind.JsonNode>
metrics
protected String
model
static String
NAME
protected static com.fasterxml.jackson.databind.ObjectMapper
OBJECT_MAPPER
protected Map<String,com.fasterxml.jackson.databind.JsonNode>
processors
protected io.dropwizard.metrics5.MetricRegistry
registry
protected int
scaleMetric
protected Map<String,com.fasterxml.jackson.databind.JsonNode>
streams
protected static long
TTL_SECONDS
-
Fields inherited from class org.nuxeo.lib.stream.computation.AbstractComputation
INPUT_1, INPUT_2, INPUT_3, INPUT_NULL, metadata, OUTPUT_1, OUTPUT_2, OUTPUT_3, OUTPUT_4
-
-
Constructor Summary
Constructors Constructor Description StreamIntrospectionComputation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
buildModel()
protected int
getCurrentWorkerNodes()
protected com.fasterxml.jackson.databind.JsonNode
getJson(Record record)
protected KeyValueStore
getKvStore()
protected String
getProcessorKey(com.fasterxml.jackson.databind.JsonNode json)
protected int
getScaleMetric()
void
init(ComputationContext context)
Called when the framework has registered the computation successfully.protected void
loadModel(String modelJson)
void
processRecord(ComputationContext context, String inputStreamName, Record record)
Process an incoming record on one of the computation's input streams.void
processTimer(ComputationContext context, String key, long timestamp)
Process a timer callback previously set viaComputationContext.setTimer(String, long)
.protected void
removeOldNodes()
protected void
updateModel()
protected void
updateStreamsAndProcessors(com.fasterxml.jackson.databind.JsonNode node)
-
Methods inherited from class org.nuxeo.lib.stream.computation.AbstractComputation
metadata, processFailure, processRetry
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.nuxeo.lib.stream.computation.Computation
destroy, signalStop
-
-
-
-
Field Detail
-
NAME
public static final String NAME
- See Also:
- Constant Field Values
-
INTROSPECTION_KV_STORE
public static final String INTROSPECTION_KV_STORE
- See Also:
- Constant Field Values
-
INTROSPECTION_KEY
public static final String INTROSPECTION_KEY
- See Also:
- Constant Field Values
-
OBJECT_MAPPER
protected static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER
-
TTL_SECONDS
protected static final long TTL_SECONDS
- See Also:
- Constant Field Values
-
CHECK_INTERVAL_MS
protected static final long CHECK_INTERVAL_MS
- See Also:
- Constant Field Values
-
model
protected String model
-
registry
protected final io.dropwizard.metrics5.MetricRegistry registry
-
scaleMetric
protected int scaleMetric
-
currentWorkerNodes
protected int currentWorkerNodes
-
lastMetricsReceived
protected long lastMetricsReceived
-
-
Method Detail
-
init
public void init(ComputationContext context)
Description copied from interface:Computation
Called when the framework has registered the computation successfully. Gives users a first opportunity to schedule timer callbacks and produce records. This method can be called multiple times.- Specified by:
init
in interfaceComputation
- Overrides:
init
in classAbstractComputation
- Parameters:
context
- The computation context object provided by the system.
-
getCurrentWorkerNodes
protected int getCurrentWorkerNodes()
-
getScaleMetric
protected int getScaleMetric()
-
loadModel
protected void loadModel(String modelJson)
-
processTimer
public void processTimer(ComputationContext context, String key, long timestamp)
Description copied from interface:Computation
Process a timer callback previously set viaComputationContext.setTimer(String, long)
.- Specified by:
processTimer
in interfaceComputation
- Overrides:
processTimer
in classAbstractComputation
- Parameters:
context
- The computation context object provided by the system.key
- The name of the timer.timestamp
- The timestamp (in ms) for which the callback was scheduled.
-
processRecord
public void processRecord(ComputationContext context, String inputStreamName, Record record)
Description copied from interface:Computation
Process an incoming record on one of the computation's input streams.- Parameters:
context
- The computation context object provided by the system.inputStreamName
- Name of the input stream that provides the record.record
- The record.
-
updateStreamsAndProcessors
protected void updateStreamsAndProcessors(com.fasterxml.jackson.databind.JsonNode node)
-
getProcessorKey
protected String getProcessorKey(com.fasterxml.jackson.databind.JsonNode json)
-
updateModel
protected void updateModel()
-
getKvStore
protected KeyValueStore getKvStore()
-
buildModel
protected void buildModel()
-
removeOldNodes
protected void removeOldNodes()
-
getJson
protected com.fasterxml.jackson.databind.JsonNode getJson(Record record)
-
-