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.
What does this change
When we fixed recursive plugin loading in #2071, we did so by disabling config loading in the plugin. This was almost right but not quite. While Porter does resolve the relevant config for the plugin and pass it on stdin, this does not provide some of the general configuration settings that can be used by the plugin such as logging and telemetry.
Specifically, our change caused a regression where the plugins didn't load the telemetry configuration and stopped sending trace data.
I have updated how configuration data is loaded for plugins:
While I was working on this I found that we aren't handling close errors when we close porter's log file and we were missing a race condition where the plugin closes the log file before porter is done with it. I've split up the log and trace files for the plugins and porter so that they write to CORRELLATIONID.json for porter and
CORRELLATIONID-PLUGINKEY.json for the plugins.
What issue does it fix
Restores plugin telemetry.
Closes #2057
Notes for the reviewer
Checklist
Reviewer Checklist