One server span per HTTP request, joined to the trace the request arrived with.
The layer does three things and no more: it reads traceparent and baggage
off the request, it opens a span of kind Server as a child of what it read, and
it writes the resulting context back on the response. A request that carried no
context starts a trace; one that carried a broken context also starts a trace,
because refusing the request over a header would be worse than a missing link in
the trace.
The span reaches the sink when the application returns, with the response status
on it. A request the application fails is recorded as an exception event before
the error is passed on to the server, which is what an ASGI server keeps.