Refine agent initialization within ElasticApmModule #2298
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR simplifies the locking for agent initialization and ensures we only attempt the initialisation once, even if
Init
is called multiple times of from multiple instances ofHttpApplication
. The use ofInitOnceHelper
didn't seem to properly guard this and is overly complex for the goal here. The optimized flow it also logs some additional trace messages to improve diagnostics.It removes the use of
DbgInstanceNameGenerator
which was not incrementing as expected. The new code prefers a simpler approach to define a scoped logger for each instance of the module.Although this code no longer uses the
InitOnceHelper
, I haven't removed that in this PR to keep the scope of the change here quite tight. It's now only used (and likely not required) when initializing theHttpClient
used to send data to the APM Server. I'll follow up with a PR to simplify that area and deal with a few other related element.The updated logging results in the following: