Trait prom_remote_api::types::RemoteStorage
source · pub trait RemoteStorage {
type Err;
type Context;
fn write<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: WriteRequest
) -> Pin<Box<dyn Future<Output = Result<(), Self::Err>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
fn read<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: ReadRequest
) -> Pin<Box<dyn Future<Output = Result<ReadResponse, Self::Err>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Remote storage is Prometheus’s solution for long-term storage.
Third-party storage can be integrated with Prometheus by implement this trait. https://prometheus.io/docs/prometheus/latest/storage/#remote-storage-integrations
Required Associated Types§
Required Methods§
sourcefn write<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: WriteRequest
) -> Pin<Box<dyn Future<Output = Result<(), Self::Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: WriteRequest
) -> Pin<Box<dyn Future<Output = Result<(), Self::Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Write samples to remote storage
sourcefn read<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: ReadRequest
) -> Pin<Box<dyn Future<Output = Result<ReadResponse, Self::Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read<'life0, 'async_trait>(
&'life0 self,
ctx: Self::Context,
req: ReadRequest
) -> Pin<Box<dyn Future<Output = Result<ReadResponse, Self::Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Read samples from remote storage, ReadRequest may contain more than one sub queries.