-
Notifications
You must be signed in to change notification settings - Fork 114
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
Clarify activation method when version unknown #783
Clarify activation method when version unknown #783
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, I much prefer this optimistic default to send it UNLESS we explicitly know its the version with the bug not the other way around.
Actually, wait. This wording of the spec suggests that we only want to send |
Yeah, worth noting that we're doing this for >=8.7.1, no lower versions. And this spec change matches our behavior already. elastic/apm-agent-python#1787 |
Co-authored-by: Trent Mick <trentm@gmail.com>
I just found that in .NET we basically only do the get server information API call once. If a user upgrades, we'll continue to not send activation method untill the users app restarts. To me this is an acceptable tradeoff vs having no metrics. Wonder how everyone else feels about this though. |
In Java too, we only do it once on agent startup, and we also have to make that call asynchronous to prevent blocking when trying to get the agent remote configuration. Also, we only serialize metadata once which further complicates the logic here.
You mean upgrade the apm-server, not the apm agent here ? For Java (and likely others), this effectively means that if the agent is started with a 8.7.0 server, then it won't send it until the application is restarted.
💯 here, however I'm pretty sure it's a topic that will come back with serverless and managed apm server instance. |
Same in Python, we only get the server version at agent initialization. Maybe it would make sense to add the server version to e.g. the config endpoint response at some point, but I agree that the current behaviour is fine for now. |
Implements spec change from elastic/apm#783 Also normalizes Prerelease in ElasticVersion to always be string.Empty. The current Equals implementation does not handle null<=>string.Empty well.
Same for the Node.js agent. |
* Prevent sending activation_method in metadata for 8.7.0 Implements spec change from elastic/apm#783 Also normalizes Prerelease in ElasticVersion to always be string.Empty. The current Equals implementation does not handle null<=>string.Empty well. * update xmldoc * Apply suggestions from code review Co-authored-by: Gergely Kalapos <gergo@kalapos.net> * Format and remove unused usings * fix build error --------- Co-authored-by: Gergely Kalapos <gergo@kalapos.net>
I will merge as we all agree on this one, also it seems that the implementation in agents also fit this already, so I won't create a meta+agent implementation issues here. Feel free to create issues and PRs linked to this one if needed though. |
Assume that the server version is not 8.7.0 and send the
activation_method
by default.CODEOWNERS
)To auto-merge the PR, add
/
schedule YYYY-MM-DD
to the PR description.