-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathspanSpammer.ts
More file actions
66 lines (49 loc) · 1.96 KB
/
spanSpammer.ts
File metadata and controls
66 lines (49 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { logger, task, wait, metadata } from "@trigger.dev/sdk/v3";
const CONFIG = {
delayBetweenBatchesSeconds: 0.2,
logsPerBatch: 30,
totalBatches: 100,
initialDelaySeconds: 5,
} as const;
export const SpanSpammerTask = task({
id: "span-spammer",
maxDuration: 300,
run: async (payload: any, { ctx }) => {
const context = { payload, ctx };
let logCount = 0;
// 30s trace with events every 5s
await logger.trace("10s-span", async () => {
const totalSeconds = 10;
const intervalSeconds = 2;
const totalEvents = totalSeconds / intervalSeconds;
logger.info("Starting 30s span", context);
for (let i = 1; i <= totalEvents; i++) {
await wait.for({ seconds: intervalSeconds });
logger.info(`Inner event ${i}/${totalEvents} at ${i * intervalSeconds}s`, context);
}
logger.info("Completed 30s span", context);
});
logger.info("Starting span spammer task", context);
logger.warn("This will generate a lot of logs", context);
const emitBatch = (prefix: string) => {
logger.debug("Started spam batch emit!", context);
for (let i = 0; i < CONFIG.logsPerBatch; i++) {
logger.log(`${prefix} ${++logCount}`, context);
}
logger.debug('Completed spam batch emit!', context);
};
emitBatch("Log number");
await wait.for({ seconds: CONFIG.initialDelaySeconds });
for (let batch = 0; batch < CONFIG.totalBatches; batch++) {
await wait.for({ seconds: CONFIG.delayBetweenBatchesSeconds });
emitBatch("This is a test log!!! Log number: ");
}
metadata.parent.set("childStatus", "running");
metadata.parent.increment("completedChildren", 1);
// Update the root run's metadata (top-level run in the chain)
metadata.root.set("deepChildStatus", "done");
metadata.root.append("completedTasks", "child-task");
logger.info("Completed span spammer task", context);
return { message: `Created ${logCount} logs` };
},
});