pub struct ExternalDataStore { /* private fields */ }Expand description
A store for External Data entity mappings.
“External Data” is a concept that’s used to aid origin detection of workloads running in Kubernetes environments where introspection isn’t possible or may return incorrect information. Origin detection generally centers around determining the container where a metric originates from, and then enriching the metric with tags that describe that container, as well as the pod the container is running within, and so on. In some cases, the origin of a metric can’t be detected from the outside (such as by using peer credentials over Unix Domain sockets) and can’t be detected by the workload itself (such as when running in nested virtualization environments). In these cases, we need a mechanism to attach metadata to the workload such that it can send the necessary information to allow for the origin of a metric to be correctly detected.
“External Data” supports this by allowing for an external Kubernetes admission controller to attach specific metadata – pod UID and container name – to application pods, which is then read and sent along with metrics. This information is then used during origin detection in order to correlate the container ID of the origin, which is sufficient to allow enriching the metric with container-specific tags.
See [ExternalData] for more information on the External Data format itself.
Implementations§
Source§impl ExternalDataStore
impl ExternalDataStore
Sourcepub fn with_entity_limit(entity_limit: NonZeroUsize) -> Self
pub fn with_entity_limit(entity_limit: NonZeroUsize) -> Self
Creates a new ExternalDataStore with the given entity limit.
The entity limit is the maximum number of unique entities that can be stored. Once the limit is reached, new entities won’t be added to the store.
Sourcepub fn entity_limit(&self) -> usize
pub fn entity_limit(&self) -> usize
Returns the maximum number of unique entities that can be tracked by the store at any given time.
Sourcepub fn resolver(&self) -> ExternalDataStoreResolver
pub fn resolver(&self) -> ExternalDataStoreResolver
Returns a ExternalDataStoreResolver that can be used to concurrently resolve entity IDs from External Data.
Trait Implementations§
Source§impl MemoryBounds for ExternalDataStore
impl MemoryBounds for ExternalDataStore
Source§fn specify_bounds(&self, builder: &mut MemoryBoundsBuilder<'_>)
fn specify_bounds(&self, builder: &mut MemoryBoundsBuilder<'_>)
Source§impl MetadataStore for ExternalDataStore
impl MetadataStore for ExternalDataStore
Source§fn process_operation(&mut self, operation: MetadataOperation)
fn process_operation(&mut self, operation: MetadataOperation)
Auto Trait Implementations§
impl Freeze for ExternalDataStore
impl !RefUnwindSafe for ExternalDataStore
impl Send for ExternalDataStore
impl Sync for ExternalDataStore
impl Unpin for ExternalDataStore
impl !UnwindSafe for ExternalDataStore
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> Pointable for T
impl<T> Pointable for T
§impl<T> Track for T
impl<T> Track for T
§fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>
fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>
Tracked wrapper. Read more§fn in_current_resource_group(self) -> Tracked<Self>
fn in_current_resource_group(self) -> Tracked<Self>
Tracked wrapper. Read more