pub struct DatadogPlugin {
sink: BatchSink,
include_path: bool,
include_method: bool,
}Expand description
Batches request metrics and sends them to a Datadog agent via DogStatsD.
Fields§
§sink: BatchSink§include_path: bool§include_method: boolImplementations§
Source§impl DatadogPlugin
impl DatadogPlugin
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 (APISIX plugin-metadata fields flattened in):
host(string, default127.0.0.1): Datadog agent address.port(integer, default8125): DogStatsD UDP port.namespace(string, defaultfeatherbit): metric name prefix.constant_tags(array of strings, default[]): tags added to every metric.include_path(bool, defaultfalse): add apath:tag.include_method(bool, defaultfalse): add amethod:tag.prefer_name(bool, defaulttrue): accepted for APISIX compatibility but has no effect here (no route/service names in the log entry).- Batch keys — see
BatchConfig.
type: datadog
config:
host: 127.0.0.1
port: 8125
namespace: featherbit
constant_tags: [source:featherbit]
include_method: trueTrait Implementations§
Source§impl Plugin for DatadogPlugin
impl Plugin for DatadogPlugin
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 DatadogPlugin
impl RefUnwindSafe for DatadogPlugin
impl Send for DatadogPlugin
impl Sync for DatadogPlugin
impl Unpin for DatadogPlugin
impl UnsafeUnpin for DatadogPlugin
impl UnwindSafe for DatadogPlugin
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