Skip to content

Commit 62112ca

Browse files
authored
Add event_name as a top level field in the LogRecord. (#4652)
* Initial commit adding event name to the LogRecord * Update changelog with PR number * Remove event_name from deprecated initializer overloads.. * remove_pylint * Add event_name back in some places
1 parent cb4e3ba commit 62112ca

File tree

5 files changed

+13
-2
lines changed

5 files changed

+13
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## Unreleased
99

1010
- Update OTLP proto to v1.7 [#4645](https://github.com/open-telemetry/opentelemetry-python/pull/4645).
11+
- Add `event_name` as a top level field in the `LogRecord`. Events are now simply logs with the
12+
`event_name` field set, the logs SDK should be used to emit events ([#4652](https://github.com/open-telemetry/opentelemetry-python/pull/4652)).
1113
- Update OTLP gRPC/HTTP exporters: the export timeout is now inclusive of all retries and backoffs.
1214
A +/-20% jitter was added to all backoffs. A pointless 32 second sleep that occurred after all retries
1315
had completed/failed was removed.

exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def _encode_log(log_data: LogData) -> PB2LogRecord:
6262
),
6363
dropped_attributes_count=log_data.log_record.dropped_attributes,
6464
severity_number=log_data.log_record.severity_number.value,
65+
event_name=log_data.log_record.event_name,
6566
)
6667

6768

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ def __init__(
6969
severity_number: Optional[SeverityNumber] = None,
7070
body: AnyValue = None,
7171
attributes: Optional[_ExtendedAttributes] = None,
72+
event_name: Optional[str] = None,
7273
) -> None: ...
7374

7475
@overload
@@ -99,6 +100,7 @@ def __init__(
99100
severity_number: Optional[SeverityNumber] = None,
100101
body: AnyValue = None,
101102
attributes: Optional[_ExtendedAttributes] = None,
103+
event_name: Optional[str] = None,
102104
) -> None:
103105
self.timestamp = timestamp
104106
if observed_timestamp is None:
@@ -112,6 +114,7 @@ def __init__(
112114
self.severity_number = severity_number
113115
self.body = body
114116
self.attributes = attributes
117+
self.event_name = event_name
115118

116119

117120
class Logger(ABC):

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ def __init__(
206206
resource: Resource | None = None,
207207
attributes: _ExtendedAttributes | None = None,
208208
limits: LogLimits | None = _UnsetLogLimits,
209+
event_name: str | None = None,
209210
): ...
210211

211212
@overload
@@ -224,7 +225,7 @@ def __init__(
224225
limits: LogLimits | None = _UnsetLogLimits,
225226
): ...
226227

227-
def __init__(
228+
def __init__( # pylint:disable=too-many-locals
228229
self,
229230
timestamp: int | None = None,
230231
observed_timestamp: int | None = None,
@@ -238,6 +239,7 @@ def __init__(
238239
resource: Resource | None = None,
239240
attributes: _ExtendedAttributes | None = None,
240241
limits: LogLimits | None = _UnsetLogLimits,
242+
event_name: str | None = None,
241243
):
242244
if trace_id or span_id or trace_flags:
243245
warnings.warn(
@@ -275,6 +277,7 @@ def __init__(
275277
max_value_len=limits.max_attribute_length,
276278
extended_attributes=True,
277279
),
280+
"event_name": event_name,
278281
}
279282
)
280283
self.resource = (
@@ -318,6 +321,7 @@ def to_json(self, indent: int | None = 4) -> str:
318321
),
319322
"trace_flags": self.trace_flags,
320323
"resource": json.loads(self.resource.to_json()),
324+
"event_name": self.event_name if self.event_name else "",
321325
},
322326
indent=indent,
323327
cls=BytesEncoder,

opentelemetry-sdk/tests/logs/test_log_record.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ def test_log_record_to_json(self):
4242
"sequence": [1, 2],
4343
"str": "string",
4444
},
45+
event_name="a.event",
4546
)
4647

4748
self.assertEqual(
4849
log_record.to_json(indent=None),
49-
'{"body": {"key": "logLine", "bytes": "MTIz"}, "severity_number": null, "severity_text": null, "attributes": {"mapping": {"key": "value"}, "none": null, "sequence": [1, 2], "str": "string"}, "dropped_attributes": 0, "timestamp": "1970-01-01T00:00:00.000000Z", "observed_timestamp": "1970-01-01T00:00:00.000000Z", "trace_id": "", "span_id": "", "trace_flags": null, "resource": {"attributes": {"service.name": "foo"}, "schema_url": ""}}',
50+
'{"body": {"key": "logLine", "bytes": "MTIz"}, "severity_number": null, "severity_text": null, "attributes": {"mapping": {"key": "value"}, "none": null, "sequence": [1, 2], "str": "string"}, "dropped_attributes": 0, "timestamp": "1970-01-01T00:00:00.000000Z", "observed_timestamp": "1970-01-01T00:00:00.000000Z", "trace_id": "", "span_id": "", "trace_flags": null, "resource": {"attributes": {"service.name": "foo"}, "schema_url": ""}, "event_name": "a.event"}',
5051
)
5152

5253
def test_log_record_to_json_serializes_severity_number_as_int(self):

0 commit comments

Comments
 (0)