feat(o11y): per-batch output send spans + HEC ACK-poll span (PIPE-1066) - #289
Open
Dylan-M wants to merge 2 commits into
Open
feat(o11y): per-batch output send spans + HEC ACK-poll span (PIPE-1066)#289Dylan-M wants to merge 2 commits into
Dylan-M wants to merge 2 commits into
Conversation
This was referenced Aug 6, 2026
Contributor
Author
This was referenced Aug 6, 2026
Merged
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
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-fix-into-spine
branch
from
August 26, 2026 15:43
f6d4081 to
68cc017
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
August 26, 2026 15:43
eea38d6 to
48322b4
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-fix-into-spine
branch
from
September 4, 2026 13:06
68cc017 to
b7ecb22
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
September 4, 2026 13:06
48322b4 to
dbf7635
Compare
eKuG
previously approved these changes
Sep 4, 2026
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
September 4, 2026 21:00
dbf7635 to
f12b841
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-fix-into-spine
branch
from
September 4, 2026 21:00
b7ecb22 to
68e6626
Compare
Dylan-M
dismissed
eKuG’s stale review
September 4, 2026 21:01
Had to refactor to account for a change on main. Please re-review.
Contributor
Author
|
@eKuG Had to refactor to account for a change on main. Please re-review |
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-fix-into-spine
branch
from
September 4, 2026 22:54
68e6626 to
f397cd0
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
September 4, 2026 22:54
f12b841 to
a6a38d6
Compare
graphite-app
Bot
changed the base branch from
dylanmyers/pipe-1066-fix-into-spine
to
graphite-base/289
September 4, 2026 23:25
Assisted-by: Claude Opus 4.8
…r PIPE-1230 rebase (PIPE-1066) Assisted-by: Claude Opus 4.8
Dylan-M
force-pushed
the
graphite-base/289
branch
from
September 4, 2026 23:33
f397cd0 to
ec08e0b
Compare
Dylan-M
force-pushed
the
dylanmyers/pipe-1066-output-send-spans
branch
from
September 4, 2026 23:33
a6a38d6 to
006d135
Compare
Merge activity
|
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