Skip to content

GetTraceSummaries

Source: src/AWS/XRay/GetTraceSummaries.ts

Retrieve IDs and annotations for traces available in a time frame, optionally filtered by an X-Ray filter expression.

Bind the operation in the function’s init phase to get a runtime callable; provide the implementation with Effect.provide(XRay.GetTraceSummariesHttp). Feed the returned trace IDs to XRay.BatchGetTraces to fetch the full segment documents.

X-Ray trace reads are account-scoped: IAM does not support resource-level permissions for xray:GetTraceSummaries, so the binding grants the action on *.

import * as XRay from "alchemy/AWS/XRay";
export default MyFunction.make(
{ main: import.meta.url, url: true, tracing: "Active" },
Effect.gen(function* () {
// init — bind the operation (grants xray:GetTraceSummaries)
const getTraceSummaries = yield* XRay.GetTraceSummaries();
return {
fetch: Effect.gen(function* () {
// runtime — find traces for a service in the last 5 minutes
const now = yield* Effect.sync(() => Date.now());
const result = yield* getTraceSummaries({
StartTime: new Date(now - 5 * 60 * 1000),
EndTime: new Date(now),
FilterExpression: 'service("my-api")',
});
return yield* HttpServerResponse.json({
traceIds: (result.TraceSummaries ?? []).flatMap((summary) =>
summary.Id ? [summary.Id] : [],
),
});
}).pipe(Effect.orDie),
};
}).pipe(Effect.provide(XRay.GetTraceSummariesHttp)),
);