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

Clarify how classification by attribute value and presence works #2348

Conversation

tigrannajaryan
Copy link
Member

@tigrannajaryan tigrannajaryan commented Feb 15, 2022

This topic was discussed verbally multiple times (particularly when we were
considering whether the "component" attribute should be borrowed from
OpenTracing semantic conventions).

This PR captures previous discussions that are not explicitly written anywhere in the spec.

@tigrannajaryan tigrannajaryan requested review from a team February 15, 2022 18:23
@tigrannajaryan tigrannajaryan changed the title Clarify how classification by presence works Clarify how classification by attribute value and presence works Feb 15, 2022
This topic was discussed verbally multiple times (particularly when we were
considering whether the "component" attribute should be borrowed from
OpenTracing semantic conventions).

This PR captures previous discussions that are not explicitly written anywhere in the spec.
@arminru arminru added area:api Cross language API specification issue area:semantic-conventions Related to semantic conventions labels Feb 16, 2022
for PostgreSQL. If _there was such a need_, for example if we also needed to
record the PostgreSQL version number then instead we would choose to record the
fact that the database is a PostgreSQL by presence of for example attribute
`db.postgres.version` (in which case we no longer need to store "postgresql" in
Copy link

Choose a reason for hiding this comment

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

I think that it's important that a sub-type of something can act as a member of that type. Postgres is a great example- if a user builds a database dashboard that shows the health of all databases in a system, she shouldn't need to sniff out each database individually. A Postgres-specific dashboard can rely on all sorts of Postgres attributes, but that should be in addition to rather than instead of. Similarly Greenplum or TimescaleDB can provide all of the Postgres attributes plus whatever attributes make sense for their specialized use case.

Copy link
Contributor

Choose a reason for hiding this comment

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

A Postgres-specific dashboard can rely on all sorts of Postgres attributes, but that should be in addition to rather than instead of

+1 to this one.

Copy link
Member Author

Choose a reason for hiding this comment

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

@zenmoto you have a good point. I need to think about I can rewrite the recommendations to take this into account.

@carlosalberto
Copy link
Contributor

Thanks for documenting this (much discussed, never written down, as you mentioned) topic :)

Comment on lines +93 to +94
classification by value (it records 2 facts: that the entity is a database and
the fact that the database type is PostgreSQL).
Copy link
Member

@alanwest alanwest Feb 17, 2022

Choose a reason for hiding this comment

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

it records 2 facts: that the entity is a database

I'm interpreting "entity" to mean the thing producing telemetry. If this is what you mean, then I think this statement could lead to confusion because, in practice, telemetry that includes a db.system attribute is not necessarily a database - it might just be a web server interacting with a DB.

My sense is that most of the semantic conventions defined so far have not been successful in classifying the type of entity producing telemetry but rather the conventions classify the context in which telemetry was produced (e.g., "I'm an operation against a DB system" or "I'm a span that was generated by a service running on a VM in AWS").

@tigrannajaryan
Copy link
Member Author

I am converting this to a draft since I don't think it is ready yet, I see gaps that need to be addressed first.

@tigrannajaryan tigrannajaryan marked this pull request as draft February 17, 2022 16:06
@github-actions
Copy link

This PR was marked stale due to lack of activity. It will be closed in 7 days.

@github-actions github-actions bot added the Stale label Feb 25, 2022
@github-actions
Copy link

github-actions bot commented Mar 4, 2022

Closed as inactive. Feel free to reopen if this PR is still being worked on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:api Cross language API specification issue area:semantic-conventions Related to semantic conventions Stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants