Fix 3rd party otel propagation from breaking our Task Events data from being properly correlated to the correct trace
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@trigger.dev/core": patch
|
||||
---
|
||||
|
||||
Fix 3rd party otel propagation from breaking our Task Events data from being properly correlated to the correct trace
|
||||
@@ -11,9 +11,10 @@ const ParamsSchema = z.object({
|
||||
});
|
||||
|
||||
export const HeadersSchema = z.object({
|
||||
"idempotency-key": z.string().optional().nullable(),
|
||||
"trigger-version": z.string().optional().nullable(),
|
||||
"x-trigger-span-parent-as-link": z.coerce.number().optional().nullable(),
|
||||
"idempotency-key": z.string().nullish(),
|
||||
"trigger-version": z.string().nullish(),
|
||||
"x-trigger-span-parent-as-link": z.coerce.number().nullish(),
|
||||
"x-trigger-worker": z.string().nullish(),
|
||||
traceparent: z.string().optional(),
|
||||
tracestate: z.string().optional(),
|
||||
});
|
||||
@@ -45,6 +46,7 @@ export async function action({ request, params }: ActionFunctionArgs) {
|
||||
"x-trigger-span-parent-as-link": spanParentAsLink,
|
||||
traceparent,
|
||||
tracestate,
|
||||
"x-trigger-worker": isFromWorker,
|
||||
} = headers.data;
|
||||
|
||||
const { taskId } = ParamsSchema.parse(params);
|
||||
@@ -58,20 +60,31 @@ export async function action({ request, params }: ActionFunctionArgs) {
|
||||
return json({ error: "Invalid request body" }, { status: 400 });
|
||||
}
|
||||
|
||||
logger.debug("Triggering task", {
|
||||
taskId,
|
||||
idempotencyKey,
|
||||
triggerVersion,
|
||||
body: body.data,
|
||||
});
|
||||
|
||||
const service = new TriggerTaskService();
|
||||
|
||||
try {
|
||||
const traceContext = traceparent
|
||||
? !triggerVersion // If the trigger version is NOT set, we are in an older version of the SDK
|
||||
? { traceparent, tracestate }
|
||||
: isFromWorker // If the trigger version is set, and the request is from a worker, we should pass the trace context
|
||||
? { traceparent, tracestate }
|
||||
: undefined
|
||||
: undefined;
|
||||
|
||||
logger.debug("Triggering task", {
|
||||
taskId,
|
||||
idempotencyKey,
|
||||
triggerVersion,
|
||||
headers: Object.fromEntries(request.headers),
|
||||
body: body.data,
|
||||
isFromWorker,
|
||||
traceContext,
|
||||
});
|
||||
|
||||
const run = await service.call(taskId, authenticationResult.environment, body.data, {
|
||||
idempotencyKey: idempotencyKey ?? undefined,
|
||||
triggerVersion: triggerVersion ?? undefined,
|
||||
traceContext: traceparent ? { traceparent, tracestate } : undefined,
|
||||
traceContext,
|
||||
spanParentAsLink: spanParentAsLink === 1,
|
||||
});
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import { taskContext } from "../task-context-api";
|
||||
import { getEnvVar } from "../utils/getEnv";
|
||||
import { SafeAsyncLocalStorage } from "../utils/safeAsyncLocalStorage";
|
||||
import { APIError } from "../apiErrors";
|
||||
import { version } from "../../../package.json";
|
||||
|
||||
export type TriggerOptions = {
|
||||
spanParentAsLink?: boolean;
|
||||
@@ -239,10 +240,12 @@ export class ApiClient {
|
||||
const headers: Record<string, string> = {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${this.accessToken}`,
|
||||
"trigger-version": version,
|
||||
};
|
||||
|
||||
// Only inject the context if we are inside a task
|
||||
if (taskContext.isInsideTask) {
|
||||
headers["x-trigger-worker"] = "true";
|
||||
propagation.inject(context.active(), headers);
|
||||
|
||||
if (spanParentAsLink) {
|
||||
|
||||
Generated
+138
-48
@@ -3123,6 +3123,48 @@ importers:
|
||||
specifier: ^2.3.12
|
||||
version: 2.3.12
|
||||
devDependencies:
|
||||
'@opentelemetry/core':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/exporter-logs-otlp-http':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/exporter-trace-otlp-http':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation-express':
|
||||
specifier: ^0.36.1
|
||||
version: 0.36.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation-fetch':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation-http':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation-undici':
|
||||
specifier: 0.2.0
|
||||
version: 0.2.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-logs':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api-logs@0.49.1)(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-node':
|
||||
specifier: ^0.49.1
|
||||
version: 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-node':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/semantic-conventions':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0
|
||||
'@trigger.dev/tsconfig':
|
||||
specifier: workspace:*
|
||||
version: link:../../config-packages/tsconfig
|
||||
@@ -7687,7 +7729,6 @@ packages:
|
||||
dependencies:
|
||||
'@grpc/proto-loader': 0.7.7
|
||||
'@types/node': 18.19.20
|
||||
dev: false
|
||||
|
||||
/@grpc/proto-loader@0.7.7:
|
||||
resolution: {integrity: sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==}
|
||||
@@ -7699,7 +7740,6 @@ packages:
|
||||
long: 4.0.0
|
||||
protobufjs: 7.2.6
|
||||
yargs: 17.7.2
|
||||
dev: false
|
||||
|
||||
/@hapi/boom@10.0.1:
|
||||
resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==}
|
||||
@@ -9242,12 +9282,17 @@ packages:
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/api-logs@0.51.1:
|
||||
resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
dev: true
|
||||
|
||||
/@opentelemetry/api@1.8.0:
|
||||
resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/context-async-hooks@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-Nfdxyg8YtWqVWkyrCukkundAjPhUXi93JtVQmqDT1mZRVKqA7e2r7eJCrI+F651XUBMp0hsOJSGiFk3QSpaIJw==}
|
||||
@@ -9256,7 +9301,6 @@ packages:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.9.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==}
|
||||
@@ -9266,7 +9310,6 @@ packages:
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/exporter-logs-otlp-http@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-3QoBnIGCmEkujynUP0mK155QtOM0MSf9FNrEw7u9ieCFsoMiyatg2hPp+alEDONJ8N8wGEK+wP2q3icgXBiggw==}
|
||||
@@ -9280,7 +9323,6 @@ packages:
|
||||
'@opentelemetry/otlp-exporter-base': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/otlp-transformer': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-logs': 0.49.1(@opentelemetry/api-logs@0.49.1)(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/exporter-trace-otlp-grpc@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-Zbd7f3zF7fI2587MVhBizaW21cO/SordyrZGtMtvhoxU6n4Qb02Gx71X4+PzXH620e0+JX+Pcr9bYb1HTeVyJA==}
|
||||
@@ -9295,7 +9337,6 @@ packages:
|
||||
'@opentelemetry/otlp-transformer': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/exporter-trace-otlp-http@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-KOLtZfZvIrpGZLVvblKsiVQT7gQUZNKcUUH24Zz6Xbi7LJb9Vt6xtUZFYdR5IIjvt47PIqBKDWUQlU0o1wAsRw==}
|
||||
@@ -9309,7 +9350,6 @@ packages:
|
||||
'@opentelemetry/otlp-transformer': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/exporter-trace-otlp-proto@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-n8ON/c9pdMyYAfSFWKkgsPwjYoxnki+6Olzo+klKfW7KqLWoyEkryNkbcMIYnGGNXwdkMIrjoaP0VxXB26Oxcg==}
|
||||
@@ -9324,7 +9364,6 @@ packages:
|
||||
'@opentelemetry/otlp-transformer': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/exporter-zipkin@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-XcFs6rGvcTz0qW5uY7JZDYD0yNEXdekXAb6sFtnZgY/cHY6BQ09HMzOjv9SX+iaXplRDcHr1Gta7VQKM1XXM6g==}
|
||||
@@ -9337,7 +9376,6 @@ packages:
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-express@0.36.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-ltIE4kIMa+83QjW/p7oe7XCESF29w3FQ9/T1VgShdX7fzm56K2a0xfEX1vF8lnHRGERYxIWX9D086C6gJOjVGA==}
|
||||
@@ -9351,7 +9389,6 @@ packages:
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-fetch@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-hizhULZXlq02y8YC0vPQ4WtUWiXcwxPdEqHBy8p75jzF9rAuP/ldrVr0Oxvz5Xr9qQcdEOFLvEl0ZxbVL76WKw==}
|
||||
@@ -9366,7 +9403,6 @@ packages:
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-http@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-Yib5zrW2s0V8wTeUK/B3ZtpyP4ldgXj9L3Ws/axXrW1dW0/mEFKifK50MxMQK9g5NNJQS9dWH7rvcEGZdWdQDA==}
|
||||
@@ -9381,7 +9417,19 @@ packages:
|
||||
semver: 7.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-undici@0.2.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-RH9WdVRtpnyp8kvya2RYqKsJouPxvHl7jKPsIfrbL8u2QCKloAGi0uEqDHoOS15ZRYPQTDXZ7d8jSpUgSQmvpA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.7.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/instrumentation': 0.51.1(@opentelemetry/api@1.8.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@opentelemetry/instrumentation@0.48.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-sjtZQB5PStIdCw5ovVTDGwnmQC+GGYArJNgIcydrDSqUTdYBnMrN9P4pwQZgS3vTGIp+TU1L8vMXGe51NVmIKQ==}
|
||||
@@ -9414,7 +9462,23 @@ packages:
|
||||
shimmer: 1.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation@0.51.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/api-logs': 0.51.1
|
||||
'@types/shimmer': 1.0.2
|
||||
import-in-the-middle: 1.7.4
|
||||
require-in-the-middle: 7.1.1
|
||||
semver: 7.5.4
|
||||
shimmer: 1.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@opentelemetry/otlp-exporter-base@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-z6sHliPqDgJU45kQatAettY9/eVF58qVPaTuejw9YWfSRqid9pXPYeegDCSdyS47KAUgAtm+nC28K3pfF27HWg==}
|
||||
@@ -9424,7 +9488,6 @@ packages:
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/otlp-grpc-exporter-base@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-DNDNUWmOqtKTFJAyOyHHKotVox0NQ/09ETX8fUOeEtyNVHoGekAVtBbvIA3AtK+JflP7LC0PTjlLfruPM3Wy6w==}
|
||||
@@ -9437,7 +9500,6 @@ packages:
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/otlp-exporter-base': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
protobufjs: 7.2.6
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/otlp-proto-exporter-base@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-x1qB4EUC7KikUl2iNuxCkV8yRzrSXSyj4itfpIO674H7dhI7Zv37SFaOJTDN+8Z/F50gF2ISFH9CWQ4KCtGm2A==}
|
||||
@@ -9449,7 +9511,6 @@ packages:
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/otlp-exporter-base': 0.49.1(@opentelemetry/api@1.8.0)
|
||||
protobufjs: 7.2.6
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/otlp-transformer@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-Z+koA4wp9L9e3jkFacyXTGphSWTbOKjwwXMpb0CxNb0kjTHGUxhYRN8GnkLFsFo5NbZPjP07hwAqeEG/uCratQ==}
|
||||
@@ -9464,7 +9525,6 @@ packages:
|
||||
'@opentelemetry/sdk-logs': 0.49.1(@opentelemetry/api-logs@0.49.1)(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-metrics': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/propagator-b3@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-qBItJm9ygg/jCB5rmivyGz1qmKZPsL/sX715JqPMFgq++Idm0x+N9sLQvWFHFt2+ZINnCSojw7FVBgFW6izcXA==}
|
||||
@@ -9474,7 +9534,6 @@ packages:
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/propagator-jaeger@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-pMLgst3QIwrUfepraH5WG7xfpJ8J3CrPKrtINK0t7kBkuu96rn+HDYQ8kt3+0FXvrZI8YJE77MCQwnJWXIrgpA==}
|
||||
@@ -9484,7 +9543,6 @@ packages:
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/resources@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==}
|
||||
@@ -9495,7 +9553,6 @@ packages:
|
||||
'@opentelemetry/api': 1.8.0
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-logs@0.49.1(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-gCzYWsJE0h+3cuh3/cK+9UwlVFyHvj3PReIOCDOmdeXOp90ZjKRoDOJBc3mvk1LL6wyl1RWIivR8Rg9OToyesw==}
|
||||
@@ -9521,7 +9578,6 @@ packages:
|
||||
'@opentelemetry/api-logs': 0.49.1
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-metrics@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-k6iIx6H3TZ+BVMr2z8M16ri2OxWaljg5h8ihGJxi/KQWcjign6FEaEzuigXt5bK9wVEhqAcWLCfarSftaNWkkg==}
|
||||
@@ -9533,7 +9589,6 @@ packages:
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
lodash.merge: 4.6.2
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-node@0.49.1(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-feBIT85ndiSHXsQ2gfGpXC/sNeX4GCHLksC4A9s/bfpUbbgbCSl0RvzZlmEpCHarNrkZMwFRi4H0xFfgvJEjrg==}
|
||||
@@ -9557,7 +9612,6 @@ packages:
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q==}
|
||||
@@ -9569,7 +9623,6 @@ packages:
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-gTGquNz7ue8uMeiWPwp3CU321OstQ84r7PCDtOaCicjbJxzvO8RZMlEC4geOipTeiF88kss5n6w+//A0MhP1lQ==}
|
||||
@@ -9584,7 +9637,6 @@ packages:
|
||||
'@opentelemetry/propagator-jaeger': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
semver: 7.5.4
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-trace-web@1.22.0(@opentelemetry/api@1.8.0):
|
||||
resolution: {integrity: sha512-id5bUhWYg475xbm4hjwWA4PnWM4duNK1EyFRkZxa3BZNuCITwiKCLvDkVhlE9RK2kvuDOPmcRxgSbU1apF9/1w==}
|
||||
@@ -9596,12 +9648,10 @@ packages:
|
||||
'@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0)
|
||||
'@opentelemetry/semantic-conventions': 1.22.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/semantic-conventions@1.22.0:
|
||||
resolution: {integrity: sha512-CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/@peculiar/asn1-schema@2.3.6:
|
||||
resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==}
|
||||
@@ -13201,7 +13251,7 @@ packages:
|
||||
eslint: 8.45.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.45.0)
|
||||
eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.45.0)(typescript@4.9.5)
|
||||
eslint-plugin-jest-dom: 4.0.3(eslint@8.45.0)
|
||||
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
|
||||
@@ -15305,7 +15355,6 @@ packages:
|
||||
|
||||
/@types/long@4.0.2:
|
||||
resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
|
||||
dev: false
|
||||
|
||||
/@types/marked@4.0.8:
|
||||
resolution: {integrity: sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw==}
|
||||
@@ -15595,7 +15644,6 @@ packages:
|
||||
|
||||
/@types/shimmer@1.0.2:
|
||||
resolution: {integrity: sha512-dKkr1bTxbEsFlh2ARpKzcaAmsYixqt9UyCdoEZk8rHyE4iQYcDCyvSjDSf7JUWJHlJiTtbIoQjxKh6ViywqDAg==}
|
||||
dev: false
|
||||
|
||||
/@types/simple-oauth2@5.0.4:
|
||||
resolution: {integrity: sha512-4SvTfmAa1fGUa1d07j9vIiC4o92bGh0ihPXmtS05udMMmNwVIaU2nZ706cC4wI8cJxOlHD4P/d5tzqvWYd+KxA==}
|
||||
@@ -15755,7 +15803,7 @@ packages:
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.4
|
||||
natural-compare-lite: 1.4.0
|
||||
semver: 7.5.0
|
||||
semver: 7.5.4
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
@@ -15783,7 +15831,7 @@ packages:
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.4
|
||||
natural-compare-lite: 1.4.0
|
||||
semver: 7.5.0
|
||||
semver: 7.5.4
|
||||
tsutils: 3.21.0(typescript@5.2.2)
|
||||
typescript: 5.2.2
|
||||
transitivePeerDependencies:
|
||||
@@ -15897,6 +15945,7 @@ packages:
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser@5.59.6(eslint@8.45.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
|
||||
@@ -15916,7 +15965,6 @@ packages:
|
||||
typescript: 5.1.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@typescript-eslint/parser@5.59.6(eslint@8.45.0)(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
|
||||
@@ -16082,6 +16130,7 @@ packages:
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@5.59.6(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
|
||||
@@ -16123,7 +16172,6 @@ packages:
|
||||
typescript: 5.1.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@typescript-eslint/typescript-estree@5.59.6(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
|
||||
@@ -16728,6 +16776,14 @@ packages:
|
||||
dependencies:
|
||||
acorn: 8.10.0
|
||||
|
||||
/acorn-import-attributes@1.9.5(acorn@8.10.0):
|
||||
resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
|
||||
peerDependencies:
|
||||
acorn: ^8
|
||||
dependencies:
|
||||
acorn: 8.10.0
|
||||
dev: true
|
||||
|
||||
/acorn-jsx@5.3.2(acorn@8.10.0):
|
||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||
peerDependencies:
|
||||
@@ -20456,7 +20512,7 @@ packages:
|
||||
eslint: 8.45.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
|
||||
eslint-plugin-import: 2.27.5(eslint@8.45.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
|
||||
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
|
||||
eslint-plugin-react: 7.32.2(eslint@8.45.0)
|
||||
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0)
|
||||
@@ -20746,7 +20802,7 @@ packages:
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@5.1.6)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
eslint: 8.45.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
@@ -20754,6 +20810,35 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0):
|
||||
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': '*'
|
||||
eslint: '*'
|
||||
eslint-import-resolver-node: '*'
|
||||
eslint-import-resolver-typescript: '*'
|
||||
eslint-import-resolver-webpack: '*'
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
eslint:
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
|
||||
debug: 3.2.7(supports-color@5.5.0)
|
||||
eslint: 8.45.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-es@3.0.1(eslint@8.31.0):
|
||||
resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==}
|
||||
engines: {node: '>=8.10.0'}
|
||||
@@ -20863,7 +20948,7 @@ packages:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@5.1.6)
|
||||
array-includes: 3.1.6
|
||||
array.prototype.flat: 1.3.1
|
||||
array.prototype.flatmap: 1.3.1
|
||||
@@ -20885,7 +20970,7 @@ packages:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
/eslint-plugin-import@2.27.5(eslint@8.45.0):
|
||||
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.45.0):
|
||||
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -20895,6 +20980,7 @@ packages:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.6(eslint@8.45.0)(typescript@4.9.5)
|
||||
array-includes: 3.1.6
|
||||
array.prototype.flat: 1.3.1
|
||||
array.prototype.flatmap: 1.3.1
|
||||
@@ -20902,7 +20988,7 @@ packages:
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.45.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
|
||||
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0)
|
||||
has: 1.0.3
|
||||
is-core-module: 2.13.0
|
||||
is-glob: 4.0.3
|
||||
@@ -20915,7 +21001,7 @@ packages:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-jest-dom@4.0.3(eslint@8.31.0):
|
||||
resolution: {integrity: sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==}
|
||||
@@ -23490,7 +23576,15 @@ packages:
|
||||
acorn-import-assertions: 1.9.0(acorn@8.10.0)
|
||||
cjs-module-lexer: 1.2.3
|
||||
module-details-from-path: 1.0.3
|
||||
dev: false
|
||||
|
||||
/import-in-the-middle@1.7.4:
|
||||
resolution: {integrity: sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==}
|
||||
dependencies:
|
||||
acorn: 8.10.0
|
||||
acorn-import-attributes: 1.9.5(acorn@8.10.0)
|
||||
cjs-module-lexer: 1.2.3
|
||||
module-details-from-path: 1.0.3
|
||||
dev: true
|
||||
|
||||
/import-lazy@4.0.0:
|
||||
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
|
||||
@@ -25497,7 +25591,6 @@ packages:
|
||||
|
||||
/long@4.0.0:
|
||||
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
|
||||
dev: false
|
||||
|
||||
/long@5.2.3:
|
||||
resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==}
|
||||
@@ -26697,7 +26790,6 @@ packages:
|
||||
|
||||
/module-details-from-path@1.0.3:
|
||||
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
|
||||
dev: false
|
||||
|
||||
/morgan@1.10.0:
|
||||
resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==}
|
||||
@@ -30630,7 +30722,6 @@ packages:
|
||||
resolve: 1.22.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/require-like@0.1.2:
|
||||
resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
|
||||
@@ -31284,7 +31375,6 @@ packages:
|
||||
|
||||
/shimmer@1.2.1:
|
||||
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
|
||||
dev: false
|
||||
|
||||
/side-channel@1.0.4:
|
||||
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
|
||||
@@ -33489,6 +33579,7 @@ packages:
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
typescript: 4.9.5
|
||||
dev: true
|
||||
|
||||
/tsutils@3.21.0(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
||||
@@ -33508,7 +33599,6 @@ packages:
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
typescript: 5.1.6
|
||||
dev: false
|
||||
|
||||
/tsutils@3.21.0(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
||||
|
||||
@@ -36,6 +36,21 @@
|
||||
"trigger.dev": "workspace:*",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig-paths": "^4.2.0",
|
||||
"typescript": "^5.3.0"
|
||||
"typescript": "^5.3.0",
|
||||
"@opentelemetry/api": "^1.8.0",
|
||||
"@opentelemetry/core": "^1.22.0",
|
||||
"@opentelemetry/exporter-logs-otlp-http": "^0.49.1",
|
||||
"@opentelemetry/exporter-trace-otlp-http": "^0.49.1",
|
||||
"@opentelemetry/instrumentation": "^0.49.1",
|
||||
"@opentelemetry/instrumentation-express": "^0.36.1",
|
||||
"@opentelemetry/instrumentation-http": "^0.49.1",
|
||||
"@opentelemetry/resources": "^1.22.0",
|
||||
"@opentelemetry/sdk-logs": "^0.49.1",
|
||||
"@opentelemetry/sdk-node": "^0.49.1",
|
||||
"@opentelemetry/sdk-trace-base": "^1.22.0",
|
||||
"@opentelemetry/sdk-trace-node": "^1.22.0",
|
||||
"@opentelemetry/semantic-conventions": "^1.22.0",
|
||||
"@opentelemetry/instrumentation-fetch": "^0.49.1",
|
||||
"@opentelemetry/instrumentation-undici": "0.2.0"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import { tracer } from "./tracer";
|
||||
import { APIError, configure, runs, schedules } from "@trigger.dev/sdk/v3";
|
||||
import { simpleChildTask } from "./trigger/subtasks";
|
||||
import dotenv from "dotenv";
|
||||
@@ -6,79 +7,85 @@ import { firstScheduledTask } from "./trigger/scheduled";
|
||||
dotenv.config();
|
||||
|
||||
export async function run() {
|
||||
try {
|
||||
const run = await simpleChildTask.trigger({ message: "Hello, World!" });
|
||||
await tracer.startActiveSpan("run", async (span) => {
|
||||
try {
|
||||
const run = await simpleChildTask.trigger({ message: "Hello, World!" });
|
||||
|
||||
const retrievedRun = await runs.retrieve(run.id);
|
||||
console.log("retrieved run", retrievedRun);
|
||||
const retrievedRun = await runs.retrieve(run.id);
|
||||
console.log("retrieved run", retrievedRun);
|
||||
|
||||
const canceled = await runs.cancel(run.id);
|
||||
console.log("canceled run", canceled);
|
||||
const canceled = await runs.cancel(run.id);
|
||||
console.log("canceled run", canceled);
|
||||
|
||||
const replayed = await runs.replay(run.id);
|
||||
console.log("replayed run", replayed);
|
||||
const replayed = await runs.replay(run.id);
|
||||
console.log("replayed run", replayed);
|
||||
|
||||
const run2 = await simpleChildTask.trigger(
|
||||
{ message: "Hello, World!" },
|
||||
{
|
||||
idempotencyKey: "mmvlgwcidiklyeygen4",
|
||||
const run2 = await simpleChildTask.trigger(
|
||||
{ message: "Hello, World!" },
|
||||
{
|
||||
idempotencyKey: "mmvlgwcidiklyeygen4",
|
||||
}
|
||||
);
|
||||
|
||||
const run3 = await simpleChildTask.trigger(
|
||||
{ message: "Hello, World again!" },
|
||||
{
|
||||
idempotencyKey: "mmvlgwcidiklyeygen4",
|
||||
}
|
||||
);
|
||||
|
||||
console.log("run2", run2);
|
||||
console.log("run3", run3);
|
||||
|
||||
const allSchedules = await schedules.list();
|
||||
|
||||
console.log("all schedules", allSchedules);
|
||||
|
||||
// Create a schedule
|
||||
const createdSchedule = await schedules.create({
|
||||
task: firstScheduledTask.id,
|
||||
cron: "0 0 * * *",
|
||||
externalId: "ext_1234444",
|
||||
deduplicationKey: "dedup_1234444",
|
||||
});
|
||||
|
||||
console.log("created schedule", createdSchedule);
|
||||
|
||||
const retrievedSchedule = await schedules.retrieve(createdSchedule.id);
|
||||
|
||||
console.log("retrieved schedule", retrievedSchedule);
|
||||
|
||||
const updatedSchedule = await schedules.update(createdSchedule.id, {
|
||||
task: firstScheduledTask.id,
|
||||
cron: "0 0 1 * *",
|
||||
externalId: "ext_1234444",
|
||||
});
|
||||
|
||||
console.log("updated schedule", updatedSchedule);
|
||||
|
||||
const deactivatedSchedule = await schedules.deactivate(createdSchedule.id);
|
||||
|
||||
console.log("deactivated schedule", deactivatedSchedule);
|
||||
|
||||
const activatedSchedule = await schedules.activate(createdSchedule.id);
|
||||
|
||||
console.log("activated schedule", activatedSchedule);
|
||||
|
||||
const deletedSchedule = await schedules.del(createdSchedule.id);
|
||||
|
||||
console.log("deleted schedule", deletedSchedule);
|
||||
} catch (error) {
|
||||
span.recordException(error as Error);
|
||||
|
||||
if (error instanceof APIError) {
|
||||
console.error("APIError", error);
|
||||
} else {
|
||||
console.error("Unknown error", error);
|
||||
}
|
||||
);
|
||||
|
||||
const run3 = await simpleChildTask.trigger(
|
||||
{ message: "Hello, World again!" },
|
||||
{
|
||||
idempotencyKey: "mmvlgwcidiklyeygen4",
|
||||
}
|
||||
);
|
||||
|
||||
console.log("run2", run2);
|
||||
console.log("run3", run3);
|
||||
|
||||
const allSchedules = await schedules.list();
|
||||
|
||||
console.log("all schedules", allSchedules);
|
||||
|
||||
// Create a schedule
|
||||
const createdSchedule = await schedules.create({
|
||||
task: firstScheduledTask.id,
|
||||
cron: "0 0 * * *",
|
||||
externalId: "ext_1234444",
|
||||
deduplicationKey: "dedup_1234444",
|
||||
});
|
||||
|
||||
console.log("created schedule", createdSchedule);
|
||||
|
||||
const retrievedSchedule = await schedules.retrieve(createdSchedule.id);
|
||||
|
||||
console.log("retrieved schedule", retrievedSchedule);
|
||||
|
||||
const updatedSchedule = await schedules.update(createdSchedule.id, {
|
||||
task: firstScheduledTask.id,
|
||||
cron: "0 0 1 * *",
|
||||
externalId: "ext_1234444",
|
||||
});
|
||||
|
||||
console.log("updated schedule", updatedSchedule);
|
||||
|
||||
const deactivatedSchedule = await schedules.deactivate(createdSchedule.id);
|
||||
|
||||
console.log("deactivated schedule", deactivatedSchedule);
|
||||
|
||||
const activatedSchedule = await schedules.activate(createdSchedule.id);
|
||||
|
||||
console.log("activated schedule", activatedSchedule);
|
||||
|
||||
const deletedSchedule = await schedules.del(createdSchedule.id);
|
||||
|
||||
console.log("deleted schedule", deletedSchedule);
|
||||
} catch (error) {
|
||||
if (error instanceof APIError) {
|
||||
console.error("APIError", error);
|
||||
} else {
|
||||
console.error("Unknown error", error);
|
||||
} finally {
|
||||
span.end();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
run();
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import { DiagConsoleLogger, DiagLogLevel, diag } from "@opentelemetry/api";
|
||||
import { InstrumentationOption, registerInstrumentations } from "@opentelemetry/instrumentation";
|
||||
import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch";
|
||||
import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
|
||||
import { UndiciInstrumentation } from "@opentelemetry/instrumentation-undici";
|
||||
import { Resource } from "@opentelemetry/resources";
|
||||
import { ConsoleSpanExporter, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
||||
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
||||
import { SEMRESATTRS_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
|
||||
|
||||
export const tracer = getTracer();
|
||||
|
||||
function getTracer() {
|
||||
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ERROR);
|
||||
|
||||
const provider = new NodeTracerProvider({
|
||||
forceFlushTimeoutMillis: 500,
|
||||
resource: new Resource({
|
||||
[SEMRESATTRS_SERVICE_NAME]: "v3-catalog",
|
||||
}),
|
||||
});
|
||||
|
||||
const loggerExporter = new ConsoleSpanExporter();
|
||||
provider.addSpanProcessor(new SimpleSpanProcessor(loggerExporter));
|
||||
|
||||
provider.register();
|
||||
|
||||
let instrumentations: InstrumentationOption[] = [
|
||||
new HttpInstrumentation(),
|
||||
new FetchInstrumentation(),
|
||||
new UndiciInstrumentation(),
|
||||
];
|
||||
|
||||
registerInstrumentations({
|
||||
tracerProvider: provider,
|
||||
instrumentations,
|
||||
});
|
||||
|
||||
return provider.getTracer("v3-catalog", "3.0.0.dp.1");
|
||||
}
|
||||
@@ -1,33 +1,13 @@
|
||||
import { logger, task } from "@trigger.dev/sdk/v3";
|
||||
import { logger, task, wait } from "@trigger.dev/sdk/v3";
|
||||
import { taskWithRetries } from "./retries";
|
||||
|
||||
export const simpleParentTask = task({
|
||||
id: "simple-parent-task",
|
||||
run: async (payload: { message: string }) => {
|
||||
const result = await simpleChildTask.trigger({
|
||||
message: `${payload.message} - 2.a`,
|
||||
});
|
||||
|
||||
await simpleChildTask.triggerAndWait({
|
||||
message: `${payload.message} - 2.b`,
|
||||
});
|
||||
|
||||
await simpleChildTask.batchTrigger([
|
||||
{
|
||||
payload: {
|
||||
message: `${payload.message} - 2.c`,
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
await simpleChildTask.batchTriggerAndWait([
|
||||
{
|
||||
payload: {
|
||||
message: `${payload.message} - 2.d`,
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
return {
|
||||
hello: "world",
|
||||
};
|
||||
@@ -38,6 +18,8 @@ export const simpleChildTask = task({
|
||||
id: "simple-child-task",
|
||||
run: async (payload: { message: string }, { ctx }) => {
|
||||
logger.log("Simple child task payload", { payload, ctx });
|
||||
|
||||
await wait.for({ seconds: 6 });
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user