ServerTelemetryChannel to not use any storage if configured StorageFolder has issues. #2002
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.
Changes
Changes ServerTelemetryChannel to not fall back to any default folders/directory, if user has provided StorageFolder, and the provided StorageFolder is not usable for any reason (don't exist or no access etc.) Instead an Error level trace message is logged indicating the issue with user configured StorageFolder.
Previously ServerTelemetryChannel uses default directories as a fallback when the user configured StorageFolder fails for any reason. This is incorrect behavior and must be treated as a bug:
Inspecting
StorageFolder
on the configuration.sink.channel.StorageFolder shows the user configured folder, when SDK is actually using something else. This is misleading.User might have configured explicit StorageFolder because user did not want SDK to write/read from any default folder. Disregarding user configured folder and reading/writing to a different disk location can be a privacy bug as well. (what if the default folder contains telemetry from a different website in same app pool?)
Checklist
For significant contributions please make sure you have completed the following items:
The PR will trigger build, unit tests, and functional tests automatically. Please follow these instructions to build and test locally.
Notes for authors:
Notes for reviewers:
/AzurePipelines run
will queue all builds/AzurePipelines run <pipeline-name>
will queue a specific build