| @trigger.dev/sdk | patch |
|---|
External Trace Correlation & OpenTelemetry Package Updates.
| Package | Previous Version | New Version | Change Type |
|---|---|---|---|
@opentelemetry/api |
1.9.0 | 1.9.0 | No change (stable API) |
@opentelemetry/api-logs |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/core |
- | 2.0.1 | New dependency |
@opentelemetry/exporter-logs-otlp-http |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/exporter-trace-otlp-http |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/instrumentation |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/instrumentation-fetch |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/resources |
1.25.1 | 2.0.1 | Major update |
@opentelemetry/sdk-logs |
0.52.1 | 0.203.0 | Major update |
@opentelemetry/sdk-node |
0.52.1 | - | Removed (functionality consolidated) |
@opentelemetry/sdk-trace-base |
1.25.1 | 2.0.1 | Major update |
@opentelemetry/sdk-trace-node |
1.25.1 | 2.0.1 | Major update |
@opentelemetry/semantic-conventions |
1.25.1 | 1.36.0 | Minor update |
We will now correlate your external traces with trigger.dev traces and logs when using our external exporters:
import { defineConfig } from "@trigger.dev/sdk";
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
export default defineConfig({
project: process.env.TRIGGER_PROJECT_REF,
dirs: ["./src/trigger"],
telemetry: {
logExporters: [
new OTLPLogExporter({
url: "https://api.axiom.co/v1/logs",
headers: {
Authorization: `Bearer ${process.env.AXIOM_TOKEN}`,
"X-Axiom-Dataset": "test",
},
}),
],
exporters: [
new OTLPTraceExporter({
url: "https://api.axiom.co/v1/traces",
headers: {
Authorization: `Bearer ${process.env.AXIOM_TOKEN}`,
"X-Axiom-Dataset": "test",
},
}),
],
},
maxDuration: 3600,
});You can also now propagate your external trace context when calling back into your own backend infra from inside a trigger.dev task:
import { otel, task } from "@trigger.dev/sdk";
import { context, propagation } from "@opentelemetry/api";
async function callNextjsApp() {
return await otel.withExternalTrace(async () => {
const headersObject = {};
// Now context.active() refers to your external trace context
propagation.inject(context.active(), headersObject);
const result = await fetch("http://localhost:3000/api/demo-call-from-trigger", {
headers: new Headers(headersObject),
method: "POST",
body: JSON.stringify({
message: "Hello from Trigger.dev",
}),
});
return result.json();
});
}
export const myTask = task({
id: "my-task",
run: async (payload: any) => {
await callNextjsApp()
}
})