pub struct HttpLoggerPlugin {
sink: BatchSink,
log_format: Option<HashMap<String, Value>>,
include_req_body: bool,
include_resp_body: bool,
}Expand description
Batches access-log entries and POSTs them to an HTTP endpoint.
Fields§
§sink: BatchSink§log_format: Option<HashMap<String, Value>>§include_req_body: bool§include_resp_body: boolImplementations§
Source§impl HttpLoggerPlugin
impl HttpLoggerPlugin
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:
uri(string, required): the HTTP endpoint batches are POSTed to. A missing/emptyuriis a config-load error.method(string, defaultPOST): HTTP method for the callout.headers(object of string→string, optional): extra request headers applied to every batch (e.g. custom auth).auth_header(string, optional): convenience for a singleAuthorizationheader value.concat_method(string, defaultjson):jsonsends a JSON array (application/json);new_linesends\n-separated JSON objects (text/plain).ssl_verify(bool, defaultfalse): verify TLS certificates forhttpsendpoints.timeout(integer seconds, default3): whole-call deadline per flush.log_format(object, optional): custom flat entry ofname -> "$var template"; when absent the default structured entry is used.include_req_body/include_resp_body(bool, defaultfalse): add the request/response body to the default entry.- Batch keys (
batch_max_size,inactive_timeout,buffer_duration,max_retry_count,retry_delay,max_pending_entries) — seeBatchConfig.
type: http-logger
config:
uri: http://log-collector:3000/logs
method: POST
headers:
X-Token: secret
concat_method: json
batch_max_size: 1000
inactive_timeout: 5Trait Implementations§
Source§impl Plugin for HttpLoggerPlugin
impl Plugin for HttpLoggerPlugin
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 HttpLoggerPlugin
impl RefUnwindSafe for HttpLoggerPlugin
impl Send for HttpLoggerPlugin
impl Sync for HttpLoggerPlugin
impl Unpin for HttpLoggerPlugin
impl UnsafeUnpin for HttpLoggerPlugin
impl UnwindSafe for HttpLoggerPlugin
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