You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 14, 2023. It is now read-only.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I find that function newSegmentRoot will create a coroutine for every request . At the end of each Segment collection, a message is sent immediately.I'm afraid this will affect performance.
Describe the solution you'd like
A clear and concise description of what you want to happen.
I'm wondering if go2sky can implement a collector to collect messages and send them based on time and quantity dimensions, so as to avoid creating a large number of coroutines in high concurrency scenarios.User can set report interval and number of segments.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered:
Thanks for your reply. I mean in function call chain CreateEntrySpan->CreateLocalSpan->newSegmentSpan->newSegmentRoot. In func newSegmentRoot :
go func() {
total := -1
defer close(ch)
defer close(s.doneCh)
for {
select {
case span := <-s.notify:
s.segment = append(s.segment, span)
case n := <-s.doneCh:
total = int(n)
}
if total == len(s.segment) {
break
}
}
s.tracer.reporter.Send(append(s.segment, s))
}()
I'm worried about performance. I want a collector to be able to collect segments and send in batches after interval time or reach max count limit, rather than send each message immediately.
If this reports as a grpc stream, it is safe. SkyWalking javaagent doesn't need any collector, it could work in 5k-10k tps with 10% CPU only. Your concern should base on experiences, and code optimization. In most cases, the collector wouldn't help.
If this reports as a grpc stream, it is safe. SkyWalking javaagent doesn't need any collector, it could work in 5k-10k tps with 10% CPU only. Your concern should base on experiences, and code optimization. In most cases, the collector wouldn't help.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I find that function newSegmentRoot will create a coroutine for every request . At the end of each Segment collection, a message is sent immediately.I'm afraid this will affect performance.
Describe the solution you'd like
A clear and concise description of what you want to happen.
I'm wondering if go2sky can implement a collector to collect messages and send them based on time and quantity dimensions, so as to avoid creating a large number of coroutines in high concurrency scenarios.User can set report interval and number of segments.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: