Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

profiles: move attribute_table to message ScopeProfiles #609

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

florianl
Copy link
Contributor

@florianl florianl commented Dec 9, 2024

Move attribute_table from message Profile to message ScopeProfiles. This reduces the amount of duplicate attributes significantly if more than one kind of profile is reported - e.g. on CPU and memory heap profiling data.

ping @open-telemetry/profiling-maintainers

Move `attribute_table` from `message Profile` to `message ScopeProfiles`. This reduces the amount of duplicate attributes significantly if more than one kind of profile is reported - e.g. on CPU and memory heap profiling data.

ping @open-telemetry/profiling-maintainers
@florianl florianl requested review from a team as code owners December 9, 2024 07:18
@@ -144,6 +144,9 @@ message ScopeProfiles {
// https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
// This schema_url applies to all profiles in the "profiles" field.
string schema_url = 3;

// Lookup table for attributes.
repeated opentelemetry.proto.common.v1.KeyValue attribute_table = 4;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The argument can be made to even move attribute_table to ResourceProfiles or ProfilesData instead of ScopeProfiles. If you prefer this, please let me know.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ProfilesData doesn't seem like a good fit as if my understanding is correct it can be populated by intermediate processors that receive data from multiple sources.

ResourceProfiles can also contain data from multiple instrumentation scopes so we'd be introducing implicit merging of key values requirement if we moved it there.

Doesn't the same reasoning (reduce amount of duplicate data) also apply to moving the string table?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, should we merge #606 into this PR, otherwise it can be a little confusing (e.g. doesn't update Profile attributes to be references)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not moving attribute_table for the named reason to ProfilesData or ResourceProfiles sounds good to me. When moving "up" attributes_table to ScopeProfiles I just looked at it from a protocol perspective and not from a potential synchronization issues of processors.

Doesn't the same reasoning (reduce amount of duplicate data) also apply to moving the string table?

yes - the same applies to string_table. I can add it here as well.

Also, should we merge #606 into this PR, otherwise it can be a little confusing (e.g. doesn't update Profile attributes to be references)

To me, these are independent proposals that should be handled and decided on separately. So I didn't merge everything into a big PR. Depending on which PR gets merged first, the other still can be updated.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved string_table with 55bbd73 as well to ScopeProfiles.

@florianl
Copy link
Contributor Author

florianl commented Dec 13, 2024

Putting this PR on hold for the moment.
There is currently work happening across all OTel signals to introduce lookup tables.

@florianl florianl marked this pull request as draft December 13, 2024 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants