pub struct MetricSchema {
pub metric_name: String,
pub tag_keys: Vec<String>,
pub value_type: DataValueType,
pub description: Option<String>,
}Expand description
Describes the SQL schema of a TSDB metric.
A metric has:
- A mandatory
timestamp_ms BIGINT NOT NULLcolumn. - A mandatory
value <DataValueType> NOT NULLcolumn. - Zero or more
VARCHARtag columns (one per tag key).
The resulting table name is "<metric_name>" (or a sanitised version if the
name contains special characters).
Fields§
§metric_name: StringName of the metric (used as the SQL table name).
tag_keys: Vec<String>Ordered list of tag key names.
value_type: DataValueTypeSQL type for the value column.
description: Option<String>Optional human-readable description (stored as a SQL comment).
Implementations§
Source§impl MetricSchema
impl MetricSchema
Sourcepub fn builder(metric_name: impl Into<String>) -> MetricSchemaBuilder
pub fn builder(metric_name: impl Into<String>) -> MetricSchemaBuilder
Create a MetricSchemaBuilder for metric_name.
Sourcepub fn table_name(&self) -> String
pub fn table_name(&self) -> String
Return a sanitised SQL table name derived from metric_name.
Non-alphanumeric / non-underscore characters are replaced with _.
Return true if this schema has at least one tag column.
Sourcepub fn column_count(&self) -> usize
pub fn column_count(&self) -> usize
Return the total number of columns (2 fixed + tags).
Trait Implementations§
Source§impl Clone for MetricSchema
impl Clone for MetricSchema
Source§fn clone(&self) -> MetricSchema
fn clone(&self) -> MetricSchema
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MetricSchema
impl Debug for MetricSchema
Source§impl<'de> Deserialize<'de> for MetricSchema
impl<'de> Deserialize<'de> for MetricSchema
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for MetricSchema
impl RefUnwindSafe for MetricSchema
impl Send for MetricSchema
impl Sync for MetricSchema
impl Unpin for MetricSchema
impl UnsafeUnpin for MetricSchema
impl UnwindSafe for MetricSchema
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
Mutably borrows from an owned value. Read more
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more