-
Notifications
You must be signed in to change notification settings - Fork 933
Description
During the spec meeting yesterday we discussed OTEP 4485: Extending attributes to support complex values. During the discussion we talked about which signals may add support for complex attributes. Notably, resource does not and will not support complex attributes. Entity descriptive attributes, but not identifying attributes, already plan to support complex attributes as stated in the Entity Data Model.
This raises a contradiction because entity attributes are all currently transmitted as resource attributes. If an entity descriptive attribute is added with a complex value it cannot be transmitted unmodified as a part of the resource attributes while maintaining the existing definition of resource attribute values.
edit: OTEP 4485 has been updated to propose supporting complex attributes in resource, removing the contradiction if it is accepted and merged.
Below are some ways we may be able to move forward:
Allow complex attributes in resource [OTEP 4485]
Pros:
- Simple to understand
- All entity attributes included in resource
Cons:
- Some may view this as a breaking change
- Duplication of data causing higher transmission costs
Support complex attributes in resource via entity descriptive attributes only
- Require SDK support for complex resource attributes (export pipeline).
- DO NOT allow complex attributes via the existing resource detectors. The only way to add a complex resource attribute is to include it in the descriptive attributes of a detected entity.
pros:
- Avoids the problem of metrics with complex attribute identity while allowing complex descriptive attributes
- Any backends that do not support complex resource attributes can safely drop/stringify them without affecting identity
- Backwards compatible
cons:
- Some duplication of data with entity signal (maybe mitigated by potential configuration options to drop descriptive attributes)
Drop complex descriptive entity attributes, include them in new entity signal only
Not needed if the current OTEP 4485 proposal is accepted.
Pros:
- No breaking change to resource
- Save some bandwidth by dropping some complex, possibly large, attributes from every telemetry export
Cons:
- Some, but not all, entity attributes are missing from resource. It may be unclear to users why.
Same as above but instead of dropping, stringify. Include complex representation in entity signal
Pros:
- No breaking change to resource
- All entity attributes included in resource
Cons:
- Processing cost on both client and server
- Increased transmission cost
- Processing pipelines may modify one signal but not the other resulting in conflicts
Drop all descriptive entity attributes, include them in new entity signal only
Less urgent with OTEP 4485 but may still have value.
Pros:
- No breaking change to resource
- Save bandwidth by dropping all unnecessary attributes from every telemetry export (identity attributes required in order to associate telemetry with entity)
Cons:
- Requires more work on the backend
- Entity signal may arrive out of order with telemetry or not come at all.
edited 4/24 to add Support complex attributes in resource via entity descriptive attributes only
Metadata
Metadata
Assignees
Labels
Type
Projects
Status