Feature
Every invocation, captured.
Request body, response body, duration, console output, errors. All of it, for every run, searchable in the dashboard. No log drains to configure.
export default async function (req) {
console.log("received", { body: req.body });
const result = await process(req.body);
console.log("done", { ms: result.ms });
return result;
}What we capture
For every invocation, nvoke records the HTTP method and path, the request headers (with sensitive values redacted), the request body, the response status and body, the total duration, and everything the function wrote to stdout or stderr. Errors include the stack trace with source-mapped line numbers.
Log retention is 7 days on Free, 30 days on Nano, 90 days on Scale. Exceeding retention is fine — older logs simply roll off. If you need indefinite archival, point a cron function at the logs API and write them wherever you want.
Live tail and replay
The editor view has an inline log stream. Hit save, then hit your endpoint, and the new invocation appears in the stream within a second. This is the fastest feedback loop we could build for "did my function just work?"
Every captured invocation can be replayed from the dashboard. Replaying reruns the function with the same request body and returns the new response — useful for verifying a fix against production traffic without waiting for the next real call.
Live tail
Open the log panel next to the editor and watch invocations stream in as they happen. Great for debugging a webhook that is firing right now.
Searchable history
Filter by status, duration, or log text. Jump to any past invocation and see the full request and response body.
One-click replay
Click a past invocation and rerun it with the same input. Indispensable for reproducing a bug you already have a log of.
See what your functions are doing.
No log drain setup. No forwarding to Datadog. Just open the dashboard.