Skip to content

Conversation

@jmichalek132
Copy link
Contributor

@jmichalek132 jmichalek132 commented May 13, 2025

Description

Implementing batching support in RW2, in this sort of naive implementation we sent the full symbolsTable with each separate request, batching including splitting up the symbolsTable should be doable if we push down the logic for into the translator package, however it's not easy to implement batching based on bytes size instead of number of samples, so I wonder if for RW2 we could switch to batching based on number of samples similar to what prometheus does,
WDYT @ArthurSens @dashpole @ywwg ?

Link to tracking issue

Partially implements #33661 (when merging PR please don't close the tracing issue)

Copy link
Contributor

@ywwg ywwg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few initial comments

@jmichalek132 jmichalek132 requested a review from ywwg May 26, 2025 19:38
@ywwg
Copy link
Contributor

ywwg commented May 27, 2025

(waiting on reviewing while this is still draft -- do you need to do more work before it's ready for review?)

@jmichalek132
Copy link
Contributor Author

(waiting on reviewing while this is still draft -- do you need to do more work before it's ready for review?)

As I mentioned in the description

In this sort of naive implementation we sent the full symbolsTable with each separate request, is this approach okay and we can improve it in follow up PRs, or should I try to split the symbolsTable so we actually only send relevant symbols in each request already as part of this PR (much harder to implement).
That's why I marked it as draft.

@ArthurSens
Copy link
Member

so I wonder if for RW2 we could switch to batching based on number of samples similar to what prometheus does,

That will create a lot of confusion for our users, switching from one version of the protocol to another will suddenly increase their network costs because 1 sample != 1 byte.

In this sort of naive implementation we sent the full symbolsTable with each separate request, is this approach okay and we can improve it in follow up PRs

I believe that's ok as a starting point, let's improve over time :)

@jmichalek132 jmichalek132 marked this pull request as ready for review June 1, 2025 11:28
@jmichalek132 jmichalek132 requested a review from a team as a code owner June 1, 2025 11:28
@jmichalek132
Copy link
Contributor Author

Talked with @ywwg and @ArthurSens this PR implements support for batching, each requests however contains the full symbolsTable, this will be handled in a follow up PR.

@jmichalek132
Copy link
Contributor Author

Review please @ArthurSens @dashpole @ywwg

Copy link
Contributor

@ywwg ywwg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems strictly better! thanks

Copy link
Member

@ArthurSens ArthurSens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question 😬

@jmichalek132 jmichalek132 requested a review from ArthurSens June 5, 2025 15:48
@ywwg
Copy link
Contributor

ywwg commented Jun 6, 2025

similar to #40494, this is feat, not a chore

@ArthurSens
Copy link
Member

ArthurSens commented Jun 6, 2025

similar to #40494, this is feat, not a chore

I believe Juraj chose this title because PRs that start with [chore] don't require changelog entries. Remote write v2 is incomplete and unusable, so we probably want to avoid adding changelog entries about RWv2 until it is ready 😬

@ArthurSens ArthurSens added the ready to merge Code review completed; ready to merge by maintainers label Jun 6, 2025
@andrzej-stencel andrzej-stencel merged commit 9d83b68 into open-telemetry:main Jun 9, 2025
177 checks passed
@github-actions github-actions bot added this to the next release milestone Jun 9, 2025
rockdaboot pushed a commit to rockdaboot/opentelemetry-collector-contrib that referenced this pull request Jun 10, 2025
…40051)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Implementing batching support in RW2, in this sort of naive
implementation we sent the full symbolsTable with each separate request,
batching including splitting up the symbolsTable should be doable if we
push down the logic for into the translator package, however it's not
easy to implement batching based on bytes size instead of number of
samples, so I wonder if for RW2 we could switch to batching based on
number of samples similar to what prometheus does,
WDYT @ArthurSens @dashpole @ywwg ?

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Partially implements open-telemetry#33661 (when merging PR please don't close the
tracing issue)

---------

Co-authored-by: Owen Williams <[email protected]>
dd-jasminesun pushed a commit to DataDog/opentelemetry-collector-contrib that referenced this pull request Jun 23, 2025
…40051)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Implementing batching support in RW2, in this sort of naive
implementation we sent the full symbolsTable with each separate request,
batching including splitting up the symbolsTable should be doable if we
push down the logic for into the translator package, however it's not
easy to implement batching based on bytes size instead of number of
samples, so I wonder if for RW2 we could switch to batching based on
number of samples similar to what prometheus does,
WDYT @ArthurSens @dashpole @ywwg ?

<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Partially implements open-telemetry#33661 (when merging PR please don't close the
tracing issue)

---------

Co-authored-by: Owen Williams <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

exporter/prometheusremotewrite ready to merge Code review completed; ready to merge by maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants