Inspect traffic with Observability and request traces
Use project Observability charts, Logs Traces, and Invocations to debug latency, cold starts, and function timing after a deploy.
Easel records edge and function telemetry for every project. Use Observability for trends, Logs for individual requests and span Traces, and Invocations when one function invoke served multiple requests.
Observability charts
Open Observability on a project to see traffic over the time window you select. Charts answer questions about volume, errors, bandwidth, and function behavior before you open a single request.
Typical signals include:
- Edge Requests: request volume and error rates at the edge
- Edge Bandwidth: bytes served
- Function Starts: cold versus warm starts
- Functions and Compute: invocations and duration
Pick a deploy window and compare it to the hours before the release. When a chart moves, use Logs or Invocations to inspect the requests behind the spike.
Logs and request detail
Logs lists recent requests for the project. Filter by status, path, method, time range, and related fields, then select a row to open the detail panel.
The detail panel shows request metadata and timing next to the list. Metrics include compute duration, post-response work, AWS duration, AWS billed, init time, and whether the invoke was a cold start. These fields sit on the detail panel; they are not separate Trace span names.
The sticky dock under the list has two tabs for the selected request:
- Logs: function and platform log lines for that request
- Trace: the span tree for edge and function work on that request
Request Trace
A request Trace is a span tree for one HTTP request. Easel builds it from platform timing plus any OpenTelemetry (OTEL) spans your function emits.
Spans in a Trace
Platform spans include:
- Root span for the request method and path
- Resolve Deployment and Resolve Route for edge routing
- Invoke middleware and Invoke function for compute windows
- Nested app OTEL spans under Invoke function when you instrument the runtime
If the function has not emitted OTEL yet, the Trace still shows platform spans. A placeholder under the invoke notes that tenant spans will appear there once instrumentation is present.
Timeline, Tree, and Waterfall
The Trace toolbar shares one span tree across three views:
- Timeline: absolute-time lanes with zoom and a minimap
- Tree: hierarchy with expand and collapse
- Waterfall: indented labels with duration bars
Search spans from the Trace toolbar when the tree is large. Span kinds in the UI include Platform, Framework, Fetch, and Custom.
What a Trace does not replace
Cold start flags and AWS billed duration remain on the request detail (and on Invocations). Use them together with the Trace: the Trace shows where time went inside the request; the detail metrics show billing and cold-start context for the invoke.
How to open a request Trace
- Open the project and go to Logs.
- Filter to the time range and path you care about.
- Select a request row.
- Open the Trace tab in the dock.
- Choose Timeline, Tree, or Waterfall.
From Logs detail you can also open the matching invocation when you need the function-level view.
Invocations and multiplexed requests
One function invocation can serve more than one HTTP request when the runtime keeps the isolate warm and multiplexes traffic. Invocations lists those invokes with columns such as route, request count (Reqs), cold start, duration, compute, and AWS billed.
Select an invocation to open:
- Overview: summary metrics and a waterfall of requests served on that invoke
- Trace: an invocation-level Trace focused on lifecycle and per-request summary bars
Use Open in Logs (or filter Logs with invocationId:…) to jump from an invocation to the request list for the same invoke. Open a request Trace from Logs when you need edge resolve spans and nested app OTEL detail for one HTTP request.
When to use each surface
| Goal | Open |
|---|---|
| Check error rate or latency after a deploy | Observability charts |
| Find failed or slow requests in a window | Logs |
| See where time went inside one request | Logs → Trace |
| Inspect a multiplexed invoke and billing | Invocations |
| Correlate an invoke with its requests | Invocations ↔ Logs via invocation ID |
Related guides
- Query request logs: follow and filter the same request stream from the CLI
- CDN system headers: correlate edge decisions with request identity in logs
- Custom WAF rules: firewall observability next to traffic signals
- WAF and attack challenge: how challenge mode shows up in firewall events