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

Schema transformation process should be able to preserve original attributes #3510

Open
lmolkova opened this issue May 17, 2023 · 3 comments
Labels
area:miscellaneous For issues that don't match any other area label spec:miscellaneous For issues that don't match any other spec label triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted

Comments

@lmolkova
Copy link
Contributor

lmolkova commented May 17, 2023

During schema transformation, we remove one attribute and create a new one.

Assuming users have built some tooling based on old attributes, such tooling will be broken by applying schema transformation.

If users apply schema transformation explicitly themselves, it's fine, but for collector-distro or within vendor-specific pipelines this behavior would be problematic and breaking. Even if a vendor makes UI changes that hide renames, custom queries could still be broken.

Even when the transformation is enabled explicitly by users, they should have a choice to keep the original attributes to have time to gradually update tooling.

Schema transformation should support a mode when original data is preserved and this mode should be on by default.

@lmolkova lmolkova added spec:miscellaneous For issues that don't match any other spec label area:miscellaneous For issues that don't match any other area label labels May 17, 2023
@dmitryax
Copy link
Member

dmitryax commented Jul 10, 2023

If we keep the old values during the schema transformation, we alleviate the transition for users only when the schema transform processor is introduced. However, once any of the libraries are updated to emit a newer version or the transform processor is updated to emit a different version, the dashboards will no longer function properly anyway.

In my opinion, the schema transformation should only be employed once the backend and dashboards are prepared to consistently handle a specific schema version. Otherwise, the purpose of the transformation becomes unclear and not particularly beneficial. Users can simply upgrade their instrumentation when necessary and avoid using any transformations.

@lmolkova
Copy link
Contributor Author

This issue is related to edge-case handling, the essential question is if renames should be allowed at all in stable conventions - #3513

@austinlparker austinlparker added the triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted label May 14, 2024
@austinlparker
Copy link
Member

One thing in support of this, we've seen many customers have difficulties around migrating from experimental to stable HTTP semantic conventions specifically around this tooling gap. If the schema was able to assist in dual-write of old and new attributes during the transition, they'd be able to more comfortably upgrade without breaking existing alerts, dashboards, etc.

@github-actions github-actions bot added the triage:followup Needs follow up during triage label Sep 19, 2024
@trask trask removed the triage:followup Needs follow up during triage label Sep 24, 2024
@github-actions github-actions bot added the triage:followup Needs follow up during triage label Sep 25, 2024
@trask trask removed the triage:followup Needs follow up during triage label Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:miscellaneous For issues that don't match any other area label spec:miscellaneous For issues that don't match any other spec label triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted
Projects
None yet
Development

No branches or pull requests

5 participants