Skip to content

Commit 7469149

Browse files
revert changes and improve enum usage
1 parent 78dd6ad commit 7469149

2 files changed

Lines changed: 28 additions & 116 deletions

File tree

dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/WorkflowEventBusFireWorker.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,30 @@ private void recordTaskInstanceMetrics(AbstractLifecycleEvent event) {
166166
return;
167167
}
168168

169-
final org.apache.dolphinscheduler.server.master.engine.task.lifecycle.TaskLifecycleEventType taskLifecycleEventType =
170-
(org.apache.dolphinscheduler.server.master.engine.task.lifecycle.TaskLifecycleEventType) event
171-
.getEventType();
172-
173-
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics
174-
.incTaskInstanceByLifecycleEvent(taskLifecycleEventType);
169+
switch ((org.apache.dolphinscheduler.server.master.engine.task.lifecycle.TaskLifecycleEventType) event
170+
.getEventType()) {
171+
case DISPATCHED:
172+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("dispatch");
173+
break;
174+
case SUCCEEDED:
175+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("success");
176+
break;
177+
case FAILED:
178+
case FATAL:
179+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("fail");
180+
break;
181+
case KILLED:
182+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("kill");
183+
break;
184+
case RETRY:
185+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("retry");
186+
break;
187+
case TIMEOUT:
188+
org.apache.dolphinscheduler.server.master.metrics.TaskMetrics.incTaskInstanceByState("timeout");
189+
break;
190+
default:
191+
break;
192+
}
175193
}
176194

177195
}

dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/metrics/TaskMetricsTest.java

Lines changed: 4 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -17,65 +17,16 @@
1717

1818
package org.apache.dolphinscheduler.server.master.metrics;
1919

20-
import static org.junit.jupiter.api.Assertions.assertEquals;
2120
import static org.junit.jupiter.api.Assertions.assertNotNull;
22-
import static org.junit.jupiter.api.Assertions.assertTrue;
2321

2422
import org.apache.dolphinscheduler.server.master.engine.task.lifecycle.TaskLifecycleEventType;
2523

26-
import java.util.Arrays;
27-
import java.util.List;
28-
2924
import org.junit.jupiter.api.Test;
3025

31-
import io.micrometer.core.instrument.Counter;
3226
import io.micrometer.core.instrument.Metrics;
3327

3428
class TaskMetricsTest {
3529

36-
@Test
37-
void testIncTaskInstanceByState_validStates() {
38-
List<String> validStates = Arrays.asList(
39-
"submit", "timeout", "finish", "failover", "retry", "dispatch", "success", "kill", "fail", "stop");
40-
41-
for (String state : validStates) {
42-
Counter counter = Metrics.globalRegistry.find("ds.task.instance.count")
43-
.tag("state", state)
44-
.counter();
45-
assertNotNull(counter, "Counter should exist for state: " + state);
46-
double before = counter.count();
47-
TaskMetrics.incTaskInstanceByState(state);
48-
assertEquals(before + 1, counter.count(), 0.001,
49-
"Counter should be incremented for state: " + state);
50-
}
51-
}
52-
53-
@Test
54-
void testIncTaskInstanceByState_invalidState() {
55-
TaskMetrics.incTaskInstanceByState("nonexistent_state");
56-
Counter counter = Metrics.globalRegistry.find("ds.task.instance.count")
57-
.tag("state", "nonexistent_state")
58-
.counter();
59-
assertTrue(counter == null || counter.count() == 0,
60-
"Counter should not exist or be zero for invalid state");
61-
}
62-
63-
@Test
64-
void testIncTaskInstanceByState_multipleIncrements() {
65-
Counter counter = Metrics.globalRegistry.find("ds.task.instance.count")
66-
.tag("state", "submit")
67-
.counter();
68-
assertNotNull(counter);
69-
double before = counter.count();
70-
71-
TaskMetrics.incTaskInstanceByState("submit");
72-
TaskMetrics.incTaskInstanceByState("submit");
73-
TaskMetrics.incTaskInstanceByState("submit");
74-
75-
assertEquals(before + 3, counter.count(), 0.001,
76-
"Counter should be incremented by 3 after three calls");
77-
}
78-
7930
@Test
8031
void testRegisterTaskPrepared() {
8132
TaskMetrics.registerTaskPrepared(() -> 5);
@@ -84,74 +35,17 @@ void testRegisterTaskPrepared() {
8435
}
8536

8637
@Test
87-
void testIncTaskInstanceByLifecycleEvent_validEvents() {
88-
// Test each lifecycle event that maps to a metric
38+
void testIncTaskInstanceByLifecycleEvent() {
39+
// Test that the new method doesn't throw exceptions
8940
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.DISPATCHED);
90-
Counter dispatchCounter = Metrics.globalRegistry.find("ds.task.instance.count")
91-
.tag("state", "dispatch")
92-
.counter();
93-
assertNotNull(dispatchCounter);
94-
assertEquals(1, dispatchCounter.count(), 0.001, "Dispatch counter should be incremented");
95-
9641
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.SUCCEEDED);
97-
Counter successCounter = Metrics.globalRegistry.find("ds.task.instance.count")
98-
.tag("state", "success")
99-
.counter();
100-
assertNotNull(successCounter);
101-
assertEquals(1, successCounter.count(), 0.001, "Success counter should be incremented");
102-
10342
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.FAILED);
104-
Counter failCounter = Metrics.globalRegistry.find("ds.task.instance.count")
105-
.tag("state", "fail")
106-
.counter();
107-
assertNotNull(failCounter);
108-
assertEquals(1, failCounter.count(), 0.001, "Fail counter should be incremented");
109-
110-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.FATAL);
111-
assertEquals(2, failCounter.count(), 0.001, "Fail counter should be incremented for FATAL event");
112-
11343
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.KILLED);
114-
Counter killCounter = Metrics.globalRegistry.find("ds.task.instance.count")
115-
.tag("state", "kill")
116-
.counter();
117-
assertNotNull(killCounter);
118-
assertEquals(1, killCounter.count(), 0.001, "Kill counter should be incremented");
119-
12044
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.RETRY);
121-
Counter retryCounter = Metrics.globalRegistry.find("ds.task.instance.count")
122-
.tag("state", "retry")
123-
.counter();
124-
assertNotNull(retryCounter);
125-
assertEquals(1, retryCounter.count(), 0.001, "Retry counter should be incremented");
126-
12745
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.TIMEOUT);
128-
Counter timeoutCounter = Metrics.globalRegistry.find("ds.task.instance.count")
129-
.tag("state", "timeout")
130-
.counter();
131-
assertNotNull(timeoutCounter);
132-
assertEquals(1, timeoutCounter.count(), 0.001, "Timeout counter should be incremented");
133-
}
134-
135-
@Test
136-
void testIncTaskInstanceByLifecycleEvent_unmappedEvents() {
137-
// Test events that don't map to metrics (should not increment any counter)
138-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.START);
139-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.RUNNING);
140-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.RUNTIME_CONTEXT_CHANGED);
141-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.PAUSE);
142-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.PAUSED);
143-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.FAILOVER);
144-
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.KILL);
145-
146-
// Verify no counters were incremented for unmapped events
147-
// We can't easily verify this without checking all counters, but the test should pass without exceptions
148-
}
149-
150-
@Test
151-
void testIncTaskInstanceByLifecycleEvent_nullEvent() {
152-
// Test that null event doesn't cause issues
46+
TaskMetrics.incTaskInstanceByLifecycleEvent(TaskLifecycleEventType.FATAL);
15347
TaskMetrics.incTaskInstanceByLifecycleEvent(null);
154-
// Should not throw any exception
48+
// Should not throw any exceptions
15549
}
15650

15751
}

0 commit comments

Comments
 (0)