pub struct Http {
pub timeout: u32,
pub connection_timeout: u32,
pub max_retry_interval: u32,
pub host_header: Option<String>,
pub auth_interval: Option<u64>,
pub outage_grace_period: u64,
pub retry_delay: u64,
pub project_failure_interval: u64,
pub encoding: HttpEncoding,
pub global_metrics: bool,
}
Expand description
Controls authentication with upstream.
Fields§
§timeout: u32
Timeout for upstream requests in seconds.
This timeout covers the time from sending the request until receiving response headers. Neither the connection process and handshakes, nor reading the response body is covered in this timeout.
connection_timeout: u32
Timeout for establishing connections with the upstream in seconds.
This includes SSL handshakes. Relay reuses connections when the upstream supports connection keep-alive. Connections are retained for a maximum 75 seconds, or 15 seconds of inactivity.
max_retry_interval: u32
Maximum interval between failed request retries in seconds.
host_header: Option<String>
The custom HTTP Host header to send to the upstream.
auth_interval: Option<u64>
The interval in seconds at which Relay attempts to reauthenticate with the upstream server.
Re-authentication happens even when Relay is idle. If authentication fails, Relay reverts back into startup mode and tries to establish a connection. During this time, incoming envelopes will be buffered.
Defaults to 600
(10 minutes).
outage_grace_period: u64
The maximum time of experiencing uninterrupted network failures until Relay considers that it has encountered a network outage in seconds.
During a network outage relay will try to reconnect and will buffer all upstream messages until it manages to reconnect.
retry_delay: u64
The time Relay waits before retrying an upstream request, in seconds.
This time is only used before going into a network outage mode.
project_failure_interval: u64
The interval in seconds for continued failed project fetches at which Relay will error.
A successful fetch resets this interval. Relay does nothing during long times without emitting requests.
encoding: HttpEncoding
Content encoding to apply to upstream store requests.
By default, Relay applies gzip
content encoding to compress upstream requests. Compression
can be disabled to reduce CPU consumption, but at the expense of increased network traffic.
This setting applies to all store requests of SDK data, including events, transactions, envelopes and sessions. At the moment, this does not apply to Relay’s internal queries.
Available options are:
identity
: Disables compression.deflate
: Compression using a zlib header with deflate encoding.gzip
(default): Compression using gzip.br
: Compression using the brotli algorithm.
global_metrics: bool
Submit metrics globally through a shared endpoint.
As opposed to regular envelopes which are sent to an endpoint inferred from the project’s DSN, this submits metrics to the global endpoint with Relay authentication.
This option does not have any effect on processing mode.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Http
impl<'de> Deserialize<'de> for Http
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Http
impl RefUnwindSafe for Http
impl Send for Http
impl Sync for Http
impl Unpin for Http
impl UnwindSafe for Http
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more