diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d2f6c949..1608cfd0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,7 +6,8 @@ unreleased ========== * feature: Use the official middleware pattern for Aiohttp ext. `PR29 `_. * bugfix: SQLAlcemy plugin would cause warning messages with some db connection strings that contained invalid characters for a segment/subsegment name. -* bugfix: Aiohttp middleware serialized URL values incorrectly `PR37 `_ +* bugfix: Aiohttp middleware serialized URL values incorrectly. `PR37 `_ +* bugfix: Don't overwrite plugins list on each `.configure` call. `PR38 `_ 0.96 ==== diff --git a/aws_xray_sdk/core/recorder.py b/aws_xray_sdk/core/recorder.py index ac84ccbb..2b1f5437 100644 --- a/aws_xray_sdk/core/recorder.py +++ b/aws_xray_sdk/core/recorder.py @@ -73,6 +73,8 @@ def configure(self, sampling=None, plugins=None, :param tuple plugins: plugins that add extra metadata to each segment. Currently available plugins are EC2Plugin, ECS plugin and ElasticBeanstalkPlugin. + If you want to disable all previously enabled plugins, + pass an empty tuple ``()``. :param str context_missing: recorder behavior when it tries to mutate a segment or add a subsegment but there is no active segment. RUNTIME_ERROR means the recorder will raise an exception. @@ -117,12 +119,13 @@ def configure(self, sampling=None, plugins=None, if streaming_threshold: self.streaming_threshold = streaming_threshold - plugin_modules = None - if plugins: - plugin_modules = get_plugin_modules(plugins) - for module in plugin_modules: - module.initialize() - self._plugins = plugin_modules + if plugins is not None: + plugin_modules = None + if plugins: + plugin_modules = get_plugin_modules(plugins) + for module in plugin_modules: + module.initialize() + self._plugins = plugin_modules def begin_segment(self, name=None, traceid=None, parent_id=None, sampling=None):