# Features

Ivy is open-source observability for AWS Lambda, built around one idea: a trace should show exactly what an invocation did, with its payloads, in a form that both you and your coding agent can read. These are the parts.

- [Lambda tracing](https://ivytrace.dev/features/lambda-tracing): Trace every AWS Lambda invocation with its event, response, logs, errors and cold start, plus every DynamoDB, S3, SQS, SNS, EventBridge and HTTP call with request and response bodies.
- [Auto-instrumentation](https://ivytrace.dev/features/auto-instrumentation): Ivy's Lambda layer traces Node.js functions without code changes. Connect your AWS account once and pick functions by CloudFormation stack, name or tag; new matches are traced automatically.
- [Lambda errors](https://ivytrace.dev/features/lambda-errors): Ivy catches AWS Lambda failures outside the handler (init errors, out-of-memory kills, crashes and timeouts) with their last log lines, counts throttles, and groups everything into error groups.
- [Alerts](https://ivytrace.dev/features/alerts): Ivy sends a Slack message when a Lambda error group is first seen, then at most every 60 minutes or 100 occurrences, and a weekly email digest per workspace. Covers init errors, OOM, crashes, timeouts and throttles.
- [For AI agents](https://ivytrace.dev/features/ai-agents): Ivy gives coding agents production context for AWS Lambda: a remote MCP server across all your workspaces, interactive trace views (MCP Apps), an HTTP API with OpenAPI, llms.txt onboarding and an agent skill.
- [LLM observability](https://ivytrace.dev/features/llm-observability): Trace Vercel AI SDK and OpenTelemetry GenAI calls in AWS Lambda with Ivy. See prompts, responses, tool calls, token counts and time to first token in the same trace as your DynamoDB and HTTP calls.
- [OpenTelemetry](https://ivytrace.dev/features/opentelemetry): Ivy ingests standard OpenTelemetry (OTLP over HTTP) and uses OpenTelemetry semantic conventions, so any OTel SDK can send traces, and the Ivy layer is an optional, lighter producer for Node.js Lambda.
- [Self-hosting](https://ivytrace.dev/features/self-hosting): Run Ivy yourself with docker compose up. The OpenTelemetry Collector, ClickHouse, the API, dashboard and MCP server, MIT licensed, with OIDC sign-in and no limits.

## What Ivy covers today

| Area | Supported |
|---|---|
| Runtimes | Node.js on AWS Lambda (`nodejs22.x` tested, `nodejs20.x` should work), ESM and CommonJS, bundled or not |
| Instrumented calls | AWS SDK v3 (including bundled copies), `fetch`, `node:http` and `node:https`, `console.*` logs |
| Triggers recognized | API Gateway (REST and HTTP), ALB, function URLs, SQS, SNS, S3, DynamoDB Streams, EventBridge, schedules, Kinesis, direct invokes |
| Failures | Handler errors, init errors, out of memory, crashes, timeouts, throttles |
| Alerts | Slack per error group, weekly email digest |
| Agents | Remote MCP server with OAuth, HTTP API with OpenAPI 3.1, `llms.txt`, agent skill |
| LLM spans | Vercel AI SDK 3–7, OpenTelemetry GenAI semantic conventions |
| Ingest | OTLP over HTTP (protobuf or JSON) |
| Sign-in | OIDC (hosted: email sign-in; self-hosted: your own provider) |

## Not yet

Ivy is young, and these are not part of it yet:

- **Runtimes other than Node.js.** A Python layer is next. Until then, other runtimes can send traces through any OpenTelemetry SDK.
- **Advanced alerting.** Alerts cover error groups (Slack and a weekly digest). There are no metric or latency alerts, custom alert rules beyond the thresholds, or paging integrations such as PagerDuty.
- **Response streaming handlers** (`awslambda.streamifyResponse`) and Lambda multi-concurrency are not traced.
- **Trace context propagation** across functions (incoming and outgoing `traceparent` or X-Ray headers).
- **Logs and metrics as products.** Ivy keeps the `console.*` lines of each invocation and the last log lines of a failure, but it does not ship or index all of your CloudWatch logs.

---

Source: https://ivytrace.dev/features · Updated 2026-11-14
