Files
zooqueenandHanzo Dev dbf00910f1 spans and logs travel the way metrics already do: native batches over ZAP
One protocol for the three signals, shapes declared once in internal/otlz and
pinned both directions against what the receiver accepts — a field invented
fails as loudly as a field missed. No OpenTelemetry SDK is linked by otlz;
importing the receiver for tests would have grown the module graph to 1145
modules, so the contract is goldens, measured not assumed.

Zero configuration. A program reports because it exists: each signal resolves
its collector by convention — an override if one is set, the well-known socket
if it exists, loopback's conventional port otherwise — re-resolved on every
attempt, so a collector that starts later is found without a restart. Absence
is free: lazy dial, the batch dropped, one line when export begins working and
one when it stops, with the reason. Over the socket the kernel attests which
process exported a batch, which loopback cannot.

Two races the tests forced out: the ship decision moved off the serve
goroutine, so a request answered immediately after Serve no longer loses its
span; and export starts in the last synchronous step Serve and Listen share,
so a short-lived process cannot reach Shutdown before the flush hook exists.

The runtime-directory scheme lives once in internal/sock; RuntimeDir and
SocketPath delegate to it. luxfi/zap moves one patch, v1.2.6 to v1.2.7.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-04 16:51:09 -07:00
..