Skip to content

Commit 0eee77a

Browse files
committed
Merge branch 'develop' into refactor/e2e-get-lambda-response
* develop: chore: cleanup, add test for single and nested fix(parameters): make cache aware of single vs multiple calls fix(metrics): proxy service and namespace attrs to provider (aws-powertools#2910) chore(deps-dev): bump ruff from 0.0.281 to 0.0.282 (aws-powertools#2905)
2 parents 204342d + de16a0f commit 0eee77a

File tree

4 files changed

+59
-20
lines changed

4 files changed

+59
-20
lines changed

aws_lambda_powertools/metrics/metrics.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,26 @@ def clear_default_dimensions(self) -> None:
181181
def clear_metrics(self) -> None:
182182
self.provider.clear_metrics()
183183

184+
# We now allow customers to bring their own instance
185+
# of the AmazonCloudWatchEMFProvider provider
186+
# So we need to define getter/setter for namespace and service properties
187+
# To access these attributes on the provider instance.
188+
@property
189+
def namespace(self):
190+
return self.provider.namespace
191+
192+
@namespace.setter
193+
def namespace(self, namespace):
194+
self.provider.namespace = namespace
195+
196+
@property
197+
def service(self):
198+
return self.provider.service
199+
200+
@service.setter
201+
def service(self, service):
202+
self.provider.service = service
203+
184204

185205
# Maintenance: until v3, we can't afford to break customers.
186206
# AmazonCloudWatchEMFProvider has the exact same functionality (non-singleton)

poetry.lock

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ mypy = "^1.1.1"
9191
types-python-dateutil = "^2.8.19.6"
9292
httpx = ">=0.23.3,<0.25.0"
9393
sentry-sdk = "^1.22.2"
94-
ruff = ">=0.0.272,<0.0.282"
94+
ruff = ">=0.0.272,<0.0.283"
9595
retry2 = "^0.9.5"
9696

9797
[tool.coverage.run]

tests/functional/test_metrics.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,25 @@ def test_clear_default_dimensions(namespace):
10771077
assert not my_metrics.default_dimensions
10781078

10791079

1080+
def test_get_and_set_namespace_and_service_properties(namespace, service, metrics, capsys):
1081+
# GIVEN Metrics instance is initialized without namespace and service
1082+
my_metrics = Metrics()
1083+
1084+
# WHEN we set service and namespace before flushing the metric
1085+
@my_metrics.log_metrics
1086+
def lambda_handler(evt, ctx):
1087+
my_metrics.namespace = namespace
1088+
my_metrics.service = service
1089+
for metric in metrics:
1090+
my_metrics.add_metric(**metric)
1091+
1092+
lambda_handler({}, {})
1093+
invocation = capture_metrics_output(capsys)
1094+
1095+
assert service in json.dumps(invocation)
1096+
assert namespace in json.dumps(invocation)
1097+
1098+
10801099
def test_clear_default_dimensions_with_provider(namespace):
10811100
# GIVEN Metrics is initialized with provider and we persist a set of default dimensions
10821101
my_provider = AmazonCloudWatchEMFProvider(namespace=namespace)

0 commit comments

Comments
 (0)