-
Notifications
You must be signed in to change notification settings - Fork 174
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
Fields definitions for attributes registry #1073
Comments
My view and understanding is also this. I think the registry should be agnostic of the usage and should contain all things. Unless it's really just very specific, which is something that is easily seen in the database ones. (have a namespace for a particular db system) |
So do you agree then if we have multiple unspecified fields for the same namespace they should be under the root? As in example above we have discussed that The same goes for |
My position on all of the comments that regardless of the registry, the naming should be precise and descriptive.
These are the naming principles we use when designing APIs for Azure SDKs. Let's discuss it during semconv meeting? [Update] Google SDKs have the same design principles outlined here https://cloud.google.com/apis/design/naming_convention
|
One more thing: if we follow a principle that a namespace contains all applicable to that namespace attributes, we'd end up with attributes from different domains. E.g. We should be able to write a descriptive brief for the namespace. If "The namespace |
@lmolkova +1 to discuss it during semconv meeting. I wanted to do it yesterday but it was canceled due to holidays. I also understand and partially support your ideas here. I am thinking from another POV - I'm coming with some domain knowledge and want to check how rules are defined in semconv. I would go to check
And this is where I believe registry should have its
to be honest almost all of our registry namespaces are defined as |
What I'm saying that
This creates a problem that single namespace has a mixture of unrelated attributes. And attribute name not being descriptive (" In one use case it is a hash, in another it is a domain.").
I hope it's because we are lazy (don't write good descriptions because we never render them) and not because we cannot write better ones. |
In a couple of recent PRs there has been discussions about scope of existing namespace and different attributes belonging to them.
For example in #731 there was a discussion about
user.domain
field (Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name.), which has more narrow scope related to auth/identity.In #903 we discussed the naming
rule
itself and noted that while some fields (rule.id
,rule.name
) are generic enough, other fields (rule.reference
,rule.license
) are used in specific use cases and not applicable for all rules.I want to discuss and define the purpose of the registry here. From all the discussions we are having in the semconv meeting about it I have an understanding, that registry is a standard common dictionary of all possible attributes for a particular namespace.
This means that the registry should include all attributes for that namespace, even if they are not closely related. For example, the registry should include both
rule.fieldX
andrule.fieldY
, wherefieldX
will be used in one use case andfieldY
will be used by another. They all belong to therule
namespace as they are semantically connected to the concept of a rule. In very specific, narrow use cases, we might also add additional sub-namespacing, such asrule.security.malware_score
.Therefore, I see a registry as a superposition of all attributes where each specific use case might select only the needed fields.
We already have examples of this in registry. For instance, we have common DB attributes and then specific attributes for particular databases, but they are all defined under the same parent namespace
db
. The same goes forgcp
andaws
namespaces, where we have completely different entities such asaws.ecs
,aws.dynamodb
etc but they are all merged under the common globalaws
name.The
http
namespace also has multiple fields, and different http metrics are using different subset of http attributes.So, taking this into account, here are the questions:
Is registry a superset of all possible attributes within the same global namespace?
When should we introduce sub-namespace (such as
aws.ecs
), and when should attributes remain at the root of the namespace despite having slightly different meanings?For example, in the
rule
namespace, fields likerule.reference
andrule.license
are not applicable to every rule but are also not specific to any domain. I propose that such fields remain at the top level, as they belong to the common part of the namespace even though they might not be used by every rule.The text was updated successfully, but these errors were encountered: