Skip to content

Conversation

@farhan-pasha
Copy link

@farhan-pasha farhan-pasha commented Dec 5, 2025

Description

Adds a new non_retryable_status configuration field to the OTLP HTTP exporter's retry_on_failure section, allowing users to specify HTTP status codes that should NOT trigger internal retries.

  • Problem: By default, the OTLP HTTP exporter retries on 429, 502, 503, and 504 per the OTLP specification. In gateway deployments, continuing to retry when backends return rate limits or temporary failures causes queue buildup and potential data loss.

  • Solution: This change allows treating normally-retryable codes as permanent errors, preventing internal retry loops.

Fixes #14228

Testing

  • Unit tests: Added test cases covering default behavior and custom non-retryable codes.
  • Config validation: Added TestConfigValidate with test cases for valid codes, empty list, and invalid codes (too low/high)
  • All existing tests passes

Documentation

  • README.md: Added configuration option description and example usage in gateway mode
  • testdata/config.yaml: Updated sample configuration with commented example

@farhan-pasha farhan-pasha requested a review from a team as a code owner December 5, 2025 13:00
@farhan-pasha farhan-pasha requested a review from dmitryax December 5, 2025 13:00
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Dec 5, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: farhan-pasha / name: Mohammad Farhan Pasha (13e6247)

@farhan-pasha
Copy link
Author

Hi everyone, just checking in - is there anything needed from my side to help move this PR forward? Happy to make any adjustments. Thanks!
cc: @dmitryax

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Jan 6, 2026
@CmdrSharp
Copy link

Not stale.

@github-actions github-actions bot removed the Stale label Jan 9, 2026
@farhan-pasha farhan-pasha force-pushed the otlphttp-non-retryable-status branch from a89de0f to 13e6247 Compare January 18, 2026 17:13
@farhan-pasha farhan-pasha changed the title [exporter/otlphttp] Add non_retryable_status to skip retries for specific HTTP codes [exporter/otlphttp] Add retryable_statuses to control which HTTP codes trigger retries Jan 18, 2026
@farhan-pasha
Copy link
Author

@open-telemetry/collector-approvers friendly ping for feedback. Please let me know if I am missing something. Thanks

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.

Allow configuring retryable status codes

3 participants