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

Exemplar support for Cluster #6135

Draft
wants to merge 24 commits into
base: cluster
Choose a base branch
from

Conversation

possibull
Copy link
Contributor

This adds support for OpenMetrics exemplars implementation into vmcluster.

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Added Exemplars to marshaling/unmarshaling processes

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Added Exemplars to addRowToTimeSeries (scrapework)

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
- didn't work when there was no tags
- didn't work when there was whitespace between metric name and tag start
Added OpenMetrics Header for Exemplars to the client
Improved tests for Exemplars
Added Exemplars to PendingSeries tests and modified sizes to accomdoate exemplars
In scrapework improved to only add exemplars if they exist.

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
…of allocs

Fixed performance issues with row.unmarshal

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Refactored and Optimized tag parsing utilzing tagsPool storage
Bugfixes for white space at the end of exemplar
Added passing test case for missing spaces between # and { for exemplar

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Numerous format fixes - comments
Optimized exemplar label copying in scrapework.addRowToTimeSeres

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Refactored Openmetrics header to only be included if scrapeExemplars flag is set
More comment formatting fixes
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
…uplicate exemplars remote writing.

TODO: need better testing for this

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
…meseries

Various formatting fixes

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
…ved unnecessary Tags member from the struct since we can use tagsPool

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
…emplars on subsequent sends. We only need exemplars once per timeseries.

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Misc comment formatting

Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
Signed-off-by: Ted Possible <ted_possible@cable.comcast.com>
TODO: Store exemplars in IndexDB Monthly Partition
…ol on WriteRequest - This must be a separate pool from labelsPool because protobuf fields can be out of order
@possibull possibull deleted the branch VictoriaMetrics:cluster May 7, 2024 18:33
@possibull possibull closed this May 7, 2024
@possibull possibull deleted the cluster branch May 7, 2024 18:33
@possibull possibull reopened this May 7, 2024
@f41gh7
Copy link
Contributor

f41gh7 commented May 7, 2024

Thanks for PR, but I think, there is no need at porting changes to the cluster branch. We'll doing it on our own later, those changes also ll be ported to the enterprise version by VM team.

@possibull
Copy link
Contributor Author

Thanks for PR, but I think, there is no need at porting changes to the cluster branch. We'll doing it on our own later, those changes also ll be ported to the enterprise version by VM team.

This PR is for support of OpenMetrics Exemplars all the way through the to the storage level. Since cluster and single-node are vastly different in their implementations of vmstorage I have chosen the one that best fits our use case which is the cluster version. There is more to come in this PR with IndexDB and mergeset as well as vmselect and updates to vmstorage API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants