-- SPDX-FileCopyrightText: 2026 Alexandra de Wit -- -- SPDX-License-Identifier: MIT {- | Route OpenTelemetry export failures into @katip@ through one shared throttle, so a persistently unreachable collector is one visible warning and a periodic heartbeat rather than a per-flush flood. The span exporter, the metric exporter, and the SDK's own diagnostic stream all coalesce through the same sink. None of it reaches the request path: the SDK's batch exporter runs asynchronously, so a failed export never touches a served request. The exporter wrappers in "Ecluse.Runtime.Telemetry" feed the sink through 'observeExportResult'. -} module Ecluse.Runtime.Telemetry.ExportFailure ( ExportFailureSink, exportFailureSink, observeExportResult, installExportErrorHandler, ) where import Ecluse.Runtime.Telemetry.ExportFailure.Internal ( ExportFailureSink, exportFailureSink, installExportErrorHandler, observeExportResult, )