pub struct GoogleCloudLoggingPlugin {
sink: BatchSink,
log_format: Option<HashMap<String, Value>>,
include_req_body: bool,
include_resp_body: bool,
}Expand description
Ships log entries to Google Cloud Logging in batches.
Fields§
§sink: BatchSink§log_format: Option<HashMap<String, Value>>§include_req_body: bool§include_resp_body: boolImplementations§
Source§impl GoogleCloudLoggingPlugin
impl GoogleCloudLoggingPlugin
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.
Config keys:
| Key | Type | Default | Description |
|---|---|---|---|
auth_config | object | — | Inline service account: client_email, private_key, project_id (all required), optional token_uri, scopes. |
auth_file | string | — | Path to a service-account JSON file (used when auth_config is absent). |
resource | object | {"type":"global"} | MonitoredResource attached to each entry. |
log_id | string | featherbit%2Flogs | Log id; the logName becomes projects/<project_id>/logs/<log_id>. |
ssl_verify | bool | true | Verify Google TLS certificates. |
timeout | int (seconds) | 10 | Per-call HTTP timeout (token fetch and write). |
log_format | object | — | Custom name -> "$var template" entry used as the jsonPayload. |
include_req_body / include_resp_body | bool | false | Include bodies in the default entry. |
Either auth_config (with client_email + private_key + project_id)
or auth_file is required. Batch keys follow
BatchConfig::from_config.
type: google-cloud-logging
config:
auth_config:
client_email: logger@my-project.iam.gserviceaccount.com
private_key: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
project_id: my-project
log_id: featherbit%2FlogsTrait Implementations§
Source§impl Plugin for GoogleCloudLoggingPlugin
impl Plugin for GoogleCloudLoggingPlugin
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 GoogleCloudLoggingPlugin
impl RefUnwindSafe for GoogleCloudLoggingPlugin
impl Send for GoogleCloudLoggingPlugin
impl Sync for GoogleCloudLoggingPlugin
impl Unpin for GoogleCloudLoggingPlugin
impl UnsafeUnpin for GoogleCloudLoggingPlugin
impl UnwindSafe for GoogleCloudLoggingPlugin
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