Skip to content

[Feature]: OTLP Exporter Retry and Persistence #2364

@AaronRM

Description

@AaronRM

Related Problems?

No response

Describe the solution you'd like:

Per the spec for OTLP Exporters, "Transient errors MUST be handled with a retry strategy. This retry strategy MUST implement an exponential back-off with jitter to avoid overwhelming the destination until the network is restored or the destination has recovered."

Similar to the equivalent feature for opentelemetry-dotnet, the Rust OpenTelemetry implementation must support retry of failed requests to be conformant to the OTLP Exporter spec. The retry mechanism should also be able to leverage an optional persistent store for additional resilience to unexpected process restarts. Implementation should follow a similar pattern to the dotnet implementation.

One set of PRs should implement retry logic for the OTLP Exporter per the OpenTelemetry spec.

Another set of PRs should introduce persistent blob abstractions (i.e. similar to OpenTelemetry.PersistentStorage.Abstractions and a file-based implementation (i.e. similar to OpenTelemetry.PersistentStorage.FileSystem). This set of PRs should also include updates to the retry logic to allow opt-in use persistent storage for retry.

References

Considered Alternatives

No response

Additional Context

No response

Metadata

Metadata

Assignees

Labels

A-commonArea:common issues that not related to specific pillarM-exporter-otlpS-blocked-specStatus: Blocked on open or unresolved specenhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions