pub struct RemoteAgentEnvironmentProvider { /* private fields */ }Expand description
Environment provider for a remote agent.
This environment provider is designed for a remote agent’s normal deployment environment, which is running alongside the Datadog Agent. The underlying providers communicate directly with the Datadog Agent to receive information such as the hostname, entity tags, workload metadata events, and more.
§Opting out for testing/benchmarking
In order to facilitate testing/benchmarking where running the Datadog Agent isn’t desirable, the provider runs in standalone mode when the configuration is standalone.
This effectively disables origin enrichment (no entity tags) and causes metrics to be tagged with a fixed hostname.
Implementations§
Source§impl RemoteAgentEnvironmentProvider
impl RemoteAgentEnvironmentProvider
Creates a RemoteAgentEnvironmentProvider from the given configuration, along with the Supervisor that
drives the provider’s background work, if it has any.
In connected mode, the host, workload, and autodiscovery providers each open their own connection to the Datadog Agent, and the supervisor drives them. In standalone mode, the provider reports the configured hostname, everything else is a no-op, and no supervisor is returned.
§Errors
If any of the underlying providers can’t be created, or no hostname is configured in standalone mode, an error is returned.
Sourcepub fn client_configuration(&self) -> Option<&RemoteAgentClientConfiguration>
pub fn client_configuration(&self) -> Option<&RemoteAgentClientConfiguration>
Returns the configuration for connecting to the Datadog Agent, or None in standalone mode.
Sourcepub fn wait_for_ready(&self) -> impl Future<Output = ()> + Send + 'static
pub fn wait_for_ready(&self) -> impl Future<Output = ()> + Send + 'static
Returns a future that resolves once the environment provider’s background subsystems are ready.
Specifically, this waits for the workload provider’s metadata aggregator and collectors to become ready, which ensures that origin detection and entity tagging are operational before the caller begins processing data. In standalone mode – where there is no workload provider – the returned future resolves immediately.
Trait Implementations§
Source§impl Clone for RemoteAgentEnvironmentProvider
impl Clone for RemoteAgentEnvironmentProvider
Source§fn clone(&self) -> RemoteAgentEnvironmentProvider
fn clone(&self) -> RemoteAgentEnvironmentProvider
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl EnvironmentProvider for RemoteAgentEnvironmentProvider
impl EnvironmentProvider for RemoteAgentEnvironmentProvider
Source§type Host = BoxedHostProvider
type Host = BoxedHostProvider
Source§type Workload = Option<RemoteAgentWorkloadProvider>
type Workload = Option<RemoteAgentWorkloadProvider>
Source§type AutodiscoveryProvider = Option<BoxedAutodiscoveryProvider>
type AutodiscoveryProvider = Option<BoxedAutodiscoveryProvider>
Source§fn workload(&self) -> &Self::Workload
fn workload(&self) -> &Self::Workload
Source§fn autodiscovery(&self) -> &Self::AutodiscoveryProvider
fn autodiscovery(&self) -> &Self::AutodiscoveryProvider
Auto Trait Implementations§
impl Freeze for RemoteAgentEnvironmentProvider
impl !RefUnwindSafe for RemoteAgentEnvironmentProvider
impl Send for RemoteAgentEnvironmentProvider
impl Sync for RemoteAgentEnvironmentProvider
impl Unpin for RemoteAgentEnvironmentProvider
impl UnsafeUnpin for RemoteAgentEnvironmentProvider
impl !UnwindSafe for RemoteAgentEnvironmentProvider
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Track for T
impl<T> Track for T
Source§fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>
fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>
Tracked wrapper. Read moreSource§fn in_current_resource_group(self) -> Tracked<Self>
fn in_current_resource_group(self) -> Tracked<Self>
Tracked wrapper. Read more