pub struct RemoteAgentBootstrap { /* private fields */ }Expand description
Remote agent initialization.
This helper type is used to coordinate the initialization of remote agent state by registering to the Core Agent and acquiring the necessary information to allow initialization of the remote agent itself to proceed.
Implementations§
Source§impl RemoteAgentBootstrap
impl RemoteAgentBootstrap
Sourcepub async fn new(
client_config: &RemoteAgentClientConfiguration,
secure_api_listen_address: &ListenAddress,
) -> Result<Self, GenericError>
pub async fn new( client_config: &RemoteAgentClientConfiguration, secure_api_listen_address: &ListenAddress, ) -> Result<Self, GenericError>
Creates a new RemoteAgentBootstrap from the given configurations.
A remote agent client is created and immediately attempts to register with the Core Agent, advertising
secure_api_listen_address as the address where the Core Agent reaches the status, flare, and telemetry
services. This function does not return until the first registration attempt finishes, whether successful or
not.
Registration runs in a background task that this function spawns outside of any supervision tree. The task
refreshes the registration periodically, and registers again whenever a refresh fails, for the rest of the
process’s lifetime: it doesn’t stop on shutdown, or when the returned RemoteAgentBootstrap is dropped.
§Errors
Returns an error if secure_api_listen_address isn’t a valid gRPC target address, if the client can’t connect
to the Core Agent, or if the first registration attempt fails.
If the first registration attempt fails, the background task keeps running and retries registration periodically, so it may still register with the Core Agent later. Treat this error as fatal rather than calling this function again: each call starts another background task, and each task registers its own session.
Sourcepub fn create_dataspace_anchor(&self) -> DataspaceAnchorWorker
pub fn create_dataspace_anchor(&self) -> DataspaceAnchorWorker
Creates a worker that captures the dataspace from the supervisor context and makes it available to the diagnostic artifact collection service.
This worker must be added to the supervision tree. When it initializes, it runs inside a supervisor process
where the dataspace task-local is set, and fills the shared OnceLock so that get_flare_files can
collect diagnostic artifacts at request time. Without this, the gRPC handler tasks spawned by tonic would not
have access to the dataspace since tonic’s tokio::spawn does not propagate task-locals.
Sourcepub fn create_event_reporter(&self) -> RemoteAgentEventReporter
pub fn create_event_reporter(&self) -> RemoteAgentEventReporter
Creates a worker that reports diagnostic events to the Core Agent as remote agent events.
Sourcepub fn create_services_worker(
&self,
status_sections: Vec<Arc<dyn StatusSectionProvider>>,
telemetry_rules: Vec<RemapperRule>,
) -> RemoteAgentServicesWorker
pub fn create_services_worker( &self, status_sections: Vec<Arc<dyn StatusSectionProvider>>, telemetry_rules: Vec<RemapperRule>, ) -> RemoteAgentServicesWorker
Creates a worker that serves the status, flare, and telemetry services on the privileged API endpoint.
The status service always reports the built-in main section fields (version, Git commit, architecture, start
time, and the Agent version this build was compiled against), followed by the fields written by each of the
given status_sections, in order.
The telemetry service reports the internal metrics that match the given telemetry_rules, renamed to the names
the Datadog Agent expects. Metrics that match no rule are not reported, so if telemetry_rules is empty, the
service reports no metrics at all.
Sourcepub fn create_config_stream(&self) -> Receiver<ConfigUpdate>
pub fn create_config_stream(&self) -> Receiver<ConfigUpdate>
Creates a config stream that receives configuration events from the Core Agent.
The stream is fed by a background task that this method spawns outside of any supervision tree. The task reconnects whenever the stream from the Core Agent ends, and doesn’t stop on shutdown. It only stops when it tries to deliver an update after the returned receiver is dropped.
Auto Trait Implementations§
impl !Freeze for RemoteAgentBootstrap
impl !RefUnwindSafe for RemoteAgentBootstrap
impl Send for RemoteAgentBootstrap
impl Sync for RemoteAgentBootstrap
impl Unpin for RemoteAgentBootstrap
impl UnsafeUnpin for RemoteAgentBootstrap
impl !UnwindSafe for RemoteAgentBootstrap
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> 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