aws-lambda-powertools 3.7.1a0__py3-none-any.whl → 3.7.1a2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aws_lambda_powertools/logging/logger.py +29 -3
- aws_lambda_powertools/shared/version.py +1 -1
- {aws_lambda_powertools-3.7.1a0.dist-info → aws_lambda_powertools-3.7.1a2.dist-info}/METADATA +1 -1
- {aws_lambda_powertools-3.7.1a0.dist-info → aws_lambda_powertools-3.7.1a2.dist-info}/RECORD +6 -6
- {aws_lambda_powertools-3.7.1a0.dist-info → aws_lambda_powertools-3.7.1a2.dist-info}/LICENSE +0 -0
- {aws_lambda_powertools-3.7.1a0.dist-info → aws_lambda_powertools-3.7.1a2.dist-info}/WHEEL +0 -0
@@ -220,6 +220,10 @@ class Logger:
|
|
220
220
|
serialize_stacktrace: bool = True,
|
221
221
|
**kwargs,
|
222
222
|
) -> None:
|
223
|
+
|
224
|
+
# Used in case of sampling
|
225
|
+
self.initial_log_level = self._determine_log_level(level)
|
226
|
+
|
223
227
|
self.service = resolve_env_var_choice(
|
224
228
|
choice=service,
|
225
229
|
env=os.getenv(constants.SERVICE_NAME_ENV, "service_undefined"),
|
@@ -339,6 +343,17 @@ class Logger:
|
|
339
343
|
self._logger.init = True # type: ignore[attr-defined]
|
340
344
|
self._logger.powertools_handler = self.logger_handler # type: ignore[attr-defined]
|
341
345
|
|
346
|
+
def refresh_sample_rate_calculation(self) -> None:
|
347
|
+
"""
|
348
|
+
Refreshes the sample rate calculation by reconfiguring logging settings.
|
349
|
+
|
350
|
+
Returns
|
351
|
+
-------
|
352
|
+
None
|
353
|
+
"""
|
354
|
+
self._logger.setLevel(self.initial_log_level)
|
355
|
+
self._configure_sampling()
|
356
|
+
|
342
357
|
def _configure_sampling(self) -> None:
|
343
358
|
"""Dynamically set log level based on sampling rate
|
344
359
|
|
@@ -347,15 +362,20 @@ class Logger:
|
|
347
362
|
InvalidLoggerSamplingRateError
|
348
363
|
When sampling rate provided is not a float
|
349
364
|
"""
|
365
|
+
if not self.sampling_rate:
|
366
|
+
return
|
367
|
+
|
350
368
|
try:
|
351
|
-
|
352
|
-
|
369
|
+
# This is not testing < 0 or > 1 conditions
|
370
|
+
# Because I don't need other if condition here
|
371
|
+
if random.random() <= float(self.sampling_rate):
|
353
372
|
self._logger.setLevel(logging.DEBUG)
|
373
|
+
logger.debug("Setting log level to DEBUG due to sampling rate")
|
354
374
|
except ValueError:
|
355
375
|
raise InvalidLoggerSamplingRateError(
|
356
376
|
(
|
357
377
|
f"Expected a float value ranging 0 to 1, but received {self.sampling_rate} instead."
|
358
|
-
"Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable."
|
378
|
+
"Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable or `sampling_rate` parameter."
|
359
379
|
),
|
360
380
|
)
|
361
381
|
|
@@ -465,6 +485,12 @@ class Logger:
|
|
465
485
|
logger.debug("Event received")
|
466
486
|
self.info(extract_event_from_common_models(event))
|
467
487
|
|
488
|
+
# Sampling rate is defined, and this is not ColdStart
|
489
|
+
# then we need to recalculate the sampling
|
490
|
+
# See: https://github.com/aws-powertools/powertools-lambda-python/issues/6141
|
491
|
+
if self.sampling_rate and not cold_start:
|
492
|
+
self.refresh_sample_rate_calculation()
|
493
|
+
|
468
494
|
return lambda_handler(event, context, *args, **kwargs)
|
469
495
|
|
470
496
|
return decorate
|
{aws_lambda_powertools-3.7.1a0.dist-info → aws_lambda_powertools-3.7.1a2.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: aws_lambda_powertools
|
3
|
-
Version: 3.7.
|
3
|
+
Version: 3.7.1a2
|
4
4
|
Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
|
5
5
|
License: MIT
|
6
6
|
Keywords: aws_lambda_powertools,aws,tracing,logging,lambda,powertools,feature_flags,idempotency,middleware
|
@@ -44,7 +44,7 @@ aws_lambda_powertools/logging/formatter.py,sha256=dmE6XXmkWVkYbWdy1Kg69TYJJ0yDXf
|
|
44
44
|
aws_lambda_powertools/logging/formatters/__init__.py,sha256=OqddpJcWMqRYhx5SFy-SPqtt72tkRZbfpEi_oCC47eI,301
|
45
45
|
aws_lambda_powertools/logging/formatters/datadog.py,sha256=NwaaBOp7jIlOAH158NzyvW-EwmWqqnYX9f7Uu_nIUYQ,3169
|
46
46
|
aws_lambda_powertools/logging/lambda_context.py,sha256=VHst_6hxMpXgScoxNwaC61UXPTIdd3AEBHTPzb4esPc,1736
|
47
|
-
aws_lambda_powertools/logging/logger.py,sha256=
|
47
|
+
aws_lambda_powertools/logging/logger.py,sha256=r9VACN9W72VMMqxbhbRYz9dREhX5pkk5hUf5MtS9u_8,35824
|
48
48
|
aws_lambda_powertools/logging/types.py,sha256=Zc95nGdZ2sJUEPdwR0uoArT_F-JSKfpS_LokdCVO0nQ,1263
|
49
49
|
aws_lambda_powertools/logging/utils.py,sha256=NirAObjkkarN5fX2diHs0Ln_8KHLueviL-jCKhckIBM,4069
|
50
50
|
aws_lambda_powertools/metrics/__init__.py,sha256=B5FpJS_VR7zivm2ylvUF8RHBthKz4aDk0VA5GpDn3Tk,592
|
@@ -83,7 +83,7 @@ aws_lambda_powertools/shared/json_encoder.py,sha256=JQeWNu-4M7_xI_hqYExrxsb3OcEH
|
|
83
83
|
aws_lambda_powertools/shared/lazy_import.py,sha256=TbXQm2bcwXdZrYdBaJJXIswyLlumM85RJ_A_0w-h-GU,2019
|
84
84
|
aws_lambda_powertools/shared/types.py,sha256=APkI38HbiTpSF19NSNii8Ydx73vmVUVotgEQ9jHruEI,124
|
85
85
|
aws_lambda_powertools/shared/user_agent.py,sha256=DrCMFQuT4a4iIrpcWpAIjY37EFqR9-QxlxDGD-Nn9Gg,7081
|
86
|
-
aws_lambda_powertools/shared/version.py,sha256=
|
86
|
+
aws_lambda_powertools/shared/version.py,sha256=E-iURQ7y7IJ0t0cJU7SdPvNeF_MARrQyH_0S-tuVU9Y,84
|
87
87
|
aws_lambda_powertools/tracing/__init__.py,sha256=f4bMThOPBPWTPVcYqcAIErAJPerMsf3H_Z4gCXCsK9I,141
|
88
88
|
aws_lambda_powertools/tracing/base.py,sha256=DbLD8OSK05KLdSV36oNA5wDSGv8KbcOD19qMUqoXh58,4513
|
89
89
|
aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
|
@@ -251,7 +251,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
|
|
251
251
|
aws_lambda_powertools/utilities/validation/exceptions.py,sha256=PKy_19zQMBJGCMMFl-sMkcm-cc0v3zZBn_bhGE4wKNo,2084
|
252
252
|
aws_lambda_powertools/utilities/validation/validator.py,sha256=x_1qpuKJBuWpgNU-zCD3Di-vXrZfyUu7oA5RmjZjr84,10034
|
253
253
|
aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
|
254
|
-
aws_lambda_powertools-3.7.
|
255
|
-
aws_lambda_powertools-3.7.
|
256
|
-
aws_lambda_powertools-3.7.
|
257
|
-
aws_lambda_powertools-3.7.
|
254
|
+
aws_lambda_powertools-3.7.1a2.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
|
255
|
+
aws_lambda_powertools-3.7.1a2.dist-info/METADATA,sha256=zCh4tBMnAiNh7yABs2WM42ALRmZgxz1J6lYKxn4RU-Q,11151
|
256
|
+
aws_lambda_powertools-3.7.1a2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
257
|
+
aws_lambda_powertools-3.7.1a2.dist-info/RECORD,,
|
File without changes
|
File without changes
|