pub struct ClickhouseLoggerPlugin {
sink: BatchSink,
log_format: Option<HashMap<String, Value>>,
include_req_body: bool,
include_resp_body: bool,
}Expand description
Node that batches access-log entries and inserts them into ClickHouse.
Fields§
§sink: BatchSink§log_format: Option<HashMap<String, Value>>§include_req_body: bool§include_resp_body: boolImplementations§
Source§impl ClickhouseLoggerPlugin
impl ClickhouseLoggerPlugin
Sourcepub fn from_config(
config: &HashMap<String, Value>,
resources: &Arc<PluginResources>,
) -> Result<Self, String>
pub fn from_config( config: &HashMap<String, Value>, resources: &Arc<PluginResources>, ) -> Result<Self, String>
Builds the plugin from node config.
Accepted keys:
endpoint_addr(string) /endpoint_addrs(array of strings): ClickHouse HTTP URL(s), e.g.http://clickhouse:8123. At least one is required.database(string, required): target database (sent via theX-ClickHouse-Databaseheader).logtable(string, required): target table, used in theINSERT INTO <logtable>statement.user/password(strings, default""): ClickHouse credentials, sent asX-ClickHouse-User/X-ClickHouse-Key.ssl_verify(bool, defaulttrue): verify TLS certificates.timeout(integer seconds, default3): per-flush HTTP deadline.include_req_body/include_resp_body(bool, defaultfalse).log_format(object, optional): custom flat entry.- Batch tuning (see
BatchConfig).
type: clickhouse-logger
config:
endpoint_addr: http://clickhouse:8123
database: default
logtable: gateway_logs
user: default
password: ${CLICKHOUSE_PASSWORD}
timeout: 3Trait Implementations§
Source§impl Plugin for ClickhouseLoggerPlugin
impl Plugin for ClickhouseLoggerPlugin
Source§fn plugin_type(&self) -> &str
fn plugin_type(&self) -> &str
Unique identifier for the plugin type (e.g., “proxy-rewrite”, “upstream”).
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: Context,
_named_inputs: &'life1 HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: Context,
_named_inputs: &'life1 HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Executes the plugin logic against the request/response context. Read more
Auto Trait Implementations§
impl Freeze for ClickhouseLoggerPlugin
impl RefUnwindSafe for ClickhouseLoggerPlugin
impl Send for ClickhouseLoggerPlugin
impl Sync for ClickhouseLoggerPlugin
impl Unpin for ClickhouseLoggerPlugin
impl UnsafeUnpin for ClickhouseLoggerPlugin
impl UnwindSafe for ClickhouseLoggerPlugin
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
§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>
Converts
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>
Converts
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