pub struct LokiLoggerPlugin {
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 a Grafana Loki push endpoint.
Fields§
§sink: BatchSink§log_format: Option<HashMap<String, Value>>§include_req_body: bool§include_resp_body: boolImplementations§
Source§impl LokiLoggerPlugin
impl LokiLoggerPlugin
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_addrs(array of strings, required): Loki base addresses (e.g.http://loki:3100); one is chosen per flush. A single-stringendpointis also accepted. Empty/absent is an error.endpoint_uri(string, default/loki/api/v1/push): push path appended to each base address.tenant_id(string, defaultfake): sent as theX-Scope-OrgIDheader.log_labels(object of string→string, default{job: featherbit}): Loki stream labels.labelsis accepted as an alias.headers(object of string→string, optional): extra request headers.ssl_verify(bool, defaultfalse): verify TLS certificates.timeout(integer ms, default3000): whole-call deadline per flush.log_format,include_req_body,include_resp_body— see the shared log-entry builder.- Batch keys — see
BatchConfig.
type: loki-logger
config:
endpoint_addrs: [http://loki:3100]
tenant_id: my-org
log_labels:
job: featherbit
env: prodTrait Implementations§
Source§impl Plugin for LokiLoggerPlugin
impl Plugin for LokiLoggerPlugin
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 LokiLoggerPlugin
impl RefUnwindSafe for LokiLoggerPlugin
impl Send for LokiLoggerPlugin
impl Sync for LokiLoggerPlugin
impl Unpin for LokiLoggerPlugin
impl UnsafeUnpin for LokiLoggerPlugin
impl UnwindSafe for LokiLoggerPlugin
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