1#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2pub struct MetricMetadata {
3 #[prost(enumeration = "metric_metadata::MetricType", tag = "1")]
6 pub r#type: i32,
7 #[prost(string, tag = "2")]
8 pub metric_family_name: ::prost::alloc::string::String,
9 #[prost(string, tag = "4")]
10 pub help: ::prost::alloc::string::String,
11 #[prost(string, tag = "5")]
12 pub unit: ::prost::alloc::string::String,
13}
14pub mod metric_metadata {
16 #[derive(
17 serde::Serialize,
18 serde::Deserialize,
19 Clone,
20 Copy,
21 Debug,
22 PartialEq,
23 Eq,
24 Hash,
25 PartialOrd,
26 Ord,
27 ::prost::Enumeration,
28 )]
29 #[repr(i32)]
30 pub enum MetricType {
31 Unknown = 0,
32 Counter = 1,
33 Gauge = 2,
34 Histogram = 3,
35 Gaugehistogram = 4,
36 Summary = 5,
37 Info = 6,
38 Stateset = 7,
39 }
40}
41#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
42pub struct Sample {
43 #[serde(skip_serializing_if = "Option::is_none")]
44 #[prost(double, optional, tag = "1")]
45 pub value: Option<f64>,
46 #[prost(int64, tag = "2")]
47 pub timestamp: i64,
48}
49#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
51pub struct TimeSeries {
52 #[prost(message, repeated, tag = "1")]
53 pub labels: ::prost::alloc::vec::Vec<Label>,
54 #[prost(message, repeated, tag = "2")]
55 pub samples: ::prost::alloc::vec::Vec<Sample>,
56}
57#[derive(serde::Serialize, serde::Deserialize, Hash, Eq, Clone, PartialEq, ::prost::Message)]
58pub struct Label {
59 #[prost(string, tag = "1")]
60 pub name: ::prost::alloc::string::String,
61 #[prost(string, tag = "2")]
62 pub value: ::prost::alloc::string::String,
63}
64#[derive(serde::Serialize, serde::Deserialize, Hash, Clone, PartialEq, ::prost::Message)]
65pub struct Labels {
66 #[prost(message, repeated, tag = "1")]
67 pub labels: ::prost::alloc::vec::Vec<Label>,
68}
69#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
71#[serde(default)]
72pub struct LabelMatcher {
73 #[prost(enumeration = "label_matcher::Type", tag = "1")]
74 pub r#type: i32,
75 #[prost(string, tag = "2")]
76 pub name: ::prost::alloc::string::String,
77 #[prost(string, tag = "3")]
78 pub value: ::prost::alloc::string::String,
79}
80pub mod label_matcher {
82 #[derive(
83 serde::Serialize,
84 serde::Deserialize,
85 Clone,
86 Copy,
87 Debug,
88 PartialEq,
89 Eq,
90 Hash,
91 PartialOrd,
92 Ord,
93 ::prost::Enumeration,
94 )]
95 #[repr(i32)]
96 pub enum Type {
97 Eq = 0,
98 Neq = 1,
99 Re = 2,
100 Nre = 3,
101 }
102}
103#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
104#[serde(default)]
105pub struct ReadHints {
106 #[prost(int64, optional, tag = "1")]
108 pub step_ms: Option<i64>,
109 #[prost(string, tag = "2")]
111 pub func: ::prost::alloc::string::String,
112 #[prost(int64, tag = "3")]
114 pub start_ms: i64,
115 #[prost(int64, tag = "4")]
117 pub end_ms: i64,
118 #[prost(string, repeated, tag = "5")]
120 pub grouping: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
121 #[prost(bool, tag = "6")]
123 pub by: bool,
124 #[prost(int64, optional, tag = "7")]
126 pub range_ms: Option<i64>,
127}
128#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
131pub struct Chunk {
132 #[prost(int64, tag = "1")]
133 pub min_time_ms: i64,
134 #[prost(int64, tag = "2")]
135 pub max_time_ms: i64,
136 #[prost(enumeration = "chunk::Encoding", tag = "3")]
137 pub r#type: i32,
138 #[prost(bytes = "vec", tag = "4")]
139 pub data: ::prost::alloc::vec::Vec<u8>,
140}
141pub mod chunk {
143 #[derive(
145 serde::Serialize,
146 serde::Deserialize,
147 Clone,
148 Copy,
149 Debug,
150 PartialEq,
151 Eq,
152 Hash,
153 PartialOrd,
154 Ord,
155 ::prost::Enumeration,
156 )]
157 #[repr(i32)]
158 pub enum Encoding {
159 Unknown = 0,
160 Xor = 1,
161 }
162}
163#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
165pub struct ChunkedSeries {
166 #[prost(message, repeated, tag = "1")]
168 pub labels: ::prost::alloc::vec::Vec<Label>,
169 #[prost(message, repeated, tag = "2")]
171 pub chunks: ::prost::alloc::vec::Vec<Chunk>,
172}
173#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
174pub struct WriteRequest {
175 #[prost(message, repeated, tag = "1")]
176 pub timeseries: ::prost::alloc::vec::Vec<TimeSeries>,
177 #[prost(message, repeated, tag = "3")]
178 pub metadata: ::prost::alloc::vec::Vec<MetricMetadata>,
179}
180#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
182#[serde(default)]
183pub struct ReadRequest {
184 #[prost(message, repeated, tag = "1")]
185 pub queries: ::prost::alloc::vec::Vec<Query>,
186 #[prost(enumeration = "read_request::ResponseType", repeated, tag = "2")]
192 pub accepted_response_types: ::prost::alloc::vec::Vec<i32>,
193}
194pub mod read_request {
196 #[derive(
197 serde::Serialize,
198 serde::Deserialize,
199 Clone,
200 Copy,
201 Debug,
202 PartialEq,
203 Eq,
204 Hash,
205 PartialOrd,
206 Ord,
207 ::prost::Enumeration,
208 )]
209 #[repr(i32)]
210 pub enum ResponseType {
211 Samples = 0,
218 StreamedXorChunks = 1,
225 }
226}
227#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
229pub struct ReadResponse {
230 #[prost(message, repeated, tag = "1")]
232 pub results: ::prost::alloc::vec::Vec<QueryResult>,
233}
234#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
235pub struct Query {
236 #[prost(int64, tag = "1")]
237 pub start_timestamp_ms: i64,
238 #[prost(int64, tag = "2")]
239 pub end_timestamp_ms: i64,
240 #[prost(message, repeated, tag = "3")]
241 pub matchers: ::prost::alloc::vec::Vec<LabelMatcher>,
242 #[prost(message, optional, tag = "4")]
243 pub hints: ::core::option::Option<ReadHints>,
244}
245#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
246pub struct QueryResult {
247 #[prost(message, repeated, tag = "1")]
249 pub timeseries: ::prost::alloc::vec::Vec<TimeSeries>,
250}
251#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
256pub struct ChunkedReadResponse {
257 #[prost(message, repeated, tag = "1")]
258 pub chunked_series: ::prost::alloc::vec::Vec<ChunkedSeries>,
259 #[prost(int64, tag = "2")]
261 pub query_index: i64,
262}