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

Introduce Entities Data Model, Part 1 #256

Conversation

tigrannajaryan
Copy link
Member

This is a proposal of a data model to represent entities. The purpose of the data model is to have a common understanding of what an entity is, what data needs to be recorded, transferred, stored and interpreted by an entity observability system.

This data model sets the foundation for adding entities to OpenTelemetry. The data model is largely borrowed from
the initial proposal that was accepted for entities SIG formation.

This OTEP is step 1 in introducing the entities data model. Follow up OTEPs will add further data model definitions, including the linking of Resource information to entities.

@tigrannajaryan tigrannajaryan requested a review from a team May 7, 2024 17:53
@tigrannajaryan tigrannajaryan force-pushed the feature/tigran/entity-datamodel-step1 branch from 6d05d5d to b997c42 Compare May 7, 2024 17:59
Copy link
Member

@jack-berg jack-berg left a comment

Choose a reason for hiding this comment

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

Couple of comments that can be worked out in future work but this looks great to me. Thanks for putting this together!

text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
This is a proposal of a data model to represent entities. The purpose of the data model
is to have a common understanding of what an entity is, what data needs to be recorded,
transferred, stored and interpreted by an entity observability system.

This data model sets the foundation for adding entities to OpenTelemetry. The data model
is largely borrowed from
[the initial proposal](https://docs.google.com/document/d/1VUdBRInLEhO_0ABAoiLEssB1CQO_IcD5zDnaMEha42w/edit)
that was accepted for entities SIG formation.

This OTEP is step 1 in introducing the entities data model. Follow up OTEPs will add
further data model definitions, including the linking of Resource information
to entities.
@tigrannajaryan tigrannajaryan force-pushed the feature/tigran/entity-datamodel-step1 branch from b997c42 to 9227cfc Compare May 9, 2024 14:42
Copy link
Member

@mx-psi mx-psi left a comment

Choose a reason for hiding this comment

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

LGTM. I haven't been able to join the Entities meeting but this looks like a good start to me and it seems like this way of approaching identity is better than the alternatives

@tigrannajaryan
Copy link
Member Author

@open-telemetry/specs-approvers please review.

text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
Copy link
Member

@pellared pellared left a comment

Choose a reason for hiding this comment

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

I reviewed only ~100 lines so far

text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
text/entities/0256-entities-data-model.md Outdated Show resolved Hide resolved
Copy link

@bidetofevil bidetofevil left a comment

Choose a reason for hiding this comment

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

This new concept is great, and (I think) it provides a much more elegant solution to how we can model frequently-changing, mutable state(s) that have an outsized impact of how mobile applications run in production. The ability to model network connections, OS resource provisioning (e.g. CPU throttling, process priority, etc.), concurrent app execution, OS services and state, etc. as one or more entities in a consistent, semantic convention'd manner will go a long way into standardizing the execution context of mobile apps, something we sorely need.

@tigrannajaryan
Copy link
Member Author

All reviewers, thank you for your comments and improvement suggestions. I think I addressed all questions.

I will keep the PR open for 2 more business days and will merge after that if I see no objections.

@tigrannajaryan
Copy link
Member Author

2 business days since last change. All comments addressed and resolved. We have enough approvals. Merging.

@tigrannajaryan tigrannajaryan merged commit 01c4239 into open-telemetry:main May 28, 2024
2 checks passed
@tigrannajaryan tigrannajaryan deleted the feature/tigran/entity-datamodel-step1 branch May 28, 2024 15:30

```json5
{
"process.pid": 12345,
Copy link

Choose a reason for hiding this comment

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

Hi @tigrannajaryan, I know this is only an example, but I'd like to point out this won't be sufficient for a unique process entity ID on Windows.

On Windows, PIDS can be re-used in less than 1s, so to be unique, the start time could be more precise (nanoseconds), or more attributes are needed

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, just an example and thanks for pointing out. We will work on this most likely within the semconv group when the Entities SIG makes a bit more progress on the basics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.