profiles: improve attribute encoding in ProfilesDictionary#672
profiles: improve attribute encoding in ProfilesDictionary#672tigrannajaryan merged 5 commits intoopen-telemetry:mainfrom
Conversation
|
ref #659 (comment) |
Moved dictionary indexing to a separate PR. This reverts commit 7b243ab.
|
@open-telemetry/profiling-maintainers as discussed in the SIG meeting, this PR now has the KeyValueAndUnit change and is ready for another review. The indexing change has moved to #688 |
rockdaboot
left a comment
There was a problem hiding this comment.
lgtm, just a few nits
florianl
left a comment
There was a problem hiding this comment.
From a Profiling protocol perspective I appreciate this change. It drops the complexity of needing to handle two tables (attribute_table and attribute_units), while at the same time it also makes benefit of the string table (using key_strindex and unit_strindex).
As the OTel ecosystem uses opentelemetry.proto.common.v1.KeyValue in various signal, we might need to adapt some parts of this ecosystem. But I think, this should not be a blocker for this great step forward!
|
@jsuereth @tigrannajaryan I've updated it to address @open-telemetry/profiling-maintainers comments. Unless you have anything else I think this one is ready to go. |
|
Please resolve the conflicts. |
### Changed - profiles: drop gzip requirement. [#661](#661) - profiles: avoid `optional` keyword usage. [#659](#659) - profiles: make `profile_id` optional. [#665](#665) - profiles: use single `Profile.sample_type` and clarify use of timestamps. [#649](#649) - all: add notes about the attribute values restrictions. [#683](https://github.com/open-telemetry/opentelemetry-proto/pull/683)<br>⚠️ **IMPORTANT**: These restrictions can be dropped in a future minor release. - profiles: clarify usage of the zero value as the first element of tables in `ProfilesDictionary`. [#688](#688), [#698](#698) - profiles: unsigned `time_nanos` and `duration_nanos` in `Profile`. [#692](#692) - profiles: improve attribute encoding in `ProfilesDictionary`. [#672](#672) - profiles: simplify profile stack trace representation. [#708](#708) ### Fixed - examples: fix OTLP JSON Event example body. [#666](#666) - docs: minor specification fixes around `UNAVAILABLE` and `RetryInfo`. [#669](#669) ### Removed - profiles: remove `default_sample_type`. [#679](#679) - profiles: remove `has_*` debug info fields, they are moving to attributes. [#595](#595) - profiles: remove `Location.is_folded`. [#690](#690)
Subsequent to #659 (profiles: avoid 'optional' keyword usage) and in accordance with discussions in the profiling SIG, this PR updates the dictionary message docs to impose a more consistent handling of 'null pointer' semantics in the encoding pattern.