Skip to content
Ivy

Migration guide

Migrating from Lumigo to Ivy

Moving Lambda tracing from Lumigo to Ivy takes a few minutes per AWS account. You stop Lumigo's tracing (its layer, its wrapper and its token variable), connect the account to Ivy, and pick which functions to trace. Your coding agent can do most of it. Lumigo has announced that its platform shuts down on December 31, 2026, so plan the switch before then.

Before you start

  • Check what Ivy supports. Ivy's layer instruments Node.js functions today. If you also trace Python, Java or Go functions with Lumigo, those need another tool for now, or an OpenTelemetry SDK that sends OTLP to Ivy.
  • Find out how Lumigo was attached. Either Lumigo's auto-trace added its layer (from the Lumigo UI or the lumigo:auto-trace tag), or your infrastructure code adds it (CDK, Serverless Framework, SAM, Terraform and so on). The steps differ slightly.
  • Export what you want to keep. Ivy does not import Lumigo's historical data. Note your alert rules and any dashboards you rely on.

Step 1: Stop Lumigo's tracing

Ivy and Lumigo both use AWS_LAMBDA_EXEC_WRAPPER, and a function can only have one, so remove Lumigo's before adding Ivy's.

If Lumigo's auto-trace attached it: untrace the functions in the Lumigo UI, or set the tag lumigo:auto-trace to false on them (Lumigo's docs say changes take 15 to 20 minutes). Then check one function's configuration to confirm the Lumigo layer and variables are gone.

If your infrastructure code adds it, remove from each function:

Remove What it is
The lumigo-node-tracer layer Lumigo's Node.js tracer layer (its ARN names the region and version)
AWS_LAMBDA_EXEC_WRAPPER=/opt/lumigo_wrapper Lumigo's exec wrapper
LUMIGO_TRACER_TOKEN Your Lumigo token
LUMIGO_ORIGINAL_HANDLER Only if you used handler redirection: set the function's handler back to this value
Any other LUMIGO_* variables Optional tracer settings
@lumigo/tracer imports and lumigo.trace(...) wrappers Only if you wrapped handlers in code

These names come from Lumigo's layer documentation; check them against your own configuration. Lumigo's CDK constructs and Serverless plugin add the same pieces, so removing the construct or plugin is usually enough.

Step 2: Connect Ivy

The quick way: paste this into your coding agent in the repository that deploys your functions.

Set up Ivy for my AWS Lambda functions using https://ivytrace.dev/llms.txt

The agent signs you up (you approve in your browser), creates a workspace and project, and gives you a CloudFormation quick-create link that creates Ivy's role in your AWS account. Then it lists your functions grouped by CloudFormation stack and asks which to trace. If it finds infrastructure code that sets layers or environment variables, it offers to add Ivy there instead, so the next deploy doesn't remove it. You can also tell it: "We're moving off Lumigo: remove the Lumigo layer and variables first."

By hand: connect the account in the dashboard (Workspace settings → AWS accounts), or add the layer yourself:

Add Value
Layer ivy-trace-nodejs, published in your own account by Ivy
AWS_LAMBDA_EXEC_WRAPPER /opt/ivy-wrapper
IVY_ENDPOINT Your ingest endpoint
IVY_API_KEY A project ingest key

Details in manual setup.

Step 3: Choose what to trace

Ivy's auto-trace is opt-in, like a Lumigo auto-trace selection, but saved as rules:

  • a whole CloudFormation stack ({"stack": "checkout-prod"}),
  • a name pattern ({"name": "checkout-*"}),
  • or a tag ({"tag": "team=core"}).

New functions that match a rule are traced automatically. The tag ivy:trace=true or false on a function overrides rules, much like lumigo:auto-trace.

Step 4: Verify

Invoke one function, or wait for traffic, and open Invocations in Ivy. The trace should show the event, the response and the AWS calls. Ask your agent to "find failing invocations in the last hour" to check the MCP connection.

Step 5: Set up alerts

Connect Slack (Add to Slack, then pick a channel) to get a message when an error group is first seen. The weekly email digest is on for workspace members by default. See setting up alerts.

Concept map

Lumigo Ivy
Transaction Trace: one Lambda invocation with all its spans
Invocation Invocation (the trace's root span)
Issue Error group, fingerprinted by function, error type and message
Alert Slack alert per error group, plus the weekly email digest
Project Workspace (team, billing, AWS accounts) and project (one app or environment)
Auto-trace and lumigo:auto-trace tag Auto-trace rules and the ivy:trace tag
LUMIGO_TRACER_TOKEN IVY_API_KEY (a project ingest key)
Lumigo Copilot Your coding agent with Ivy's MCP server
Timeouts and out of memory Failures outside the handler: init errors, OOM, crashes, timeouts, throttles

What's different

  • Alerting is simpler. Ivy alerts on error groups in Slack and sends a weekly digest. There are no metric alerts, custom rules beyond the thresholds, or PagerDuty integration.
  • No log management. Ivy keeps each invocation's console.* lines and the last log lines of failures, not all of your logs.
  • Node.js only for the layer, today.
  • Payload redaction runs in the function. Ivy redacts keys like authorization, password and token by default. Add your own with IVY_REDACT_KEYS.
  • Pricing. €5 per million traces after 100,000 free a month per workspace, or self-host for free. See pricing.

Frequently asked questions

Can I run Lumigo and Ivy side by side?

Not on the same function: both rely on AWS_LAMBDA_EXEC_WRAPPER, and only one wrapper can be set. You can move functions over stack by stack, keeping Lumigo on the rest until you're done.

Will removing Lumigo's layer change my function's behaviour?

It shouldn't. If you used Lumigo's handler redirection, set the handler back to the value of LUMIGO_ORIGINAL_HANDLER before removing that variable, or the function will fail to start (Ivy would show it as an init error).

Can Ivy import my Lumigo history?

No. Ivy starts from the first trace after you switch. Keep exports of anything you need from Lumigo before December 31, 2026.

Is Dash0 the better choice for Lumigo users?

It depends on what you need. Dash0 is Lumigo's official successor and a broad observability platform. Ivy is smaller, focused on Lambda, open source, and priced per invocation. See Ivy vs Lumigo.

Trace your first function today

Paste this into your coding agent. It signs you up and adds tracing; you approve twice. Free for 100,000 traces a month.

Set up Ivy for my AWS Lambda functions using https://ivytrace.dev/llms.txt

Prefer to do it by hand? Manual setup · Self-host