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 *.
Reading Trace Summaries
Section titled “Reading Trace Summaries”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)),);