Skip to content

Conversation

loomis-relativity
Copy link
Contributor

Description: Added an unbuffered flag to the configuration to allow users to turn on/off the file buffering.

Link to tracking Issue: #18251

Testing: Add configuration unit tests and ensured that everything passed.

Documentation: Updated the README with the new parameter and added an example.

@runforesight
Copy link

runforesight bot commented Feb 2, 2023

Foresight Summary

    
Major Impacts

build-and-test-windows duration(4 seconds) has decreased 40 minutes 23 seconds compared to main branch avg(40 minutes 27 seconds).
View More Details

⭕  build-and-test-windows workflow has finished in 4 seconds (40 minutes 23 seconds less than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
windows-unittest-matrix -     🔗  N/A See Details
windows-unittest -     🔗  N/A See Details

✅  telemetrygen workflow has finished in 5 minutes 2 seconds (⚠️ 2 minutes 29 seconds more than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
build-dev -     🔗  N/A See Details
publish-latest -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  check-links workflow has finished in 5 minutes 50 seconds (⚠️ 3 minutes 52 seconds more than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
changed files -     🔗  N/A See Details
check-links -     🔗  N/A See Details

✅  changelog workflow has finished in 6 minutes 12 seconds (⚠️ 4 minutes 6 seconds more than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
changelog -     🔗  N/A See Details

✅  prometheus-compliance-tests workflow has finished in 7 minutes 6 seconds and finished at 2nd Feb, 2023.


Job Failed Steps Tests
prometheus-compliance-tests -     🔗  ✅ 21  ❌ 0  ⏭ 0    🔗 See Details

✅  build-and-test workflow has finished in 43 minutes 39 seconds (9 minutes 42 seconds less than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
unittest-matrix (1.18, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
correctness-metrics -     🔗  ✅ 2  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, processor) -     🔗  ✅ 1471  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, extension) -     🔗  ✅ 546  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, processor) -     🔗  ✅ 1471  ❌ 0  ⏭ 0    🔗 See Details
correctness-traces -     🔗  ✅ 17  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, extension) -     🔗  ✅ 546  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-0) -     🔗  ✅ 2577  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-0) -     🔗  ✅ 2577  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, exporter) -     🔗  ✅ 2431  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, exporter) -     🔗  ✅ 2431  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-1) -     🔗  ✅ 1944  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-1) -     🔗  ✅ 1944  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, other) -     🔗  ✅ 4666  ❌ 0  ⏭ 0    🔗 See Details
integration-tests -     🔗  ✅ 55  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, other) -     🔗  ✅ 4666  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details
check-codeowners -     🔗  N/A See Details
checks -     🔗  N/A See Details
check-collector-module-version -     🔗  N/A See Details
lint-matrix (receiver-0) -     🔗  N/A See Details
lint-matrix (receiver-1) -     🔗  N/A See Details
lint-matrix (processor) -     🔗  N/A See Details
lint-matrix (exporter) -     🔗  N/A See Details
lint-matrix (extension) -     🔗  N/A See Details
lint-matrix (internal) -     🔗  N/A See Details
lint-matrix (other) -     🔗  N/A See Details
build-examples -     🔗  N/A See Details
lint -     🔗  N/A See Details
unittest (1.19) -     🔗  N/A See Details
unittest (1.18) -     🔗  N/A See Details
cross-compile (darwin, amd64) -     🔗  N/A See Details
cross-compile (darwin, arm64) -     🔗  N/A See Details
cross-compile (linux, 386) -     🔗  N/A See Details
cross-compile (linux, amd64) -     🔗  N/A See Details
cross-compile (linux, arm) -     🔗  N/A See Details
cross-compile (linux, arm64) -     🔗  N/A See Details
cross-compile (linux, ppc64le) -     🔗  N/A See Details
cross-compile (windows, 386) -     🔗  N/A See Details
cross-compile (windows, amd64) -     🔗  N/A See Details
build-package (deb) -     🔗  N/A See Details
build-package (rpm) -     🔗  N/A See Details
windows-msi -     🔗  N/A See Details
publish-check -     🔗  N/A See Details
publish-dev -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  load-tests workflow has finished in 11 minutes 50 seconds (2 minutes 43 seconds less than main branch avg.) and finished at 2nd Feb, 2023.


Job Failed Steps Tests
loadtest (TestIdleMode) -     🔗  ✅ 1  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceAttributesProcessor) -     🔗  ✅ 3  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetric10kDPS|TestMetricsFromFile) -     🔗  ✅ 6  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceNoBackend10kSPS|TestTrace1kSPSWithAttrs) -     🔗  ✅ 8  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetricResourceProcessor|TestTrace10kSPS) -     🔗  ✅ 12  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceBallast1kSPSWithAttrs|TestTraceBallast1kSPSAddAttrs) -     🔗  ✅ 10  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestBallastMemory|TestLog10kDPS) -     🔗  ✅ 19  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details

🔎 See details on Foresight

*You can configure Foresight comments in your organization settings page.

Copy link
Contributor

@atoulme atoulme left a comment

Choose a reason for hiding this comment

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

LGTM

@loomis-relativity loomis-relativity marked this pull request as ready for review February 2, 2023 18:30
@loomis-relativity loomis-relativity requested review from a team and evan-bradley February 2, 2023 18:30
@djaglowski
Copy link
Member

Before we make a change to the component, I think we need to articulate more clearly why this change is necessary. I don't think it's enough to say that test assumptions were broken. What specifically is the effect of this change and what criteria would someone use to determine if they should use the setting?

@loomis-relativity
Copy link
Contributor Author

Before we make a change to the component, I think we need to articulate more clearly why this change is necessary. I don't think it's enough to say that test assumptions were broken. What specifically is the effect of this change and what criteria would someone use to determine if they should use the setting?

@djaglowski In our case, we're using the file exporter as part of a test workflow. The tests expect that data will be exported quasi-synchronously by the file exporter, as was the previous behavior without the buffering. I would expect that other people using the file exporter for testing processes would also want to turn the buffering off. I can certainly add more documentation to the README to more clearly articulate when to use this parameter, if that helps.

Another solution would be to put a time limit on how long data is buffered. That would be a cleaner solution for this case, but I couldn't find a way to do that. Suggestions welcome for that. (A parameter would still be needed to allow users to adjust it.)

I can also accept that perhaps the testing use case isn't in scope for the file exporter. If it isn't in scope, I'm OK with that. We'll look for alternative testing methods in that case.

@djaglowski
Copy link
Member

djaglowski commented Feb 2, 2023

@loomis-relativity, thanks for explaining in more detail.

Generally speaking, I don't think we can guarantee a particular delivery latency. It is a meaningful metric but any given exporter must have the flexibility to balance this with other priorities such as overall throughput or reliability over a longer period of time. That said, it seems we have overlooked this consideration when adding the buffer. I just want to make sure we're not rushing into a configuration option that is only needed for tests and may need to be maintained indefinitely.

I'd appreciate hearing other perspectives on this before we make a decision. Maybe @MovieStoreGuy or @atoulme have a better idea. Personally, given the options mentioned, I am inclined to favor the flush interval over an entirely separate writer because this seems more broadly useful.

@loomis-relativity
Copy link
Contributor Author

Workaround found with rotation. Change not needed.

@loomis-relativity loomis-relativity deleted the add-buffered-flag branch February 2, 2023 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants