File tree Expand file tree Collapse file tree 3 files changed +16
-1
lines changed
exporter/opentelemetry-exporter-otlp-proto-common
src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder Expand file tree Collapse file tree 3 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## Version 1.28.1/0.49b1 (2024-11-08)
99
10+ - Fix crash exporting a log record with None body
11+ ([ #4276 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/4276 ) )
1012- Fix metrics export with exemplar and no context and filtering observable instruments
1113 ([ #4251 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/4251 ) )
1214- Fix recursion error with sdk disabled and handler added to root logger
Original file line number Diff line number Diff line change @@ -48,13 +48,14 @@ def _encode_log(log_data: LogData) -> PB2LogRecord:
4848 if log_data .log_record .trace_id == 0
4949 else _encode_trace_id (log_data .log_record .trace_id )
5050 )
51+ body = log_data .log_record .body
5152 return PB2LogRecord (
5253 time_unix_nano = log_data .log_record .timestamp ,
5354 observed_time_unix_nano = log_data .log_record .observed_timestamp ,
5455 span_id = span_id ,
5556 trace_id = trace_id ,
5657 flags = int (log_data .log_record .trace_flags ),
57- body = _encode_value (log_data . log_record . body ),
58+ body = _encode_value (body ) if body is not None else None ,
5859 severity_text = log_data .log_record .severity_text ,
5960 attributes = _encode_attributes (log_data .log_record .attributes ),
6061 dropped_attributes_count = log_data .log_record .dropped_attributes ,
Original file line number Diff line number Diff line change @@ -51,6 +51,18 @@ def test_encode(self):
5151 sdk_logs , expected_encoding = self .get_test_logs ()
5252 self .assertEqual (encode_logs (sdk_logs ), expected_encoding )
5353
54+ def test_encode_no_body (self ):
55+ sdk_logs , expected_encoding = self .get_test_logs ()
56+ for log in sdk_logs :
57+ log .log_record .body = None
58+
59+ for resource_log in expected_encoding .resource_logs :
60+ for scope_log in resource_log .scope_logs :
61+ for log_record in scope_log .log_records :
62+ log_record .ClearField ("body" )
63+
64+ self .assertEqual (encode_logs (sdk_logs ), expected_encoding )
65+
5466 def test_dropped_attributes_count (self ):
5567 sdk_logs = self ._get_test_logs_dropped_attributes ()
5668 encoded_logs = encode_logs (sdk_logs )
You can’t perform that action at this time.
0 commit comments