Skip to content
This repository has been archived by the owner on Dec 6, 2024. It is now read-only.

Initial Entity and Resource proposal. #264

Merged
merged 52 commits into from
Sep 26, 2024
Merged
Changes from 1 commit
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
1eba75b
Initial Entity and Resource proposal.
jsuereth Aug 13, 2024
fbf4b09
Rename OTEP to match PR reservation number.
jsuereth Aug 13, 2024
245b7aa
Spellcheck.
jsuereth Aug 13, 2024
72a67ad
More spellcheck.
jsuereth Aug 13, 2024
e3a3de0
Remove accidental readdition of template file.
jsuereth Aug 13, 2024
64c6b15
Some lint fixes.
jsuereth Aug 13, 2024
2057fa4
More lint fixes.
jsuereth Aug 13, 2024
7dd3c5d
Fix more lint.
jsuereth Aug 13, 2024
76df4d0
Fix spellcheck issue.
jsuereth Aug 14, 2024
38c237f
Outline prometheus path forward.
jsuereth Aug 14, 2024
78e3b41
Fix spelling.
jsuereth Aug 14, 2024
0ddcf23
Update capitalization of resource.
jsuereth Aug 14, 2024
090b817
Add link to prometheus compatibility doc.
jsuereth Aug 14, 2024
3eb9339
Update text/entities/0264-resource-and-entities.md
jsuereth Aug 14, 2024
1fec84c
Updates to address some comments.
jsuereth Aug 20, 2024
5cbc0d5
Add use case to check rendering on github.
jsuereth Aug 22, 2024
d4f2965
Update text/entities/0264-resource-and-entities.md
jsuereth Aug 22, 2024
1faf62f
Fix from review.
jsuereth Aug 22, 2024
7fb267f
Add link to previous proposal
jsuereth Aug 22, 2024
b6c7ef9
Add more examples.
jsuereth Aug 26, 2024
d40f1e0
Add last use case.
jsuereth Aug 26, 2024
f679af2
Fix mermaid diagram syntax.
jsuereth Aug 26, 2024
22ac1fa
Update merge algorithm based on feedback.
jsuereth Aug 27, 2024
1555b42
Fix descriptive attribute merge description.
jsuereth Aug 28, 2024
b567974
Add a survey of existing resource attributes detected and how they ar…
jsuereth Aug 28, 2024
af0165d
Add some analysis of bundled entities from detection.
jsuereth Aug 28, 2024
26de765
Add go survey of resource attributes.
jsuereth Aug 28, 2024
dc95ee9
Add litmus test for when to include an entity on a resource.
jsuereth Aug 28, 2024
c1c1eeb
Add one open question from WG.
jsuereth Aug 29, 2024
41c4d6e
Fix typo.
jsuereth Aug 29, 2024
0bc047b
Fix link issue.
jsuereth Aug 29, 2024
ec469b4
Fix lint issues.
jsuereth Aug 29, 2024
7a900c9
Generate toc.
jsuereth Aug 30, 2024
43454e2
Fix algorithm to account for existing schema url.
jsuereth Sep 10, 2024
775bb30
Add clarification on entity detector API.
jsuereth Sep 11, 2024
8d9a12e
Add definition of platform.
jsuereth Sep 11, 2024
061808c
Fix typo and clarify.
jsuereth Sep 11, 2024
a3052af
Fixes from review.
jsuereth Sep 13, 2024
5bc6120
Rename Resource Coordinator to Resource Provider.
jsuereth Sep 13, 2024
f3395fb
Fixes from review.
jsuereth Sep 16, 2024
792124a
Fix typo.
jsuereth Sep 17, 2024
818d666
Add call out about offline usage.
jsuereth Sep 17, 2024
5793f36
Add resource identity section.
jsuereth Sep 17, 2024
a55d61e
Regenerate TOC.
jsuereth Sep 17, 2024
408862a
Fix spelling error.
jsuereth Sep 17, 2024
4010a33
Add some more options for Prometheus compatibility.
jsuereth Sep 17, 2024
0ee5dc8
Fix spelling issue.
jsuereth Sep 17, 2024
7c9e529
Update prometheus proposals based on discussions.
jsuereth Sep 19, 2024
36234ff
Update proposal with result of discussions.
jsuereth Sep 19, 2024
67f9389
Update text/entities/0264-resource-and-entities.md
jsuereth Sep 19, 2024
48b9517
Update text/entities/0264-resource-and-entities.md
jsuereth Sep 20, 2024
caf2f37
Merge branch 'main' into wip/entities-and-resource
jsuereth Sep 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Generate toc.
jsuereth committed Aug 30, 2024
commit 7a900c93c6bb16a7a51dda7fd6e9d1dfd08f32b2
45 changes: 45 additions & 0 deletions text/entities/0264-resource-and-entities.md
Original file line number Diff line number Diff line change
@@ -8,6 +8,51 @@ It is an expansion on the [previous entity proposal](0256-entities-data-model.md

<!-- toc -->

- [Motivation](#motivation)
- [Design](#design)
* [Approach - Resource Improvements](#approach---resource-improvements)
+ [Resource Coordinator](#resource-coordinator)
+ [Entity Detector](#entity-detector)
+ [Entity Merging and Resource](#entity-merging-and-resource)
+ [Environment Variable Detector](#environment-variable-detector)
* [Interactions with OpenTelemetry Collector](#interactions-with-opentelemetry-collector)
- [Datamodel Changes](#datamodel-changes)
* [Resource](#resource)
* [ResourceEntityRef](#resourceentityref)
- [How this proposal solves the problems that motivated it](#how-this-proposal-solves-the-problems-that-motivated-it)
* [Problem 1: Commingling of Entities](#problem-1-commingling-of-entities)
* [Problem 2: Lack of Precise Identity](#problem-2-lack-of-precise-identity)
* [Problem 3: Lack of Mutable Attributes](#problem-3-lack-of-mutable-attributes)
* [Problem 4: Metric Cardinality Problem](#problem-4-metric-cardinality-problem)
- [Entity WG Rubric](#entity-wg-rubric)
* [Resource detectors (soon to be entity detectors) need to be composable / disjoint](#resource-detectors-soon-to-be-entity-detectors-need-to-be-composable--disjoint)
* [New entities added by extension should not break existing code](#new-entities-added-by-extension-should-not-break-existing-code)
* [Navigational attributes need to exist and can be used to identify an entity but could be augmented with UUID or other aspects. - Having ONLY a UUID for entity identification is not good enough](#navigational-attributes-need-to-exist-and-can-be-used-to-identify-an-entity-but-could-be-augmented-with-uuid-or-other-aspects---having-only-a-uuid-for-entity-identification-is-not-good-enough)
* [Collector augmentation / enrichment (resource, e.g.) - Should be extensible and not hard-coded. We need a general algorithm not specific rulesets](#collector-augmentation--enrichment-resource-eg---should-be-extensible-and-not-hard-coded-we-need-a-general-algorithm-not-specific-rulesets)
* [Users are expected to provide / prioritize "detectors" and determine which entity is "producing" or most-important for a signal](#users-are-expected-to-provide--prioritize-detectors-and-determine-which-entity-is-producing-or-most-important-for-a-signal)
* [For an SDK - ALL telemetry should be associated with the same set of entities (resource labels)](#for-an-sdk---all-telemetry-should-be-associated-with-the-same-set-of-entities-resource-labels)
- [Open Questions](#open-questions)
* [How to attach Entity "bundle" information in Resource?](#how-to-attach-entity-bundle-information-in-resource)
* [How to deal with Resource/Entities whose lifecycle does not match the SDK?](#how-to-deal-with-resourceentities-whose-lifecycle-does-not-match-the-sdk)
* [How to deal with Prometheus Compatibility for non-SDK telemetry?](#how-to-deal-with-prometheus-compatibility-for-non-sdk-telemetry)
* [Should entities have a domain?](#should-entities-have-a-domain)
* [Should resources have only one associated entity?](#should-resources-have-only-one-associated-entity)
* [What identity should entities use (LID, UUID / GUID, or other)?](#what-identity-should-entities-use-lid-uuid--guid-or-other)
* [What happens if existing Resource translation in the collector remove resource attributes an Entity relies on?](#what-happens-if-existing-resource-translation-in-the-collector-remove-resource-attributes-an-entity-relies-on)
* [What about advanced entity interaction in the Collector?](#what-about-advanced-entity-interaction-in-the-collector)
- [Trade-offs and mitigations](#trade-offs-and-mitigations)
- [Prior art and alternatives](#prior-art-and-alternatives)
- [Future Posibilities](#future-posibilities)
- [Use Cases](#use-cases)
* [SDK - Multiple Detectors of the same Entity type](#sdk---multiple-detectors-of-the-same-entity-type)
* [SDK and Collector - Simple coordination](#sdk-and-collector---simple-coordination)
* [SDK and Collector - Entity coordination with descriptive attributes](#sdk-and-collector---entity-coordination-with-descriptive-attributes)
* [SDK and Collector - Entity coordination with conflicts](#sdk-and-collector---entity-coordination-with-conflicts)
* [SDK and Collector - Entity coordination across versions](#sdk-and-collector---entity-coordination-across-versions)
- [Collection of Resource detectors and attributes used](#collection-of-resource-detectors-and-attributes-used)
* [Implications](#implications)
* [What could this mean for chosing entities that belong on resource?](#what-could-this-mean-for-chosing-entities-that-belong-on-resource)

<!-- tocstop -->

## Motivation