Skip to content

Commit fa4e359

Browse files
committed
add metric for corrupted signal
1 parent 7c4aa0e commit fa4e359

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/main/java/com/uber/cadence/internal/metrics/MetricsType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public class MetricsType {
121121
public static final String UNHANDLED_SIGNALS_COUNTER =
122122
CADENCE_METRICS_PREFIX + "unhandled-signals";
123123

124+
public static final String CORRUPTED_SIGNALS_COUNTER =
125+
CADENCE_METRICS_PREFIX + "corrupted-signals";
126+
124127
public static final String WORKER_START_COUNTER = CADENCE_METRICS_PREFIX + "worker-start";
125128
public static final String POLLER_START_COUNTER = CADENCE_METRICS_PREFIX + "poller-start";
126129

src/main/java/com/uber/cadence/internal/sync/POJOWorkflowImplementationFactory.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.uber.cadence.converter.DataConverterException;
2424
import com.uber.cadence.internal.common.CheckedExceptionWrapper;
2525
import com.uber.cadence.internal.common.InternalUtils;
26+
import com.uber.cadence.internal.metrics.MetricsType;
2627
import com.uber.cadence.internal.replay.ReplayWorkflow;
2728
import com.uber.cadence.internal.replay.ReplayWorkflowFactory;
2829
import com.uber.cadence.internal.worker.WorkflowExecutionException;
@@ -35,6 +36,7 @@
3536
import com.uber.cadence.workflow.WorkflowInfo;
3637
import com.uber.cadence.workflow.WorkflowInterceptor;
3738
import com.uber.cadence.workflow.WorkflowMethod;
39+
import com.uber.m3.tally.Scope;
3840
import java.lang.reflect.InvocationTargetException;
3941
import java.lang.reflect.Method;
4042
import java.util.Collections;
@@ -64,14 +66,17 @@ final class POJOWorkflowImplementationFactory implements ReplayWorkflowFactory {
6466
Collections.synchronizedMap(new HashMap<>());
6567

6668
private final ExecutorService threadPool;
69+
private final Scope metricsScope;
6770

6871
POJOWorkflowImplementationFactory(
6972
DataConverter dataConverter,
7073
ExecutorService threadPool,
71-
Function<WorkflowInterceptor, WorkflowInterceptor> interceptorFactory) {
74+
Function<WorkflowInterceptor, WorkflowInterceptor> interceptorFactory,
75+
Scope metricsScope) {
7276
this.dataConverter = Objects.requireNonNull(dataConverter);
7377
this.threadPool = Objects.requireNonNull(threadPool);
7478
this.interceptorFactory = Objects.requireNonNull(interceptorFactory);
79+
this.metricsScope = metricsScope;
7580
}
7681

7782
void setWorkflowImplementationTypes(Class<?>[] workflowImplementationTypes) {
@@ -295,6 +300,7 @@ public void processSignal(String signalName, byte[] input, long eventId) {
295300
+ eventId
296301
+ ". Dropping it.",
297302
targetException);
303+
metricsScope.counter(MetricsType.CORRUPTED_SIGNALS_COUNTER).inc(1);
298304
} else {
299305
throw new Error(
300306
"Failure processing \"" + signalName + "\" at eventID " + eventId, targetException);

src/main/java/com/uber/cadence/internal/sync/SyncWorkflowWorker.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ public SyncWorkflowWorker(
5454
new SynchronousQueue<>());
5555
factory =
5656
new POJOWorkflowImplementationFactory(
57-
options.getDataConverter(), workflowThreadPool, interceptorFactory);
57+
options.getDataConverter(),
58+
workflowThreadPool,
59+
interceptorFactory,
60+
options.getMetricsScope());
5861
DecisionTaskHandler taskHandler = new ReplayDecisionTaskHandler(domain, factory, options);
5962
worker = new WorkflowWorker(service, domain, taskList, options, taskHandler);
6063
this.options = options;

0 commit comments

Comments
 (0)