pub struct HistogramDataPoint {
pub attributes: Vec<KeyValue>,
pub start_time_unix_nano: u64,
pub time_unix_nano: u64,
pub count: u64,
pub sum: Option<f64>,
pub bucket_counts: Vec<u64>,
pub explicit_bounds: Vec<f64>,
pub exemplars: Vec<Exemplar>,
pub flags: u32,
pub min: Option<f64>,
pub max: Option<f64>,
}
gen-tonic-messages
and metrics
only.Expand description
HistogramDataPoint is a single data point in a timeseries that describes the time-varying values of a Histogram. A Histogram contains summary statistics for a population of values, it may optionally contain the distribution of those values across a set of buckets.
If the histogram contains the distribution of values, then both “explicit_bounds” and “bucket counts” fields must be defined. If the histogram does not contain the distribution of values, then both “explicit_bounds” and “bucket_counts” must be omitted and only “count” and “sum” are known.
Fields§
§attributes: Vec<KeyValue>
The set of key/value pairs that uniquely identify the timeseries from where this point belongs. The list may be empty (may contain 0 elements). Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key).
start_time_unix_nano: u64
StartTimeUnixNano is optional but strongly encouraged, see the the detailed comments above Metric.
Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
time_unix_nano: u64
TimeUnixNano is required, see the detailed comments above Metric.
Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
count: u64
count is the number of values in the population. Must be non-negative. This value must be equal to the sum of the “count” fields in buckets if a histogram is provided.
sum: Option<f64>
sum of the values in the population. If count is zero then this field must be zero.
Note: Sum should only be filled out when measuring non-negative discrete events, and is assumed to be monotonic over the values of these events. Negative events can be recorded, but sum should not be filled out when doing so. This is specifically to enforce compatibility w/ OpenMetrics, see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#histogram
bucket_counts: Vec<u64>
bucket_counts is an optional field contains the count values of histogram for each bucket.
The sum of the bucket_counts must equal the value in the count field.
The number of elements in bucket_counts array must be by one greater than the number of elements in explicit_bounds array.
explicit_bounds: Vec<f64>
explicit_bounds specifies buckets with explicitly defined bounds for values.
The boundaries for bucket at index i are:
(-infinity, explicit_bounds[i]] for i == 0 (explicit_bounds[i-1], explicit_bounds[i]] for 0 < i < size(explicit_bounds) (explicit_bounds[i-1], +infinity) for i == size(explicit_bounds)
The values in the explicit_bounds array must be strictly increasing.
Histogram buckets are inclusive of their upper boundary, except the last bucket where the boundary is at infinity. This format is intentionally compatible with the OpenMetrics histogram definition.
exemplars: Vec<Exemplar>
(Optional) List of exemplars collected from measurements that were used to form the data point
flags: u32
Flags that apply to this specific data point. See DataPointFlags for the available flags and their meaning.
min: Option<f64>
min is the minimum value over (start_time, end_time].
max: Option<f64>
max is the maximum value over (start_time, end_time].
Implementations§
Trait Implementations§
Source§impl Clone for HistogramDataPoint
impl Clone for HistogramDataPoint
Source§fn clone(&self) -> HistogramDataPoint
fn clone(&self) -> HistogramDataPoint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for HistogramDataPoint
impl Debug for HistogramDataPoint
Source§impl Default for HistogramDataPoint
impl Default for HistogramDataPoint
Source§impl<'de> Deserialize<'de> for HistogramDataPointwhere
HistogramDataPoint: Default,
impl<'de> Deserialize<'de> for HistogramDataPointwhere
HistogramDataPoint: Default,
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>,
Source§impl Message for HistogramDataPoint
impl Message for HistogramDataPoint
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl PartialEq for HistogramDataPoint
impl PartialEq for HistogramDataPoint
Source§impl Serialize for HistogramDataPoint
impl Serialize for HistogramDataPoint
impl StructuralPartialEq for HistogramDataPoint
Auto Trait Implementations§
impl Freeze for HistogramDataPoint
impl RefUnwindSafe for HistogramDataPoint
impl Send for HistogramDataPoint
impl Sync for HistogramDataPoint
impl Unpin for HistogramDataPoint
impl UnwindSafe for HistogramDataPoint
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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::Request