pub struct ServerConfig {
pub otlp_grpc_addr: String,
pub rest_api_addr: String,
pub rest_api_socket: Option<String>,
pub data_dir: String,
pub wal_dir: String,
pub storage: StorageBackend,
pub query_shards: Vec<String>,
pub wal_standbys: Vec<String>,
pub wal_required_acks: Option<usize>,
pub cluster: Option<ClusterSettings>,
pub object_store: ObjectStoreConfig,
pub comments: CommentsConfig,
}Fields§
§otlp_grpc_addr: String§rest_api_addr: String§rest_api_socket: Option<String>§data_dir: String§wal_dir: String§storage: StorageBackend§query_shards: Vec<String>When non-empty, this process runs as a stateless query tier: reads
are served by a FanoutStore that scatter-gathers across these shard
base URLs (http://shard-0:7701,...) instead of a local engine. Set via
TAEL_QUERY_SHARDS. See docs/tael-server-scaling-ha.md §3.
wal_standbys: Vec<String>Standby base URLs this node ships its WAL to as a leader
(http://standby-1:7701,...). Set via TAEL_WAL_STANDBYS. Only honored
by the tael-backend engine. See §5.1.
wal_required_acks: Option<usize>How many standbys must ack a write before it returns. None = all
(fully synchronous); Some(0) = async best-effort. Set via
TAEL_WAL_REQUIRED_ACKS.
cluster: Option<ClusterSettings>Cluster coordination (chitchat) for automatic leader election + epoch
fencing of WAL replication. Some when TAEL_CLUSTER_LISTEN is set.
See docs/tael-server-scaling-ha.md §5.1.
object_store: ObjectStoreConfigWhere the cold tier and blob store keep their objects. Defaults to local
filesystem (unchanged single-binary behavior); GCS is opt-in and needs
the cloud build feature.
comments: CommentsConfigWhere trace comments are stored. Defaults to the local JSONL file;
Postgres (Cloud SQL) is opt-in and needs the cloud build feature.
Implementations§
Source§impl ServerConfig
impl ServerConfig
Auto Trait Implementations§
impl Freeze for ServerConfig
impl RefUnwindSafe for ServerConfig
impl Send for ServerConfig
impl Sync for ServerConfig
impl Unpin for ServerConfig
impl UnsafeUnpin for ServerConfig
impl UnwindSafe for ServerConfig
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> Fruit for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request