Skip to content

Commit 6bef931

Browse files
committed
Fix filter labels
1 parent d173368 commit 6bef931

File tree

3 files changed

+62
-62
lines changed

3 files changed

+62
-62
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
([#4737](https://github.com/open-telemetry/opentelemetry-python/pull/4737))
2828
- logs: add warnings for classes that would be deprecated and renamed in 1.39.0
2929
([#4771](https://github.com/open-telemetry/opentelemetry-python/pull/4771))
30-
- Add `minimum_severity` and `trace_based` logger parameters to filter logs
30+
- Add `minimum_severity level` and `trace_based sampling` logger parameters to filter logs
3131
([#4765](https://github.com/open-telemetry/opentelemetry-python/pull/4765))
3232

3333
## Version 1.37.0/0.58b0 (2025-09-11)

opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -106,33 +106,33 @@ class LoggerConfig:
106106
def __init__(
107107
self,
108108
disabled: bool = False,
109-
minimum_severity: SeverityNumber = SeverityNumber.UNSPECIFIED,
110-
trace_based: bool = False,
109+
minimum_severity_level: SeverityNumber = SeverityNumber.UNSPECIFIED,
110+
trace_based_sampling: bool = False,
111111
):
112112
"""Initialize LoggerConfig with specified parameters.
113113
114114
Args:
115115
disabled: A boolean indication of whether the logger is enabled.
116116
If not explicitly set, defaults to False (i.e. Loggers are enabled by default).
117117
If True, the logger behaves equivalently to a No-op Logger.
118-
minimum_severity: A SeverityNumber indicating the minimum severity level
118+
minimum_severity_level: A SeverityNumber indicating the minimum severity level
119119
for log records to be processed. If not explicitly set, defaults to UNSPECIFIED (0).
120120
If a log record's SeverityNumber is specified and is less than the configured
121-
minimum_severity, the log record is dropped by the Logger.
122-
trace_based: A boolean indication of whether the logger should only
121+
minimum_severity_level, the log record is dropped by the Logger.
122+
trace_based_sampling: A boolean indication of whether the logger should only
123123
process log records associated with sampled traces. If not explicitly set,
124124
defaults to False. If True, log records associated with unsampled traces
125125
are dropped by the Logger.
126126
"""
127127
self.disabled = disabled
128-
self.minimum_severity = minimum_severity
129-
self.trace_based = trace_based
128+
self.minimum_severity_level = minimum_severity_level
129+
self.trace_based_sampling = trace_based_sampling
130130

131131
def __repr__(self):
132132
return (
133133
f"LoggerConfig(disabled={self.disabled}, "
134-
f"minimum_severity={self.minimum_severity}, "
135-
f"trace_based={self.trace_based})"
134+
f"minimum_severity_level={self.minimum_severity_level}, "
135+
f"trace_based_sampling={self.trace_based_sampling})"
136136
)
137137

138138

@@ -768,7 +768,7 @@ def __init__(
768768
instrumentation_scope: InstrumentationScope,
769769
config: LoggerConfig | None = None,
770770
min_severity_level: SeverityNumber = SeverityNumber.UNSPECIFIED,
771-
trace_based: bool = False,
771+
trace_based_sampling: bool = False,
772772
):
773773
if config is not None:
774774
self._config = config
@@ -785,7 +785,7 @@ def __init__(
785785
self._multi_log_record_processor = multi_log_record_processor
786786
self._instrumentation_scope = instrumentation_scope
787787
self._min_severity_level = min_severity_level
788-
self._trace_based = trace_based
788+
self._trace_based_sampling = trace_based_sampling
789789

790790
@property
791791
def resource(self):
@@ -869,11 +869,11 @@ def emit(
869869
if self._config.disabled:
870870
return
871871

872-
if is_less_than_min_severity(record, self._config.minimum_severity):
872+
if is_less_than_min_severity(record, self._config.minimum_severity_level):
873873
return
874874

875875
if should_drop_logs_for_unsampled_traces(
876-
record, self._config.trace_based
876+
record, self._config.trace_based_sampling
877877
):
878878
return
879879

@@ -891,7 +891,7 @@ def __init__(
891891
| ConcurrentMultiLogRecordProcessor
892892
| None = None,
893893
min_severity_level: SeverityNumber = SeverityNumber.UNSPECIFIED,
894-
trace_based: bool = False,
894+
trace_based_sampling: bool = False,
895895
logger_configurator: LoggerConfigurator | None = None,
896896
):
897897
if resource is None:
@@ -909,7 +909,7 @@ def __init__(
909909
self._logger_cache = {}
910910
self._logger_cache_lock = Lock()
911911
self._min_severity_level = min_severity_level
912-
self._trace_based = trace_based
912+
self._trace_based_sampling = trace_based_sampling
913913

914914
if logger_configurator is not None:
915915
self._logger_configurator = logger_configurator
@@ -920,8 +920,8 @@ def default_configurator(
920920
) -> LoggerConfig:
921921
return LoggerConfig(
922922
disabled=self._disabled,
923-
minimum_severity=self._min_severity_level,
924-
trace_based=self._trace_based,
923+
minimum_severity_level=self._min_severity_level,
924+
trace_based_sampling=self._trace_based_sampling,
925925
)
926926

927927
self._logger_configurator = default_configurator
@@ -947,8 +947,8 @@ def _get_logger_no_cache(
947947
if config is None:
948948
config = LoggerConfig(
949949
disabled=self._disabled,
950-
minimum_severity=self._min_severity_level,
951-
trace_based=self._trace_based,
950+
minimum_severity_level=self._min_severity_level,
951+
trace_based_sampling=self._trace_based_sampling,
952952
)
953953
return Logger(
954954
self._resource,
@@ -1013,8 +1013,8 @@ def set_logger_configurator(
10131013
if new_config is None:
10141014
new_config = LoggerConfig(
10151015
disabled=self._disabled,
1016-
minimum_severity=self._min_severity_level,
1017-
trace_based=self._trace_based,
1016+
minimum_severity_level=self._min_severity_level,
1017+
trace_based_sampling=self._trace_based_sampling,
10181018
)
10191019
logger.update_config(new_config)
10201020

@@ -1124,24 +1124,24 @@ def is_less_than_min_severity(
11241124

11251125

11261126
def should_drop_logs_for_unsampled_traces(
1127-
record: LogRecord, trace_based_flag: bool
1127+
record: LogRecord, trace_based_sampling_flag: bool
11281128
) -> bool:
11291129
"""Determines whether the logger should drop log records associated with unsampled traces.
11301130
1131-
If `trace_based` is `true`, log records associated with unsampled traces are dropped by the `Logger`.
1131+
If `trace_based_sampling` is `true`, log records associated with unsampled traces are dropped by the `Logger`.
11321132
A log record is considered associated with an unsampled trace if it has a valid `SpanId` and its
11331133
`TraceFlags` indicate that the trace is unsampled. A log record that isn't associated with a trace
11341134
context is not affected by this parameter and therefore bypasses trace-based filtering.
11351135
11361136
Args:
11371137
record: The log record to be processed.
1138-
trace_based_flag: A boolean flag indicating whether trace-based filtering is enabled. If not explicitly set,
1139-
the `trace_based` parameter is set to `false`
1138+
trace_based_sampling_flag: A boolean flag indicating whether trace-based filtering is enabled. If not explicitly set,
1139+
the `trace_based_sampling` parameter is set to `false`
11401140
11411141
Returns:
11421142
True if the log record should be dropped due to being associated with an unsampled trace.
11431143
"""
1144-
if trace_based_flag:
1144+
if trace_based_sampling_flag:
11451145
if record.context is not None:
11461146
span = get_current_span(record.context)
11471147
span_context = span.get_span_context()

opentelemetry-sdk/tests/logs/test_logs.py

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def test_get_logger_with_sdk_disabled(self):
8686
@patch.object(Resource, "create")
8787
def test_logger_provider_init(self, resource_patch):
8888
logger_provider = LoggerProvider(
89-
min_severity_level=SeverityNumber.DEBUG4, trace_based=True
89+
min_severity_level=SeverityNumber.DEBUG4, trace_based_sampling=True
9090
)
9191
resource_patch.assert_called_once()
9292
self.assertIsNotNone(logger_provider._resource)
@@ -99,7 +99,7 @@ def test_logger_provider_init(self, resource_patch):
9999
self.assertEqual(
100100
logger_provider._min_severity_level, SeverityNumber.DEBUG4
101101
)
102-
self.assertTrue(logger_provider._trace_based)
102+
self.assertTrue(logger_provider._trace_based_sampling)
103103
self.assertIsNotNone(logger_provider._at_exit_handler)
104104

105105

@@ -183,7 +183,7 @@ def test_can_emit_with_keywords_arguments(self):
183183

184184
def test_emit_logrecord_with_min_severity_filtering(self):
185185
"""Test that logs below minimum severity are filtered out"""
186-
config = LoggerConfig(minimum_severity=SeverityNumber.DEBUG4)
186+
config = LoggerConfig(minimum_severity_level=SeverityNumber.DEBUG4)
187187
logger, log_record_processor_mock = self._get_logger(config)
188188

189189
log_record_info = LogRecord(
@@ -226,9 +226,9 @@ def test_emit_logrecord_with_min_severity_unspecified(self):
226226
logger.emit(log_record)
227227
log_record_processor_mock.on_emit.assert_called_once()
228228

229-
def test_emit_logrecord_with_trace_based_filtering(self):
229+
def test_emit_logrecord_with_trace_based_sampling_filtering(self):
230230
"""Test that logs are filtered based on trace sampling state"""
231-
config = LoggerConfig(trace_based=True)
231+
config = LoggerConfig(trace_based_sampling=True)
232232
logger, log_record_processor_mock = self._get_logger(config)
233233

234234
mock_span_context = Mock()
@@ -294,7 +294,7 @@ def test_emit_logrecord_trace_filtering_disabled(self):
294294

295295
def test_emit_logrecord_trace_filtering_edge_cases(self):
296296
"""Test edge cases for trace-based filtering"""
297-
config = LoggerConfig(trace_based=True)
297+
config = LoggerConfig(trace_based_sampling=True)
298298
logger, log_record_processor_mock = self._get_logger(config)
299299

300300
mock_span_context = Mock()
@@ -345,10 +345,10 @@ def test_emit_logrecord_trace_filtering_edge_cases(self):
345345
logger.emit(log_record)
346346
log_record_processor_mock.on_emit.assert_not_called()
347347

348-
def test_emit_both_min_severity_and_trace_based_filtering(self):
348+
def test_emit_both_min_severity_and_trace_based_sampling_filtering(self):
349349
"""Test that both min severity and trace-based filtering work together"""
350350
config = LoggerConfig(
351-
minimum_severity=SeverityNumber.WARN, trace_based=True
351+
minimum_severity_level=SeverityNumber.WARN, trace_based_sampling=True
352352
)
353353
logger, log_record_processor_mock = self._get_logger(config)
354354

@@ -408,24 +408,24 @@ def test_logger_config_property(self):
408408
"""Test that logger config property works correctly"""
409409
config = LoggerConfig(
410410
disabled=True,
411-
minimum_severity=SeverityNumber.WARN,
412-
trace_based=True,
411+
minimum_severity_level=SeverityNumber.WARN,
412+
trace_based_sampling=True,
413413
)
414414
logger, _ = self._get_logger(config)
415415

416416
self.assertEqual(logger.config.disabled, True)
417-
self.assertEqual(logger.config.minimum_severity, SeverityNumber.WARN)
418-
self.assertEqual(logger.config.trace_based, True)
417+
self.assertEqual(logger.config.minimum_severity_level, SeverityNumber.WARN)
418+
self.assertEqual(logger.config.trace_based_sampling, True)
419419

420420
def test_logger_configurator_behavior(self):
421421
"""Test LoggerConfigurator functionality including custom configurators and dynamic updates"""
422422

423423
logger_configs = {
424424
"test.database": LoggerConfig(
425-
minimum_severity=SeverityNumber.ERROR
425+
minimum_severity_level=SeverityNumber.ERROR
426426
),
427427
"test.auth": LoggerConfig(disabled=True),
428-
"test.performance": LoggerConfig(trace_based=True),
428+
"test.performance": LoggerConfig(trace_based_sampling=True),
429429
}
430430

431431
configurator = create_logger_configurator_by_name(logger_configs)
@@ -434,59 +434,59 @@ def test_logger_configurator_behavior(self):
434434

435435
db_logger = provider.get_logger("test.database")
436436
self.assertEqual(
437-
db_logger.config.minimum_severity, SeverityNumber.ERROR
437+
db_logger.config.minimum_severity_level, SeverityNumber.ERROR
438438
)
439439
self.assertFalse(db_logger.config.disabled)
440-
self.assertFalse(db_logger.config.trace_based)
440+
self.assertFalse(db_logger.config.trace_based_sampling)
441441

442442
auth_logger = provider.get_logger("test.auth")
443443
self.assertTrue(auth_logger.config.disabled)
444444

445445
perf_logger = provider.get_logger("test.performance")
446-
self.assertTrue(perf_logger.config.trace_based)
446+
self.assertTrue(perf_logger.config.trace_based_sampling)
447447

448448
other_logger = provider.get_logger("test.other")
449449
self.assertEqual(
450-
other_logger.config.minimum_severity, SeverityNumber.UNSPECIFIED
450+
other_logger.config.minimum_severity_level, SeverityNumber.UNSPECIFIED
451451
)
452452
self.assertFalse(other_logger.config.disabled)
453-
self.assertFalse(other_logger.config.trace_based)
453+
self.assertFalse(other_logger.config.trace_based_sampling)
454454

455455
def test_logger_configurator_pattern_matching(self):
456456
"""Test LoggerConfigurator with pattern matching"""
457457
patterns = [
458458
(
459459
"test.database.*",
460-
LoggerConfig(minimum_severity=SeverityNumber.ERROR),
460+
LoggerConfig(minimum_severity_level=SeverityNumber.ERROR),
461461
),
462462
("test.*.debug", LoggerConfig(disabled=True)),
463-
("test.*", LoggerConfig(trace_based=True)),
464-
("*", LoggerConfig(minimum_severity=SeverityNumber.WARN)),
463+
("test.*", LoggerConfig(trace_based_sampling=True)),
464+
("*", LoggerConfig(minimum_severity_level=SeverityNumber.WARN)),
465465
]
466466

467467
configurator = create_logger_configurator_with_pattern(patterns)
468468
provider = LoggerProvider(logger_configurator=configurator)
469469

470470
db_logger = provider.get_logger("test.database.connection")
471471
self.assertEqual(
472-
db_logger.config.minimum_severity, SeverityNumber.ERROR
472+
db_logger.config.minimum_severity_level, SeverityNumber.ERROR
473473
)
474474

475475
debug_logger = provider.get_logger("test.module.debug")
476476
self.assertTrue(debug_logger.config.disabled)
477477

478478
general_logger = provider.get_logger("test.module")
479-
self.assertTrue(general_logger.config.trace_based)
479+
self.assertTrue(general_logger.config.trace_based_sampling)
480480

481481
other_logger = provider.get_logger("other.module")
482482
self.assertEqual(
483-
other_logger.config.minimum_severity, SeverityNumber.WARN
483+
other_logger.config.minimum_severity_level, SeverityNumber.WARN
484484
)
485485

486486
def test_logger_configurator_dynamic_updates(self):
487487
"""Test that LoggerConfigurator updates apply to existing loggers"""
488488
initial_configs = {
489-
"test.module": LoggerConfig(minimum_severity=SeverityNumber.INFO)
489+
"test.module": LoggerConfig(minimum_severity_level=SeverityNumber.INFO)
490490
}
491491

492492
initial_configurator = create_logger_configurator_by_name(
@@ -496,12 +496,12 @@ def test_logger_configurator_dynamic_updates(self):
496496
provider = LoggerProvider(logger_configurator=initial_configurator)
497497

498498
logger = provider.get_logger("test.module")
499-
self.assertEqual(logger.config.minimum_severity, SeverityNumber.INFO)
499+
self.assertEqual(logger.config.minimum_severity_level, SeverityNumber.INFO)
500500
self.assertFalse(logger.config.disabled)
501501

502502
updated_configs = {
503503
"test.module": LoggerConfig(
504-
minimum_severity=SeverityNumber.ERROR, disabled=True
504+
minimum_severity_level=SeverityNumber.ERROR, disabled=True
505505
)
506506
}
507507
updated_configurator = create_logger_configurator_by_name(
@@ -510,12 +510,12 @@ def test_logger_configurator_dynamic_updates(self):
510510

511511
provider.set_logger_configurator(updated_configurator)
512512

513-
self.assertEqual(logger.config.minimum_severity, SeverityNumber.ERROR)
513+
self.assertEqual(logger.config.minimum_severity_level, SeverityNumber.ERROR)
514514
self.assertTrue(logger.config.disabled)
515515

516516
new_logger = provider.get_logger("test.module")
517517
self.assertEqual(
518-
new_logger.config.minimum_severity, SeverityNumber.ERROR
518+
new_logger.config.minimum_severity_level, SeverityNumber.ERROR
519519
)
520520
self.assertTrue(new_logger.config.disabled)
521521

@@ -528,23 +528,23 @@ def none_configurator(scope):
528528
provider = LoggerProvider(
529529
logger_configurator=none_configurator,
530530
min_severity_level=SeverityNumber.WARN,
531-
trace_based=True,
531+
trace_based_sampling=True,
532532
)
533533

534534
logger = provider.get_logger("test.module")
535535

536-
self.assertEqual(logger.config.minimum_severity, SeverityNumber.WARN)
537-
self.assertTrue(logger.config.trace_based)
536+
self.assertEqual(logger.config.minimum_severity_level, SeverityNumber.WARN)
537+
self.assertTrue(logger.config.trace_based_sampling)
538538
self.assertFalse(logger.config.disabled)
539539

540540
@staticmethod
541541
def _selective_configurator(scope):
542542
if scope.name == "disabled.logger":
543543
return LoggerConfig(disabled=True)
544544
if scope.name == "error.logger":
545-
return LoggerConfig(minimum_severity=SeverityNumber.ERROR)
545+
return LoggerConfig(minimum_severity_level=SeverityNumber.ERROR)
546546
if scope.name == "trace.logger":
547-
return LoggerConfig(trace_based=True)
547+
return LoggerConfig(trace_based_sampling=True)
548548
return LoggerConfig()
549549

550550
def test_logger_configurator_with_filtering(self):

0 commit comments

Comments
 (0)