feat(o11y): per-batch output send spans + HEC ACK-poll span (PIPE-1066) - #289
Open
Dylan-M wants to merge 1 commit into
Open
feat(o11y): per-batch output send spans + HEC ACK-poll span (PIPE-1066)#289Dylan-M wants to merge 1 commit into
Dylan-M wants to merge 1 commit into
Conversation
Contributor
Author
This was referenced Aug 6, 2026
Open
Assisted-by: Claude Opus 4.8
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-fix-into-spine
branch
from
August 14, 2026 19:22
3140181 to
f6d4081
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
August 14, 2026 19:22
0cdadc6 to
eea38d6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Proposed Change
Adds send-latency tracing to the outputs, gated by
PerBatchSpans. tcp, udp, and filecarry the emit-span context through their internal channel and parent a per-message span
on the actual send:
blitz.output.tcp.send,blitz.output.udp.send, andblitz.output.file.write. otlp and hec batch many records, so they emit a standalonesendspan carryingblitz.batch.sizerather than parenting to one record. hec adds ablitz.output.hec.ack_pollspan around the indexing-confirmation poll. syslog delegatesto its tcp/udp transport, so it is not double-spanned.
How to validate
nc -lk 5140), point blitz at a collector, and enable per-batchspans:
go run ./cmd/blitz --generator-type apache-common --generator-apache-common-rate 1s --output-type tcp --output-tcp-host localhost --output-tcp-port 5140 --telemetry-traces-otlpendpoint localhost:4317 --telemetry-traces-insecure --telemetry-traces-perbatchspansblitz.output.tcp.sendspans arrive as children of the emit span.--output-type hec --output-hec-host localhost --output-hec-port 8088 --output-hec-token test-token --output-hec-enableack.Confirm a
blitz.output.hec.sendspan carryingblitz.batch.size, plus ablitz.output.hec.ack_pollspan.--telemetry-traces-perbatchspans(the default) and confirm no send spans areemitted.
go test ./output/...covers each output's send span, the off path, and the otlp/hecbatch spans via mock service clients.
Checklist