-
Notifications
You must be signed in to change notification settings - Fork 144
Add ability to enable/disable the SDK (#26) #119
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
Merged
Merged
Changes from 4 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
6de2714
Add ability to enable/disable the SDK (#26)
chanchiem 7968a17
Merge branch 'master' into rundisable
haotianw465 e960164
Add ability to enable/disable the SDK (#26)
chanchiem 682703e
Add ability to enable/disable the SDK (#26)
chanchiem bcc9857
Merge remote-tracking branch 'origin/master' into chiem_disabled
chanchiem 322792a
Add ability to enable/disable the SDK (#26)
chanchiem f683e95
Merge branch 'master' into rundisable
chanchiem e443268
Add ability to enable/disable the SDK (#26)
chanchiem File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from .sdk_config import SDKConfig | ||
|
||
global_sdk_config = SDKConfig() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
import os | ||
|
||
|
||
class InvalidParameterTypeException(Exception): | ||
""" | ||
Exception thrown when an invalid parameter is passed into SDKConfig.set_sdk_enabled. | ||
""" | ||
pass | ||
|
||
|
||
class SDKConfig(object): | ||
""" | ||
Global Configuration Class that defines SDK-level configuration properties. | ||
|
||
Enabling/Disabling the SDK: | ||
By default, the SDK is enabled unless if an environment variable AWS_XRAY_SDK_ENABLED | ||
is set. If it is set, it needs to be a valid string boolean, otherwise, it will default | ||
to true. If the environment variable is set, all calls to set_sdk_enabled() will | ||
prioritize the value of the environment variable. | ||
Disabling the SDK affects the recorder, patcher, and middlewares in the following ways: | ||
For the recorder, disabling automatically generates DummySegments for subsequent segments | ||
and DummySubsegments for subsegments created and thus not send any traces to the daemon. | ||
For the patcher, module patching will automatically be disabled. The SDK must be disabled | ||
before calling patcher.patch() method in order for this to function properly. | ||
For the middleware, no modification is made on them, but since the recorder automatically | ||
generates DummySegments for all subsequent calls, they will not generate segments/subsegments | ||
to be sent. | ||
|
||
Environment variables: | ||
"AWS_XRAY_SDK_ENABLED" - If set to 'false' disables the SDK and causes the explained above | ||
to occur. | ||
""" | ||
XRAY_ENABLED_KEY = 'AWS_XRAY_SDK_ENABLED' | ||
__SDK_ENABLED = str(os.getenv(XRAY_ENABLED_KEY, 'true')).lower() != 'false' | ||
|
||
@classmethod | ||
def sdk_enabled(cls): | ||
""" | ||
Returns whether the SDK is enabled or not. | ||
""" | ||
return cls.__SDK_ENABLED | ||
|
||
@classmethod | ||
def set_sdk_enabled(cls, value): | ||
""" | ||
Modifies the enabled flag if the "AWS_XRAY_SDK_ENABLED" environment variable is not set, | ||
otherwise, set the enabled flag to be equal to the environment variable. If the | ||
env variable is an invalid string boolean, it will default to true. | ||
|
||
:param bool value: Flag to set whether the SDK is enabled or disabled. | ||
|
||
Environment variables AWS_XRAY_SDK_ENABLED overrides argument value. | ||
""" | ||
# Environment Variables take precedence over hardcoded configurations. | ||
if cls.XRAY_ENABLED_KEY in os.environ: | ||
cls.__SDK_ENABLED = str(os.getenv(cls.XRAY_ENABLED_KEY, 'true')).lower() != 'false' | ||
else: | ||
if type(value) == bool: | ||
cls.__SDK_ENABLED = value | ||
else: | ||
cls.__SDK_ENABLED = True | ||
raise InvalidParameterTypeException( | ||
chanchiem marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"Invalid parameter type passed into set_sdk_enabled(). Defaulting to True..." | ||
) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.