jaegertracing / jaeger-client-go

🛑 This library is DEPRECATED!
https://jaegertracing.io/
Apache License 2.0
1.38k stars 287 forks source link

HTTP Transport sender sends in batches of 1 #570

Closed raidancampbell closed 3 years ago

raidancampbell commented 3 years ago

Requirement - what kind of business use case are you trying to solve?

When configured to send traces to my collector via HTTP, I would like my tracer to have a default batch size that matches the documented value. Ideally this batch should be a large-ish value so that the sender and collector aren't thrashing under load.

Problem - what in Jaeger blocks you from solving the requirement?

The HTTP sender appears to always override its default batch size of 100. It appears this was introduced in #323, but I don't see any comments on the relevant part of that diff nor any discussion referencing that pull request since.

Proposal - what do you suggest to solve the problem or improve the existing situation?

Omit the transport.HTTPBatchSize(1) configuration from the HTTPOption array created here

Any open questions to address

Is 100 a sane default value? I have zero intuition for this, and perhaps the batch size of 1 was done for some good reason. Given the lack of discussion around it, I suspect the author made that change for local testing, and it was merged in by accident.

yurishkuro commented 3 years ago

I am not sure what was the motivation for size=1 in that PR, maybe worth asking the author.

The typical min size of a span is around 500 bytes with common opentracing instrumentation, likely much larger with OpenTelemetry conventions. There's no particular wisdom in the default of 100.