Add minmized remote write proto format

Co-authored-by: Marco Pracucci <marco@pracucci.com>
Signed-off-by: Callum Styan <callumstyan@gmail.com>
Signed-off-by: Nicolás Pazos <npazosmendez@gmail.com>
This commit is contained in:
Callum Styan 2023-11-06 15:38:11 -08:00 committed by Nicolás Pazos
parent 68a9f8bb54
commit 8aadbfb372
4 changed files with 1384 additions and 197 deletions

View file

@ -60,7 +60,7 @@ func (x ReadRequest_ResponseType) String() string {
}
func (ReadRequest_ResponseType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{2, 0}
return fileDescriptor_eefc82927d57d89b, []int{3, 0}
}
type WriteRequest struct {
@ -120,7 +120,6 @@ func (m *WriteRequest) GetMetadata() []MetricMetadata {
type WriteRequestWithRefs struct {
Timeseries []ReducedTimeSeries `protobuf:"bytes,1,rep,name=timeseries,proto3" json:"timeseries"`
Metadata []MetricMetadata `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata"`
// Symbol table for label names/values.
StringSymbolTable map[uint64]string `protobuf:"bytes,4,rep,name=string_symbol_table,json=stringSymbolTable,proto3" json:"string_symbol_table" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -168,13 +167,6 @@ func (m *WriteRequestWithRefs) GetTimeseries() []ReducedTimeSeries {
return nil
}
func (m *WriteRequestWithRefs) GetMetadata() []MetricMetadata {
if m != nil {
return m.Metadata
}
return nil
}
func (m *WriteRequestWithRefs) GetStringSymbolTable() map[uint64]string {
if m != nil {
return m.StringSymbolTable
@ -182,6 +174,63 @@ func (m *WriteRequestWithRefs) GetStringSymbolTable() map[uint64]string {
return nil
}
type MinimizedWriteRequest struct {
Timeseries []MinimizedTimeSeries `protobuf:"bytes,1,rep,name=timeseries,proto3" json:"timeseries"`
// The symbols table. All symbols are concatenated strings. To read the symbols table, it's required
// to know the offset:length range of the actual symbol to read from this string.
Symbols string `protobuf:"bytes,4,opt,name=symbols,proto3" json:"symbols,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *MinimizedWriteRequest) Reset() { *m = MinimizedWriteRequest{} }
func (m *MinimizedWriteRequest) String() string { return proto.CompactTextString(m) }
func (*MinimizedWriteRequest) ProtoMessage() {}
func (*MinimizedWriteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{2}
}
func (m *MinimizedWriteRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MinimizedWriteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MinimizedWriteRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *MinimizedWriteRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_MinimizedWriteRequest.Merge(m, src)
}
func (m *MinimizedWriteRequest) XXX_Size() int {
return m.Size()
}
func (m *MinimizedWriteRequest) XXX_DiscardUnknown() {
xxx_messageInfo_MinimizedWriteRequest.DiscardUnknown(m)
}
var xxx_messageInfo_MinimizedWriteRequest proto.InternalMessageInfo
func (m *MinimizedWriteRequest) GetTimeseries() []MinimizedTimeSeries {
if m != nil {
return m.Timeseries
}
return nil
}
func (m *MinimizedWriteRequest) GetSymbols() string {
if m != nil {
return m.Symbols
}
return ""
}
// ReadRequest represents a remote read request.
type ReadRequest struct {
Queries []*Query `protobuf:"bytes,1,rep,name=queries,proto3" json:"queries,omitempty"`
@ -200,7 +249,7 @@ func (m *ReadRequest) Reset() { *m = ReadRequest{} }
func (m *ReadRequest) String() string { return proto.CompactTextString(m) }
func (*ReadRequest) ProtoMessage() {}
func (*ReadRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{2}
return fileDescriptor_eefc82927d57d89b, []int{3}
}
func (m *ReadRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -256,7 +305,7 @@ func (m *ReadResponse) Reset() { *m = ReadResponse{} }
func (m *ReadResponse) String() string { return proto.CompactTextString(m) }
func (*ReadResponse) ProtoMessage() {}
func (*ReadResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{3}
return fileDescriptor_eefc82927d57d89b, []int{4}
}
func (m *ReadResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -306,7 +355,7 @@ func (m *Query) Reset() { *m = Query{} }
func (m *Query) String() string { return proto.CompactTextString(m) }
func (*Query) ProtoMessage() {}
func (*Query) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{4}
return fileDescriptor_eefc82927d57d89b, []int{5}
}
func (m *Query) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -375,7 +424,7 @@ func (m *QueryResult) Reset() { *m = QueryResult{} }
func (m *QueryResult) String() string { return proto.CompactTextString(m) }
func (*QueryResult) ProtoMessage() {}
func (*QueryResult) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{5}
return fileDescriptor_eefc82927d57d89b, []int{6}
}
func (m *QueryResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -428,7 +477,7 @@ func (m *ChunkedReadResponse) Reset() { *m = ChunkedReadResponse{} }
func (m *ChunkedReadResponse) String() string { return proto.CompactTextString(m) }
func (*ChunkedReadResponse) ProtoMessage() {}
func (*ChunkedReadResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_eefc82927d57d89b, []int{6}
return fileDescriptor_eefc82927d57d89b, []int{7}
}
func (m *ChunkedReadResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -476,6 +525,7 @@ func init() {
proto.RegisterType((*WriteRequest)(nil), "prometheus.WriteRequest")
proto.RegisterType((*WriteRequestWithRefs)(nil), "prometheus.WriteRequestWithRefs")
proto.RegisterMapType((map[uint64]string)(nil), "prometheus.WriteRequestWithRefs.StringSymbolTableEntry")
proto.RegisterType((*MinimizedWriteRequest)(nil), "prometheus.MinimizedWriteRequest")
proto.RegisterType((*ReadRequest)(nil), "prometheus.ReadRequest")
proto.RegisterType((*ReadResponse)(nil), "prometheus.ReadResponse")
proto.RegisterType((*Query)(nil), "prometheus.Query")
@ -486,46 +536,48 @@ func init() {
func init() { proto.RegisterFile("remote.proto", fileDescriptor_eefc82927d57d89b) }
var fileDescriptor_eefc82927d57d89b = []byte{
// 611 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x49, 0x6f, 0xd3, 0x4e,
0x14, 0xef, 0x24, 0xe9, 0xf2, 0x7f, 0xee, 0xbf, 0x4a, 0xa7, 0x69, 0x6b, 0x22, 0xd1, 0x46, 0x16,
0x87, 0x48, 0x45, 0x41, 0x94, 0x0a, 0x10, 0xea, 0x81, 0x2e, 0x91, 0x0a, 0x34, 0x2c, 0xe3, 0xa0,
0x22, 0x84, 0x64, 0x39, 0xf6, 0xa3, 0xb1, 0x1a, 0x2f, 0x9d, 0x19, 0xa3, 0xfa, 0x5b, 0xf0, 0x99,
0x38, 0xf5, 0x84, 0x38, 0x70, 0x46, 0xa8, 0x9f, 0x04, 0x79, 0x62, 0x87, 0x69, 0xc9, 0x81, 0x0b,
0xb7, 0xf1, 0xfb, 0x2d, 0xf3, 0xb6, 0x31, 0x2c, 0x72, 0x0c, 0x63, 0x89, 0x9d, 0x84, 0xc7, 0x32,
0xa6, 0x90, 0xf0, 0x38, 0x44, 0x39, 0xc4, 0x54, 0x34, 0x0d, 0x99, 0x25, 0x28, 0xc6, 0x40, 0xb3,
0x71, 0x1a, 0x9f, 0xc6, 0xea, 0x78, 0x2f, 0x3f, 0x8d, 0xa3, 0xd6, 0x67, 0x02, 0x8b, 0x27, 0x3c,
0x90, 0xc8, 0xf0, 0x3c, 0x45, 0x21, 0xe9, 0x2e, 0x80, 0x0c, 0x42, 0x14, 0xc8, 0x03, 0x14, 0x26,
0x69, 0x55, 0xdb, 0xc6, 0xf6, 0x5a, 0xe7, 0xb7, 0x69, 0xa7, 0x1f, 0x84, 0x68, 0x2b, 0x74, 0xbf,
0x76, 0xf9, 0x63, 0x73, 0x86, 0x69, 0x7c, 0xba, 0x0b, 0x0b, 0x21, 0x4a, 0xd7, 0x77, 0xa5, 0x6b,
0x56, 0x95, 0xb6, 0xa9, 0x6b, 0x7b, 0x28, 0x79, 0xe0, 0xf5, 0x0a, 0x46, 0xa1, 0x9f, 0x28, 0x9e,
0xd7, 0x16, 0x2a, 0xf5, 0xaa, 0xf5, 0xbd, 0x02, 0x0d, 0x3d, 0xa5, 0x93, 0x40, 0x0e, 0x19, 0x7e,
0x14, 0xf4, 0x60, 0x4a, 0x6a, 0xb7, 0x75, 0x7b, 0x86, 0x7e, 0xea, 0xa1, 0xff, 0xef, 0x32, 0xa4,
0x21, 0xac, 0x08, 0xc9, 0x83, 0xe8, 0xd4, 0x11, 0x59, 0x38, 0x88, 0x47, 0x8e, 0x74, 0x07, 0x23,
0x34, 0x6b, 0xca, 0xe8, 0x91, 0x6e, 0x34, 0xad, 0x82, 0x8e, 0xad, 0xb4, 0xb6, 0x92, 0xf6, 0x73,
0x65, 0x37, 0x92, 0x3c, 0x2b, 0x6e, 0x59, 0x16, 0x37, 0xd1, 0xe6, 0x21, 0xac, 0x4d, 0x97, 0xd0,
0x3a, 0x54, 0xcf, 0x30, 0x33, 0x49, 0x8b, 0xb4, 0x6b, 0x2c, 0x3f, 0xd2, 0x06, 0xcc, 0x7e, 0x72,
0x47, 0x29, 0x9a, 0x95, 0x16, 0x69, 0xff, 0xc7, 0xc6, 0x1f, 0x4f, 0x2a, 0x8f, 0x49, 0xd1, 0xd6,
0xaf, 0x04, 0x0c, 0x86, 0xae, 0x5f, 0x0e, 0x7a, 0x0b, 0xe6, 0xcf, 0x53, 0xbd, 0x95, 0xcb, 0x7a,
0xfa, 0x6f, 0x52, 0xe4, 0x19, 0x2b, 0x19, 0xf4, 0x03, 0xac, 0xbb, 0x9e, 0x87, 0x89, 0x44, 0xdf,
0xe1, 0x28, 0x92, 0x38, 0x12, 0xe8, 0xa8, 0xed, 0x32, 0x2b, 0xad, 0x6a, 0x7b, 0x69, 0xfb, 0xce,
0xf5, 0x39, 0x4c, 0xae, 0xe9, 0xb0, 0x82, 0xdd, 0xcf, 0x12, 0x64, 0xab, 0xa5, 0x89, 0x1e, 0x15,
0xd6, 0x0e, 0x2c, 0xea, 0x01, 0x6a, 0xc0, 0xbc, 0xbd, 0xd7, 0x7b, 0x7d, 0xdc, 0xb5, 0xeb, 0x33,
0x74, 0x1d, 0x56, 0xec, 0x3e, 0xeb, 0xee, 0xf5, 0xba, 0x87, 0xce, 0xbb, 0x57, 0xcc, 0x39, 0x38,
0x7a, 0xfb, 0xf2, 0x85, 0x5d, 0x27, 0xd6, 0x5e, 0xae, 0x72, 0x27, 0x56, 0xf4, 0x3e, 0xcc, 0x73,
0x14, 0xe9, 0x48, 0x96, 0x05, 0xad, 0xff, 0x59, 0x90, 0xc2, 0x59, 0xc9, 0xb3, 0xbe, 0x10, 0x98,
0x55, 0x00, 0xbd, 0x0b, 0x54, 0x48, 0x97, 0x4b, 0x47, 0xad, 0x8a, 0x74, 0xc3, 0xc4, 0x09, 0x85,
0x6a, 0x6f, 0x95, 0xd5, 0x15, 0xd2, 0x2f, 0x81, 0x9e, 0xa0, 0x6d, 0xa8, 0x63, 0xe4, 0x5f, 0xe7,
0x56, 0x14, 0x77, 0x09, 0x23, 0x5f, 0x67, 0xee, 0xc0, 0x42, 0xe8, 0x4a, 0x6f, 0x88, 0x5c, 0x14,
0xeb, 0x66, 0xea, 0x59, 0x1d, 0xbb, 0x03, 0x1c, 0xf5, 0xc6, 0x04, 0x36, 0x61, 0xd2, 0x2d, 0x98,
0x1d, 0x06, 0x91, 0x14, 0x66, 0xad, 0x45, 0xda, 0xc6, 0xf6, 0xea, 0xcd, 0xe6, 0x1e, 0xe5, 0x20,
0x1b, 0x73, 0xac, 0x2e, 0x18, 0x5a, 0x71, 0xf4, 0xe1, 0xdf, 0x3f, 0x60, 0xfd, 0x61, 0x58, 0x17,
0xb0, 0x72, 0x30, 0x4c, 0xa3, 0xb3, 0x7c, 0x38, 0x5a, 0x57, 0x9f, 0xc2, 0x92, 0x37, 0x0e, 0x3b,
0xd7, 0x2c, 0x6f, 0xe9, 0x96, 0x85, 0xb0, 0x70, 0xfd, 0xdf, 0xd3, 0x3f, 0xe9, 0x26, 0x18, 0xf9,
0x1a, 0x65, 0x4e, 0x10, 0xf9, 0x78, 0x51, 0xf4, 0x09, 0x54, 0xe8, 0x59, 0x1e, 0xd9, 0x6f, 0x5c,
0x5e, 0x6d, 0x90, 0x6f, 0x57, 0x1b, 0xe4, 0xe7, 0xd5, 0x06, 0x79, 0x3f, 0x97, 0xfb, 0x26, 0x83,
0xc1, 0x9c, 0xfa, 0x41, 0x3d, 0xf8, 0x15, 0x00, 0x00, 0xff, 0xff, 0xca, 0xe5, 0x50, 0xc5, 0xdf,
0x04, 0x00, 0x00,
// 655 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0xd3, 0x4a,
0x14, 0xae, 0x93, 0xb4, 0xc9, 0x3d, 0xe9, 0xad, 0xdc, 0x69, 0xda, 0xfa, 0x46, 0xba, 0x6d, 0x64,
0xdd, 0x45, 0xa4, 0x5e, 0x05, 0x51, 0x2a, 0x40, 0xa8, 0x0b, 0xfa, 0x13, 0xa9, 0x94, 0x9a, 0x9f,
0x71, 0x50, 0x11, 0x42, 0xb2, 0x1c, 0xfb, 0xd0, 0x58, 0x8d, 0x7f, 0xea, 0x19, 0xa3, 0x9a, 0x35,
0x0f, 0xc0, 0x03, 0xf0, 0x34, 0xac, 0xba, 0x42, 0x3c, 0x01, 0x42, 0x7d, 0x12, 0xe4, 0xb1, 0x1d,
0x26, 0x25, 0xaa, 0xd8, 0xcd, 0x9c, 0xef, 0x67, 0xce, 0x7c, 0x67, 0x6c, 0x58, 0x8c, 0xd1, 0x0f,
0x39, 0xf6, 0xa2, 0x38, 0xe4, 0x21, 0x81, 0x28, 0x0e, 0x7d, 0xe4, 0x23, 0x4c, 0x58, 0xbb, 0xc9,
0xd3, 0x08, 0x59, 0x0e, 0xb4, 0x5b, 0x67, 0xe1, 0x59, 0x28, 0x96, 0x77, 0xb2, 0x55, 0x5e, 0xd5,
0x3f, 0x29, 0xb0, 0x78, 0x1a, 0x7b, 0x1c, 0x29, 0x5e, 0x24, 0xc8, 0x38, 0xd9, 0x05, 0xe0, 0x9e,
0x8f, 0x0c, 0x63, 0x0f, 0x99, 0xa6, 0x74, 0xaa, 0xdd, 0xe6, 0xf6, 0x5a, 0xef, 0x97, 0x69, 0x6f,
0xe0, 0xf9, 0x68, 0x0a, 0x74, 0xbf, 0x76, 0xf5, 0x7d, 0x73, 0x8e, 0x4a, 0x7c, 0xb2, 0x0b, 0x0d,
0x1f, 0xb9, 0xed, 0xda, 0xdc, 0xd6, 0xaa, 0x42, 0xdb, 0x96, 0xb5, 0x06, 0xf2, 0xd8, 0x73, 0x8c,
0x82, 0x51, 0xe8, 0x27, 0x8a, 0xe3, 0x5a, 0xa3, 0xa2, 0x56, 0xf5, 0xcf, 0x15, 0x68, 0xc9, 0x2d,
0x9d, 0x7a, 0x7c, 0x44, 0xf1, 0x1d, 0x23, 0x07, 0x33, 0x5a, 0xfb, 0x57, 0xb6, 0xa7, 0xe8, 0x26,
0x0e, 0xba, 0xb7, 0x76, 0xe8, 0xc3, 0x0a, 0xe3, 0xb1, 0x17, 0x9c, 0x59, 0x2c, 0xf5, 0x87, 0xe1,
0xd8, 0xe2, 0xf6, 0x70, 0x8c, 0x5a, 0x4d, 0xb8, 0x3d, 0x90, 0xdd, 0x66, 0xf5, 0xd0, 0x33, 0x85,
0xd6, 0x14, 0xd2, 0x41, 0xa6, 0xec, 0x07, 0x3c, 0x4e, 0x8b, 0x73, 0x96, 0xd9, 0x4d, 0xb4, 0x7d,
0x08, 0x6b, 0xb3, 0x25, 0x44, 0x85, 0xea, 0x39, 0xa6, 0x9a, 0xd2, 0x51, 0xba, 0x35, 0x9a, 0x2d,
0x49, 0x0b, 0xe6, 0xdf, 0xdb, 0xe3, 0x04, 0xb5, 0x4a, 0x47, 0xe9, 0xfe, 0x45, 0xf3, 0xcd, 0xa3,
0xca, 0x43, 0x25, 0x0f, 0xe6, 0xb8, 0xd6, 0xa8, 0xaa, 0x35, 0xfd, 0xa3, 0x02, 0xab, 0x86, 0x17,
0x78, 0xbe, 0xf7, 0x01, 0xdd, 0xa9, 0xd1, 0xf5, 0x67, 0xe4, 0xb3, 0x39, 0x15, 0x7f, 0x29, 0xbb,
0x35, 0x21, 0x0d, 0xea, 0x79, 0x34, 0x4c, 0xab, 0x89, 0x46, 0xca, 0xed, 0x54, 0x1b, 0x5f, 0x15,
0x68, 0x52, 0xb4, 0xdd, 0xf2, 0xf0, 0x2d, 0xa8, 0x5f, 0x24, 0xf2, 0xc9, 0xcb, 0xf2, 0xc9, 0x2f,
0x13, 0x8c, 0x53, 0x5a, 0x32, 0xc8, 0x5b, 0x58, 0xb7, 0x1d, 0x07, 0x23, 0x8e, 0xae, 0x15, 0x23,
0x8b, 0xc2, 0x80, 0xa1, 0x25, 0x1e, 0xab, 0x56, 0xe9, 0x54, 0xbb, 0x4b, 0xdb, 0xff, 0x4d, 0x8f,
0x75, 0x72, 0x4c, 0x8f, 0x16, 0xec, 0x41, 0x1a, 0x21, 0x5d, 0x2d, 0x4d, 0xe4, 0x2a, 0xd3, 0x77,
0x60, 0x51, 0x2e, 0x90, 0x26, 0xd4, 0xcd, 0x3d, 0xe3, 0xc5, 0x49, 0xdf, 0x54, 0xe7, 0xc8, 0x3a,
0xac, 0x98, 0x03, 0xda, 0xdf, 0x33, 0xfa, 0x87, 0xd6, 0xeb, 0xe7, 0xd4, 0x3a, 0x38, 0x7a, 0xf5,
0xec, 0xa9, 0xa9, 0x2a, 0xfa, 0x5e, 0xa6, 0xb2, 0x27, 0x56, 0xe4, 0x2e, 0xd4, 0x63, 0x64, 0xc9,
0x98, 0x97, 0x17, 0x5a, 0xff, 0xfd, 0x42, 0x02, 0xa7, 0x25, 0x4f, 0xff, 0xa2, 0xc0, 0xbc, 0x00,
0xc8, 0xff, 0x40, 0x18, 0xb7, 0x63, 0x6e, 0x89, 0x5c, 0xb9, 0xed, 0x47, 0x96, 0xcf, 0xc4, 0xac,
0xab, 0x54, 0x15, 0xc8, 0xa0, 0x04, 0x0c, 0x46, 0xba, 0xa0, 0x62, 0xe0, 0x4e, 0x73, 0x2b, 0x82,
0xbb, 0x84, 0x81, 0x2b, 0x33, 0x77, 0xa0, 0xe1, 0xdb, 0xdc, 0x19, 0x61, 0xcc, 0x8a, 0xef, 0x4b,
0x93, 0xbb, 0x3a, 0xb1, 0x87, 0x38, 0x36, 0x72, 0x02, 0x9d, 0x30, 0xc9, 0x16, 0xcc, 0x8f, 0xbc,
0x80, 0xe7, 0xf3, 0x6c, 0x6e, 0xaf, 0xde, 0x0c, 0xf7, 0x28, 0x03, 0x69, 0xce, 0xd1, 0xfb, 0xd0,
0x94, 0x2e, 0x47, 0xee, 0xff, 0xf9, 0xff, 0x40, 0x7e, 0x45, 0xfa, 0x25, 0xac, 0x1c, 0x8c, 0x92,
0xe0, 0x3c, 0x1b, 0x8e, 0x94, 0xea, 0x63, 0x58, 0x72, 0xf2, 0xb2, 0x35, 0x65, 0xf9, 0x8f, 0x6c,
0x59, 0x08, 0x0b, 0xd7, 0xbf, 0x1d, 0x79, 0x4b, 0x36, 0xa1, 0x99, 0x3d, 0xa3, 0xd4, 0xf2, 0x02,
0x17, 0x2f, 0x8b, 0x9c, 0x40, 0x94, 0x9e, 0x64, 0x95, 0xfd, 0xd6, 0xd5, 0xf5, 0x86, 0xf2, 0xed,
0x7a, 0x43, 0xf9, 0x71, 0xbd, 0xa1, 0xbc, 0x59, 0xc8, 0x7c, 0xa3, 0xe1, 0x70, 0x41, 0xfc, 0xef,
0xee, 0xfd, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x42, 0x7e, 0x2f, 0x97, 0x2e, 0x05, 0x00, 0x00,
}
func (m *WriteRequest) Marshal() (dAtA []byte, err error) {
@ -624,10 +676,10 @@ func (m *WriteRequestWithRefs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x22
}
}
if len(m.Metadata) > 0 {
for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- {
if len(m.Timeseries) > 0 {
for iNdEx := len(m.Timeseries) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Metadata[iNdEx].MarshalToSizedBuffer(dAtA[:i])
size, err := m.Timeseries[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@ -635,9 +687,43 @@ func (m *WriteRequestWithRefs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintRemote(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
}
func (m *MinimizedWriteRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MinimizedWriteRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MinimizedWriteRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.Symbols) > 0 {
i -= len(m.Symbols)
copy(dAtA[i:], m.Symbols)
i = encodeVarintRemote(dAtA, i, uint64(len(m.Symbols)))
i--
dAtA[i] = 0x22
}
if len(m.Timeseries) > 0 {
for iNdEx := len(m.Timeseries) - 1; iNdEx >= 0; iNdEx-- {
{
@ -952,12 +1038,6 @@ func (m *WriteRequestWithRefs) Size() (n int) {
n += 1 + l + sovRemote(uint64(l))
}
}
if len(m.Metadata) > 0 {
for _, e := range m.Metadata {
l = e.Size()
n += 1 + l + sovRemote(uint64(l))
}
}
if len(m.StringSymbolTable) > 0 {
for k, v := range m.StringSymbolTable {
_ = k
@ -972,6 +1052,28 @@ func (m *WriteRequestWithRefs) Size() (n int) {
return n
}
func (m *MinimizedWriteRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.Timeseries) > 0 {
for _, e := range m.Timeseries {
l = e.Size()
n += 1 + l + sovRemote(uint64(l))
}
}
l = len(m.Symbols)
if l > 0 {
n += 1 + l + sovRemote(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *ReadRequest) Size() (n int) {
if m == nil {
return 0
@ -1270,40 +1372,6 @@ func (m *WriteRequestWithRefs) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRemote
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthRemote
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthRemote
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Metadata = append(m.Metadata, MetricMetadata{})
if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field StringSymbolTable", wireType)
@ -1439,6 +1507,123 @@ func (m *WriteRequestWithRefs) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MinimizedWriteRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRemote
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MinimizedWriteRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MinimizedWriteRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Timeseries", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRemote
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthRemote
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthRemote
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Timeseries = append(m.Timeseries, MinimizedTimeSeries{})
if err := m.Timeseries[len(m.Timeseries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Symbols", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRemote
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthRemote
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthRemote
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Symbols = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipRemote(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthRemote
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ReadRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View file

@ -38,6 +38,17 @@ message WriteRequestWithRefs {
// Symbol table for label names/values.
map<uint64, string> string_symbol_table = 4 [(gogoproto.nullable) = false];
}
message MinimizedWriteRequest {
repeated MinimizedTimeSeries timeseries = 1 [(gogoproto.nullable) = false];
// Cortex uses this field to determine the source of the write request.
// We reserve it to avoid any compatibility issues.
reserved 2;
// Metadata (3) has moved to be part of the TimeSeries type
reserved 3;
// The symbols table. All symbols are concatenated strings. To read the symbols table, it's required
// to know the offset:length range of the actual symbol to read from this string.
string symbols = 4;
}
// ReadRequest represents a remote read request.
message ReadRequest {

File diff suppressed because it is too large Load diff

View file

@ -167,6 +167,25 @@ message ReducedTimeSeries {
MetricMetadataRef metadata = 5 [(gogoproto.nullable) = false];
}
// based on an experiment by marco
message MinimizedTimeSeries {
// Sorted list of label name-value pair references. This list is always even. At even indices
// there's the reference to label name, while at odd indices there's the reference to label value.
repeated uint32 label_symbols = 1 [(gogoproto.nullable) = false];
// Sorted by time, oldest sample first.
// TODO: support references for other types
repeated Sample samples = 2 [(gogoproto.nullable) = false];
repeated Exemplar exemplars = 3 [(gogoproto.nullable) = false];
repeated Histogram histograms = 4 [(gogoproto.nullable) = false];
}
// can be used for label name or label value
message MinimizedLabelSymbol {
uint32 offset = 1;
uint32 length = 2;
}
message LabelRef {
uint64 name_ref = 1;
uint64 value_ref = 2;