ExternalDataStore

Struct ExternalDataStore 

Source
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

Source

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.

Source

pub fn entity_limit(&self) -> usize

Returns the maximum number of unique entities that can be tracked by the store at any given time.

Source

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

Source§

fn specify_bounds(&self, builder: &mut MemoryBoundsBuilder<'_>)

Specifies the minimum and firm memory bounds for this component and its subcomponents.
Source§

impl MetadataStore for ExternalDataStore

Source§

fn name(&self) -> &'static str

Returns the name of the store.
Source§

fn process_operation(&mut self, operation: MetadataOperation)

Process a metadata operation.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Track for T

§

fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>

Instruments this type by attaching the given resource group token, returning a Tracked wrapper. Read more
§

fn in_current_resource_group(self) -> Tracked<Self>

Instruments this type by attaching the current resource group, returning a Tracked wrapper. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more