Skip to content

Commit 5df506a

Browse files
authored
Add activity worker thread count metrics (#607)
1 parent 6ff76d4 commit 5df506a

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ public class MetricsType {
131131
public static final String ACTIVITY_LOCAL_DISPATCH_SUCCEED_COUNTER =
132132
CADENCE_METRICS_PREFIX + "activity-local-dispatch-succeed";
133133
public static final String WORKER_PANIC_COUNTER = CADENCE_METRICS_PREFIX + "worker-panic";
134+
public static final String LOCAL_ACTIVITY_ACTIVE_THREAD_COUNT =
135+
CADENCE_METRICS_PREFIX + "local_activity_active_thread_count";
136+
public static final String ACTIVITY_ACTIVE_THREAD_COUNT =
137+
CADENCE_METRICS_PREFIX + "activity_active_thread_count";
134138

135139
public static final String TASK_LIST_QUEUE_LATENCY =
136140
CADENCE_METRICS_PREFIX + "tasklist-queue-latency";

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.google.common.base.Joiner;
2121
import com.google.common.reflect.TypeToken;
22+
import com.google.common.util.concurrent.RateLimiter;
2223
import com.uber.cadence.PollForActivityTaskResponse;
2324
import com.uber.cadence.RespondActivityTaskCompletedRequest;
2425
import com.uber.cadence.RespondActivityTaskFailedRequest;
@@ -43,6 +44,7 @@
4344
import java.util.function.BiFunction;
4445

4546
class POJOActivityTaskHandler implements ActivityTaskHandler {
47+
private static final RateLimiter metricsRateLimiter = RateLimiter.create(1);
4648

4749
private final DataConverter dataConverter;
4850
private final ScheduledExecutorService heartbeatExecutor;
@@ -186,6 +188,13 @@ public Result handle(
186188
metricsScope,
187189
isLocalActivity);
188190
}
191+
if (metricsRateLimiter.tryAcquire(1)) {
192+
if (isLocalActivity) {
193+
metricsScope.gauge(MetricsType.LOCAL_ACTIVITY_ACTIVE_THREAD_COUNT).update(Thread.activeCount());
194+
} else {
195+
metricsScope.gauge(MetricsType.ACTIVITY_ACTIVE_THREAD_COUNT).update(Thread.activeCount());
196+
}
197+
}
189198
return activity.execute(activityTask, metricsScope);
190199
}
191200

0 commit comments

Comments
 (0)