feat(protocol): TCP connection lifecycle spans - #956
Conversation
9c4e60d to
2eb1a58
Compare
|
Unsigned commits: 2eb1a58. Please sign your commits. |
2eb1a58 to
ad3d5e1
Compare
praxis-bot
left a comment
There was a problem hiding this comment.
TCP Connection Lifecycle Spans Review
1 Large, 2 Medium findings.
The span creation and .instrument(span) pattern is correct -- the span always closes properly regardless of exit path. The tracing capture test utilities are well-designed and the test coverage for span attributes and structured events is good.
Key concern: connection_close is only emitted on the happy path, creating telemetry lifecycle gaps when connections fail after acceptance. See inline comments.
5f2c384 to
77d758d
Compare
praxis-bot
left a comment
There was a problem hiding this comment.
PR Review
Adds tcp_connection lifecycle span wrapping TCP proxy connections with structured connection_accepted, connection_error, and connection_close events.
The span/instrument pattern is correct and the tracing capture test utilities are well-built. The previous review's findings (lifecycle gap, error level escalation, shared message names) have been addressed or partially addressed. Two new issues found.
| Severity | Count |
|---|---|
| Medium | 2 |
bc6b16a to
68855a1
Compare
Add root tracing spans for TCP proxy connections covering the full connection lifecycle from accept to close. - Span per TCP connection with client.address, upstream.address, network.transport attributes - Span events for connection open, close, and error - Byte counts (sent/received) and duration recorded at close - TLS handshake duration attribute when applicable - Independent root spans (not children of HTTP spans) Closes praxis-proxy#313 Signed-off-by: Ladislav Smola <lsmola@redhat.com>
68855a1 to
bf6d746
Compare
Summary
tcp_connectioninfo span wrapping the full TCP connection lifecycleclient.address,network.transport,upstream.addressconnection_open,connection_error,connection_close(withbytes_in,bytes_out,duration_ms)Closes #313
Dependencies
None — independent of HTTP tracing work.
Test plan