@@ -38,8 +38,10 @@ type (
38
38
debugMode bool
39
39
metadata map [string ]interface {}
40
40
41
- payloadSpans []PayloadSpan
42
- payloadEvents []PayloadEvent
41
+ payloadSpans []PayloadSpan
42
+ payloadEvents []PayloadEvent
43
+ maxSpansPerPayload int
44
+ maxEventsPerPayload int
43
45
44
46
flushFrequency time.Duration
45
47
url string
@@ -82,6 +84,16 @@ func NewSpanRecorder(agent *Agent) *SpanRecorder {
82
84
r .url = agent .getUrl ("api/agent/ingest" )
83
85
r .client = & http.Client {}
84
86
r .stats = & RecorderStats {}
87
+ if cfg .Tracer .Dispatcher .Events .MaxPayloadSize != nil {
88
+ r .maxEventsPerPayload = * cfg .Tracer .Dispatcher .Events .MaxPayloadSize
89
+ } else {
90
+ r .maxEventsPerPayload = 1000
91
+ }
92
+ if cfg .Tracer .Dispatcher .Spans .MaxPayloadSize != nil {
93
+ r .maxSpansPerPayload = * cfg .Tracer .Dispatcher .Spans .MaxPayloadSize
94
+ } else {
95
+ r .maxSpansPerPayload = 1000
96
+ }
85
97
r .t .Go (r .loop )
86
98
return r
87
99
}
@@ -142,11 +154,10 @@ func (r *SpanRecorder) loop() error {
142
154
// Sends the spans in the buffer to Scope
143
155
func (r * SpanRecorder ) sendSpans () (error , bool ) {
144
156
atomic .AddInt64 (& r .stats .sendSpansCalls , 1 )
145
- const batchSize = 1000
146
157
var lastError error
147
158
for {
148
- spans , spMore , spTotal := r .popPayloadSpan (batchSize )
149
- events , evMore , evTotal := r .popPayloadEvents (batchSize )
159
+ spans , spMore , spTotal := r .popPayloadSpan (r . maxSpansPerPayload )
160
+ events , evMore , evTotal := r .popPayloadEvents (r . maxEventsPerPayload )
150
161
151
162
payload := map [string ]interface {}{
152
163
"metadata" : r .metadata ,
0 commit comments