Auto-instrumenting layer
Captures each invocation's event, response, errors and cold start, plus every AWS SDK, fetch and http call. No code changes; spans are sent after your response.
Every invocation, payload and AWS call, for you and your coding agent.
Set up Ivy for my AWS Lambda functions using https://ivytrace.dev/llms.txt
Paste it into your coding agent. It signs you up and adds tracing; you approve twice.
The real trace page, with sample data. Click a node in the graph or a row in the timeline.
Ivy is open-source (MIT) tracing and error monitoring for AWS Lambda. A Lambda layer records every Node.js invocation with its payloads, AWS SDK and HTTP calls, and the failures that happen outside your handler. You read the traces in the dashboard; your coding agent reads them through an MCP server and an HTTP API. It is free for 100,000 traces a month per workspace, then €5 per million, and free to self-host.
How it works
No YAML, no SDK to wire into every handler, no IAM policy to write by hand.
Your agent reads llms.txt, which tells it how to sign you up and which commands to run. Any agent that can fetch a URL and use a terminal will do.
The agent opens a sign-in link for you to approve. Then it opens a CloudFormation quick-create link that gives Ivy a role in your AWS account. You review the stack and click Create. No access keys change hands.
Pick which functions to trace, by name, stack or tag. New matching functions are traced automatically. The agent invokes one and checks that its trace arrived.
Features
Built for serverless from the start, so a DynamoDB query looks like a DynamoDB query and not like an anonymous HTTP POST.
Captures each invocation's event, response, errors and cold start, plus every AWS SDK, fetch and http call. No code changes; spans are sent after your response.
Request and response bodies for every call, so you see what was sent, not only that something failed. Size-capped, with keys like authorization and password redacted inside the function.
Init errors, out-of-memory kills, crashes and timeouts, with the last log lines, plus throttles. Errors are grouped, and Slack alerts and a weekly digest tell you about new ones.
Lambda errorsCoding agents query traces through a remote MCP server or the HTTP API (with an OpenAPI spec). Traces come back as compact text trees, and as interactive views in hosts that support MCP Apps.
For AI agentsSpans from the Vercel AI SDK and other OpenTelemetry GenAI instrumentations show up with prompts, responses, tool calls, tokens and time to first token. No OpenTelemetry SDK needed.
LLM observabilityIngest accepts standard OTLP, so the layer is optional. Everything is MIT licensed, and the same images run on ivytrace.dev and on your own servers.
OpenTelemetryFor agents
Your agent already has the code. With Ivy it also gets the failing request, the payload that caused it and the stack trace, so it can find the bug and fix it in one session.
find_failing_invocations
Recent failures for a function, grouped by error
get_trace_summary
A whole trace as a compact text tree
list_error_groups
Errors by fingerprint, with counts and first and last seen
compare_invocations
What differs between a good and a bad run
search_invocations
By function, status, request ID, path or error message
render_waterfall
Interactive trace timeline, right in the chat
render_graph
The trace's service map, right in the chat
MCP server at https://ivytrace.dev/mcp, with OAuth. Or call the HTTP API directly:
see the API reference
and OpenAPI spec.
Add the Ivy skill to your repo so your agent knows how to debug with Ivy.
Checkout is returning 500s since this morning's deploy. Can you check Ivy?
Publishing to order-events.fifo fails: the FIFO queue needs a
MessageGroupId, which this morning's refactor dropped in
src/lib/events.ts:42. Payments still go through, so customers get charged without a
confirmation.
QueueUrl: ORDER_EVENTS_URL,+ MessageGroupId: order.customerId, MessageBody: JSON.stringify(event),
Fixed it. Want me to find the affected orders?
Hosted or self-hosted
Hosted and self-hosted run the same images. The backend needs no AWS services, only network access to the AWS API to attach the layer.
Runs the OpenTelemetry Collector, ClickHouse, the API and the dashboard. Bring any OIDC provider for sign-in. Free and unlimited, under the MIT license. Self-hosting guide
git clone https://github.com/ivytrace/ivy && cd ivy
docker compose -f deploy/docker-compose.yml up -d --build
Nothing to run or upgrade. Paste the prompt and your agent does the setup.
Pricing
One trace is one Lambda invocation. Every feature is in every plan.
€0 per month
100,000 traces a month per workspace, with every feature.
€5 per million traces
After the free 100,000 each month. Never blocked, billed monthly.
Free MIT licensed
Unlimited, on your own servers, with docker compose up.
FAQ
No measurable delay on warm invocations, and about 20–45 ms on cold starts, because spans are sent by a small Lambda extension after your function has responded. If Ivy can't be reached, the layer retries briefly, drops the spans and records how many it dropped; it never blocks or crashes your function. See the measurements.
Node.js on Lambda (tested on nodejs22.x, nodejs20.x should work), with the AWS SDK v3, fetch and node:http, including bundled code. Other runtimes can already send traces with any OpenTelemetry SDK, since ingest is plain OTLP. A Python layer is next on the roadmap.
The CloudFormation stack creates a role that Ivy assumes with an external ID, so it can list your functions and update the layers and environment of the ones you choose to trace. It also adds an EventBridge rule so new functions that match your rules get traced. Nothing is traced until you pick functions. Delete the stack to revoke access.
Payloads are capped in size, and keys that match your redaction list are replaced inside the function, before anything is sent. Keys like authorization, cookie, password and token are redacted by default. If the data must stay in your network, self-host.
The hosted version is free for 100,000 traces a month per workspace, then €5 per million traces. One trace is one Lambda invocation. Self-hosting is free. See pricing.
Yes, MIT licensed. The layer, the API, the dashboard and the MCP server are all in github.com/ivytrace/ivy. The hosted version runs the same code.
Lumigo has announced that its platform shuts down on December 31, 2026. Ivy traces the same Node.js functions with a layer and opt-in auto-trace, and your agent can do the switch for you.
One prompt. Your agent does the rest.
Set up Ivy for my AWS Lambda functions using https://ivytrace.dev/llms.txt