-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segment reference and reporting overhaul #50
Conversation
Personally, not about this PR, I think in the future, nodejs/python could adopt log service rather than span's log, which Java agent has done as log gRPC reporter. In there, you still could have all context and collaboration between tracing and logging, but as log could be sent as soon as possible separately, it has much better performance. |
It seems to me like the current logging was just a quick initial draft to get something working, not sure if it was meant to last? |
The logging changes in this PR is all about the agent itself, not the instrumented services. They're totally different things. |
Span's logs are something you want to inject dynamically in the plugin, real log protocol(https://github.com/apache/skywalking-data-collect-protocol/blob/master/logging/Logging.proto) should be used to collect user(target app)'s logs. Make sense? |
OK, got it. |
If there is no |
There is a peer it is just being set explicitly after the call rather than passing as parameter to |
This was designed from day one, because you want to make sure you have this, rather than facing |
I don't know nodejs agent core. But please make sure all sampling mechanisms optional and could be assigned through |
Which sampling mechanism are you referring to? |
All the plugins set it, and the chance of not setting it as a programming error is the same as the chance of not setting any other parameter like layer or component ID. All of which are non-desirable cases obviously but we don't give those parameters any special treatment... |
I mean, this is actually a sampling mechanism. Typically, it is called adoptive sampling. Because sampling bases on the volume of network and backend capabilities. |
You mean the "throttling" or "limiting" mechanism I changed? Doesn't matter what its called, it is settable, it uses the same |
I think should have a setting called |
In this PR I only changed how the current sampling method is implemented, not how it is defined, but those are all ideas for future PR extensions. One idea might be a general rule system for this and the various "ignore" options which specifies which endpoints to record and which to exclude which might include sampling frequency and max counts. But again, that is for a future PR... |
Could you update the document about this? |
SW_AGENT_MAX_BUFFER_SIZE is already documented in the README and I didn't change how it behaves, just how it is implemented internally. Or do you mean another document? Though you are right and I will add about how the ignore option is propagated downstream since people might otherwise be confused. |
Yes, I mean about how and when this works. |
@kezhenxu94: I've added two small cleanups:
|
There are many things in this PR most of which were discussed with @wu-sheng in a separate channel, they are as follows:
Context.newExitSpan()
and is now treated just like the other parameters.