diff --git a/go/metrics.pb.go b/go/metrics.pb.go index 8fca0a8..35904ea 100644 --- a/go/metrics.pb.go +++ b/go/metrics.pb.go @@ -354,25 +354,37 @@ func (m *Untyped) GetValue() float64 { } type Histogram struct { - SampleCount *uint64 `protobuf:"varint,1,opt,name=sample_count,json=sampleCount" json:"sample_count,omitempty"` - SampleCountFloat *float64 `protobuf:"fixed64,9,opt,name=sample_count_float,json=sampleCountFloat" json:"sample_count_float,omitempty"` - SampleSum *float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum" json:"sample_sum,omitempty"` - Bucket []*Bucket `protobuf:"bytes,3,rep,name=bucket" json:"bucket,omitempty"` - // Sparse bucket (sb) stuff: - // The sb_schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8. + SampleCount *uint64 `protobuf:"varint,1,opt,name=sample_count,json=sampleCount" json:"sample_count,omitempty"` + SampleCountFloat *float64 `protobuf:"fixed64,4,opt,name=sample_count_float,json=sampleCountFloat" json:"sample_count_float,omitempty"` + SampleSum *float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum" json:"sample_sum,omitempty"` + // Buckets for the conventional histogram. + Bucket []*Bucket `protobuf:"bytes,3,rep,name=bucket" json:"bucket,omitempty"` + // schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8. // They are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and // then each power of two is divided into 2^n logarithmic buckets. // Or in other words, each bucket boundary is the previous boundary times 2^(2^-n). // In the future, more bucket schemas may be added using numbers < -4 or > 8. - SbSchema *int32 `protobuf:"zigzag32,4,opt,name=sb_schema,json=sbSchema" json:"sb_schema,omitempty"` - SbZeroThreshold *float64 `protobuf:"fixed64,5,opt,name=sb_zero_threshold,json=sbZeroThreshold" json:"sb_zero_threshold,omitempty"` - SbZeroCount *uint64 `protobuf:"varint,6,opt,name=sb_zero_count,json=sbZeroCount" json:"sb_zero_count,omitempty"` - SbZeroCountFloat *float64 `protobuf:"fixed64,10,opt,name=sb_zero_count_float,json=sbZeroCountFloat" json:"sb_zero_count_float,omitempty"` - SbNegative *SparseBuckets `protobuf:"bytes,7,opt,name=sb_negative,json=sbNegative" json:"sb_negative,omitempty"` - SbPositive *SparseBuckets `protobuf:"bytes,8,opt,name=sb_positive,json=sbPositive" json:"sb_positive,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Schema *int32 `protobuf:"zigzag32,5,opt,name=schema" json:"schema,omitempty"` + ZeroThreshold *float64 `protobuf:"fixed64,6,opt,name=zero_threshold,json=zeroThreshold" json:"zero_threshold,omitempty"` + ZeroCount *uint64 `protobuf:"varint,7,opt,name=zero_count,json=zeroCount" json:"zero_count,omitempty"` + ZeroCountFloat *float64 `protobuf:"fixed64,8,opt,name=zero_count_float,json=zeroCountFloat" json:"zero_count_float,omitempty"` + // Negative buckets for the native histogram. + NegativeSpan []*BucketSpan `protobuf:"bytes,9,rep,name=negative_span,json=negativeSpan" json:"negative_span,omitempty"` + // Use either "negative_delta" or "negative_count", the former for + // regular histograms with integer counts, the latter for float + // histograms. + NegativeDelta []int64 `protobuf:"zigzag64,10,rep,name=negative_delta,json=negativeDelta" json:"negative_delta,omitempty"` + NegativeCount []float64 `protobuf:"fixed64,11,rep,name=negative_count,json=negativeCount" json:"negative_count,omitempty"` + // Positive buckets for the native histogram. + PositiveSpan []*BucketSpan `protobuf:"bytes,12,rep,name=positive_span,json=positiveSpan" json:"positive_span,omitempty"` + // Use either "positive_delta" or "positive_count", the former for + // regular histograms with integer counts, the latter for float + // histograms. + PositiveDelta []int64 `protobuf:"zigzag64,13,rep,name=positive_delta,json=positiveDelta" json:"positive_delta,omitempty"` + PositiveCount []float64 `protobuf:"fixed64,14,rep,name=positive_count,json=positiveCount" json:"positive_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Histogram) Reset() { *m = Histogram{} } @@ -428,48 +440,78 @@ func (m *Histogram) GetBucket() []*Bucket { return nil } -func (m *Histogram) GetSbSchema() int32 { - if m != nil && m.SbSchema != nil { - return *m.SbSchema +func (m *Histogram) GetSchema() int32 { + if m != nil && m.Schema != nil { + return *m.Schema } return 0 } -func (m *Histogram) GetSbZeroThreshold() float64 { - if m != nil && m.SbZeroThreshold != nil { - return *m.SbZeroThreshold +func (m *Histogram) GetZeroThreshold() float64 { + if m != nil && m.ZeroThreshold != nil { + return *m.ZeroThreshold } return 0 } -func (m *Histogram) GetSbZeroCount() uint64 { - if m != nil && m.SbZeroCount != nil { - return *m.SbZeroCount +func (m *Histogram) GetZeroCount() uint64 { + if m != nil && m.ZeroCount != nil { + return *m.ZeroCount } return 0 } -func (m *Histogram) GetSbZeroCountFloat() float64 { - if m != nil && m.SbZeroCountFloat != nil { - return *m.SbZeroCountFloat +func (m *Histogram) GetZeroCountFloat() float64 { + if m != nil && m.ZeroCountFloat != nil { + return *m.ZeroCountFloat } return 0 } -func (m *Histogram) GetSbNegative() *SparseBuckets { +func (m *Histogram) GetNegativeSpan() []*BucketSpan { + if m != nil { + return m.NegativeSpan + } + return nil +} + +func (m *Histogram) GetNegativeDelta() []int64 { if m != nil { - return m.SbNegative + return m.NegativeDelta } return nil } -func (m *Histogram) GetSbPositive() *SparseBuckets { +func (m *Histogram) GetNegativeCount() []float64 { if m != nil { - return m.SbPositive + return m.NegativeCount } return nil } +func (m *Histogram) GetPositiveSpan() []*BucketSpan { + if m != nil { + return m.PositiveSpan + } + return nil +} + +func (m *Histogram) GetPositiveDelta() []int64 { + if m != nil { + return m.PositiveDelta + } + return nil +} + +func (m *Histogram) GetPositiveCount() []float64 { + if m != nil { + return m.PositiveCount + } + return nil +} + +// A Bucket of a conventional histogram, each of which is treated as +// an individual counter-like time series by Prometheus. type Bucket struct { CumulativeCount *uint64 `protobuf:"varint,1,opt,name=cumulative_count,json=cumulativeCount" json:"cumulative_count,omitempty"` CumulativeCountFloat *float64 `protobuf:"fixed64,4,opt,name=cumulative_count_float,json=cumulativeCountFloat" json:"cumulative_count_float,omitempty"` @@ -533,64 +575,13 @@ func (m *Bucket) GetExemplar() *Exemplar { return nil } -type SparseBuckets struct { - Span []*SparseBuckets_Span `protobuf:"bytes,1,rep,name=span" json:"span,omitempty"` - // Only one of "delta" or "count" may be used, the former for regular - // histograms with integer counts, the latter for float histograms. - Delta []int64 `protobuf:"zigzag64,2,rep,name=delta" json:"delta,omitempty"` - Count []float64 `protobuf:"fixed64,3,rep,name=count" json:"count,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SparseBuckets) Reset() { *m = SparseBuckets{} } -func (m *SparseBuckets) String() string { return proto.CompactTextString(m) } -func (*SparseBuckets) ProtoMessage() {} -func (*SparseBuckets) Descriptor() ([]byte, []int) { - return fileDescriptor_d1e5ddb18987a258, []int{8} -} - -func (m *SparseBuckets) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SparseBuckets.Unmarshal(m, b) -} -func (m *SparseBuckets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SparseBuckets.Marshal(b, m, deterministic) -} -func (m *SparseBuckets) XXX_Merge(src proto.Message) { - xxx_messageInfo_SparseBuckets.Merge(m, src) -} -func (m *SparseBuckets) XXX_Size() int { - return xxx_messageInfo_SparseBuckets.Size(m) -} -func (m *SparseBuckets) XXX_DiscardUnknown() { - xxx_messageInfo_SparseBuckets.DiscardUnknown(m) -} - -var xxx_messageInfo_SparseBuckets proto.InternalMessageInfo - -func (m *SparseBuckets) GetSpan() []*SparseBuckets_Span { - if m != nil { - return m.Span - } - return nil -} - -func (m *SparseBuckets) GetDelta() []int64 { - if m != nil { - return m.Delta - } - return nil -} - -func (m *SparseBuckets) GetCount() []float64 { - if m != nil { - return m.Count - } - return nil -} - -type SparseBuckets_Span struct { +// A BucketSpan defines a number of consecutive buckets in a native +// histogram with their offset. Logically, it would be more +// straightforward to include the bucket counts in the Span. However, +// the protobuf representation is more compact in the way the data is +// structured here (with all the buckets in a single array separate +// from the Spans). +type BucketSpan struct { Offset *int32 `protobuf:"zigzag32,1,opt,name=offset" json:"offset,omitempty"` Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -598,39 +589,39 @@ type SparseBuckets_Span struct { XXX_sizecache int32 `json:"-"` } -func (m *SparseBuckets_Span) Reset() { *m = SparseBuckets_Span{} } -func (m *SparseBuckets_Span) String() string { return proto.CompactTextString(m) } -func (*SparseBuckets_Span) ProtoMessage() {} -func (*SparseBuckets_Span) Descriptor() ([]byte, []int) { - return fileDescriptor_d1e5ddb18987a258, []int{8, 0} +func (m *BucketSpan) Reset() { *m = BucketSpan{} } +func (m *BucketSpan) String() string { return proto.CompactTextString(m) } +func (*BucketSpan) ProtoMessage() {} +func (*BucketSpan) Descriptor() ([]byte, []int) { + return fileDescriptor_d1e5ddb18987a258, []int{8} } -func (m *SparseBuckets_Span) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SparseBuckets_Span.Unmarshal(m, b) +func (m *BucketSpan) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BucketSpan.Unmarshal(m, b) } -func (m *SparseBuckets_Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SparseBuckets_Span.Marshal(b, m, deterministic) +func (m *BucketSpan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BucketSpan.Marshal(b, m, deterministic) } -func (m *SparseBuckets_Span) XXX_Merge(src proto.Message) { - xxx_messageInfo_SparseBuckets_Span.Merge(m, src) +func (m *BucketSpan) XXX_Merge(src proto.Message) { + xxx_messageInfo_BucketSpan.Merge(m, src) } -func (m *SparseBuckets_Span) XXX_Size() int { - return xxx_messageInfo_SparseBuckets_Span.Size(m) +func (m *BucketSpan) XXX_Size() int { + return xxx_messageInfo_BucketSpan.Size(m) } -func (m *SparseBuckets_Span) XXX_DiscardUnknown() { - xxx_messageInfo_SparseBuckets_Span.DiscardUnknown(m) +func (m *BucketSpan) XXX_DiscardUnknown() { + xxx_messageInfo_BucketSpan.DiscardUnknown(m) } -var xxx_messageInfo_SparseBuckets_Span proto.InternalMessageInfo +var xxx_messageInfo_BucketSpan proto.InternalMessageInfo -func (m *SparseBuckets_Span) GetOffset() int32 { +func (m *BucketSpan) GetOffset() int32 { if m != nil && m.Offset != nil { return *m.Offset } return 0 } -func (m *SparseBuckets_Span) GetLength() uint32 { +func (m *BucketSpan) GetLength() uint32 { if m != nil && m.Length != nil { return *m.Length } @@ -852,8 +843,7 @@ func init() { proto.RegisterType((*Untyped)(nil), "io.prometheus.client.Untyped") proto.RegisterType((*Histogram)(nil), "io.prometheus.client.Histogram") proto.RegisterType((*Bucket)(nil), "io.prometheus.client.Bucket") - proto.RegisterType((*SparseBuckets)(nil), "io.prometheus.client.SparseBuckets") - proto.RegisterType((*SparseBuckets_Span)(nil), "io.prometheus.client.SparseBuckets.Span") + proto.RegisterType((*BucketSpan)(nil), "io.prometheus.client.BucketSpan") proto.RegisterType((*Exemplar)(nil), "io.prometheus.client.Exemplar") proto.RegisterType((*Metric)(nil), "io.prometheus.client.Metric") proto.RegisterType((*MetricFamily)(nil), "io.prometheus.client.MetricFamily") @@ -864,63 +854,61 @@ func init() { } var fileDescriptor_d1e5ddb18987a258 = []byte{ - // 914 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x72, 0xdb, 0x44, - 0x14, 0x46, 0xb1, 0xfc, 0xa3, 0xe3, 0x86, 0x38, 0xdb, 0x4c, 0xc7, 0x93, 0x12, 0x62, 0xc4, 0x4d, - 0xe8, 0x80, 0x3c, 0x74, 0x52, 0x60, 0x4a, 0xb9, 0x48, 0xda, 0x34, 0x65, 0x06, 0xa7, 0x61, 0x6d, - 0x5f, 0xb4, 0x5c, 0x68, 0x56, 0xf6, 0x46, 0xd6, 0xa0, 0xd5, 0x0a, 0xad, 0xd4, 0x21, 0xbc, 0x00, - 0xd7, 0xbc, 0x02, 0x6f, 0xc0, 0x4b, 0xf0, 0x0e, 0x3c, 0x0d, 0xcc, 0xfe, 0x48, 0x8a, 0x8b, 0x0c, - 0x6d, 0xef, 0x74, 0xce, 0x7e, 0xdf, 0xd1, 0xf9, 0x8e, 0x76, 0xbf, 0x15, 0xb8, 0x11, 0x1f, 0xa7, - 0x19, 0x67, 0x34, 0x5f, 0xd1, 0x42, 0x8c, 0x17, 0x71, 0x44, 0x93, 0x7c, 0xcc, 0x68, 0x9e, 0x45, - 0x0b, 0xe1, 0xa5, 0x19, 0xcf, 0x39, 0xda, 0x8b, 0xb8, 0x57, 0x63, 0x3c, 0x8d, 0xd9, 0x3f, 0x0c, - 0x39, 0x0f, 0x63, 0x3a, 0x56, 0x98, 0xa0, 0xb8, 0x1a, 0xe7, 0x11, 0xa3, 0x22, 0x27, 0x2c, 0xd5, - 0x34, 0xf7, 0x01, 0x38, 0xdf, 0x91, 0x80, 0xc6, 0x97, 0x24, 0xca, 0x10, 0x02, 0x3b, 0x21, 0x8c, - 0x0e, 0xad, 0x91, 0x75, 0xe4, 0x60, 0xf5, 0x8c, 0xf6, 0xa0, 0xfd, 0x8a, 0xc4, 0x05, 0x1d, 0x6e, - 0xa9, 0xa4, 0x0e, 0xdc, 0x03, 0x68, 0x9f, 0x93, 0x22, 0xbc, 0xb1, 0x2c, 0x39, 0x56, 0xb9, 0xfc, - 0x03, 0x74, 0x1f, 0xf3, 0x22, 0xc9, 0x69, 0xd6, 0x0c, 0x40, 0x0f, 0xa1, 0x47, 0x7f, 0xa6, 0x2c, - 0x8d, 0x49, 0xa6, 0x0a, 0xf7, 0xef, 0x7f, 0xe8, 0x35, 0x09, 0xf0, 0xce, 0x0c, 0x0a, 0x57, 0x78, - 0xf7, 0x11, 0xf4, 0xbe, 0x2f, 0x48, 0x92, 0x47, 0x31, 0x45, 0xfb, 0xd0, 0xfb, 0xc9, 0x3c, 0x9b, - 0x17, 0x54, 0xf1, 0x7a, 0xe7, 0x55, 0x6b, 0xbf, 0x5a, 0xd0, 0x9d, 0x16, 0x8c, 0x91, 0xec, 0x1a, - 0x7d, 0x04, 0xb7, 0x04, 0x61, 0x69, 0x4c, 0xfd, 0x85, 0xec, 0x56, 0x55, 0xb0, 0x71, 0x5f, 0xe7, - 0x94, 0x00, 0x74, 0x00, 0x60, 0x20, 0xa2, 0x60, 0xa6, 0x92, 0xa3, 0x33, 0xd3, 0x82, 0x49, 0x1d, - 0xd5, 0xfb, 0x5b, 0xa3, 0xd6, 0x66, 0x1d, 0x65, 0xc7, 0x75, 0x7f, 0xee, 0x21, 0x74, 0xe7, 0x49, - 0x7e, 0x9d, 0xd2, 0xe5, 0x86, 0x29, 0xfe, 0xd5, 0x02, 0xe7, 0x59, 0x24, 0x72, 0x1e, 0x66, 0x84, - 0xbd, 0x49, 0xb3, 0x9f, 0x02, 0xba, 0x09, 0xf1, 0xaf, 0x62, 0x4e, 0xf2, 0xa1, 0xa3, 0x6a, 0x0e, - 0x6e, 0x00, 0x9f, 0xca, 0xfc, 0xff, 0x49, 0x3b, 0x86, 0x4e, 0x50, 0x2c, 0x7e, 0xa4, 0xb9, 0x11, - 0xf6, 0x41, 0xb3, 0xb0, 0x53, 0x85, 0xc1, 0x06, 0x8b, 0xee, 0x82, 0x23, 0x02, 0x5f, 0x2c, 0x56, - 0x94, 0x91, 0xa1, 0x3d, 0xb2, 0x8e, 0x76, 0x71, 0x4f, 0x04, 0x53, 0x15, 0xa3, 0x7b, 0xb0, 0x2b, - 0x02, 0xff, 0x17, 0x9a, 0x71, 0x3f, 0x5f, 0x65, 0x54, 0xac, 0x78, 0xbc, 0x1c, 0xb6, 0xd5, 0x8b, - 0x77, 0x44, 0xf0, 0x92, 0x66, 0x7c, 0x56, 0xa6, 0x91, 0x0b, 0xdb, 0x25, 0x56, 0xeb, 0xed, 0x18, - 0xbd, 0x0a, 0xa7, 0xf5, 0x7e, 0x06, 0xb7, 0xd7, 0x30, 0x46, 0x30, 0x18, 0xc1, 0x35, 0x52, 0x0b, - 0x7e, 0x02, 0x7d, 0x11, 0xf8, 0x09, 0x0d, 0x49, 0x1e, 0xbd, 0xa2, 0xc3, 0xae, 0xda, 0x77, 0x1f, - 0x37, 0xcb, 0x9a, 0xa6, 0x24, 0x13, 0x54, 0x8b, 0x13, 0x18, 0x44, 0x70, 0x61, 0x68, 0xa6, 0x4a, - 0xca, 0x45, 0xa4, 0xaa, 0xf4, 0xde, 0xaa, 0xca, 0xa5, 0xa1, 0xb9, 0x7f, 0x5a, 0xd0, 0xd1, 0x79, - 0xf4, 0x09, 0x0c, 0x16, 0x05, 0x2b, 0x62, 0x55, 0x7e, 0xed, 0xe3, 0xee, 0xd4, 0x79, 0x2d, 0xf8, - 0x18, 0xee, 0xbc, 0x0e, 0x35, 0x9a, 0x6d, 0xa5, 0x79, 0xef, 0x35, 0x82, 0xd6, 0x7d, 0x08, 0xfd, - 0x22, 0x4d, 0x69, 0xe6, 0x07, 0xbc, 0x48, 0x96, 0xe6, 0x4b, 0x83, 0x4a, 0x9d, 0xca, 0xcc, 0xda, - 0x69, 0x6c, 0xbd, 0xe5, 0x69, 0xfc, 0xc3, 0x82, 0xed, 0x35, 0x99, 0xe8, 0x11, 0xd8, 0x22, 0x25, - 0xc9, 0xd0, 0x52, 0xdb, 0xe6, 0xe8, 0x0d, 0x26, 0x23, 0xa3, 0x04, 0x2b, 0x96, 0x3c, 0x0a, 0x4b, - 0x1a, 0xe7, 0x64, 0xb8, 0x35, 0x6a, 0x1d, 0x21, 0xac, 0x03, 0x99, 0xd5, 0x83, 0x91, 0x7b, 0xd1, - 0xc2, 0x3a, 0xd8, 0xff, 0x02, 0x6c, 0xc9, 0x44, 0x77, 0xa0, 0xc3, 0xaf, 0xae, 0x04, 0xd5, 0x73, - 0xdb, 0xc5, 0x26, 0x92, 0xf9, 0x98, 0x26, 0x61, 0xbe, 0x52, 0x9a, 0xb7, 0xb1, 0x89, 0xdc, 0xdf, - 0x2c, 0xe8, 0x95, 0x52, 0xd0, 0x03, 0x68, 0xc7, 0xd2, 0x01, 0x4d, 0xbf, 0x87, 0xcd, 0xfd, 0x56, - 0x26, 0x89, 0x35, 0xba, 0xd9, 0x5d, 0xd0, 0x57, 0xe0, 0x54, 0x0e, 0x6b, 0x46, 0xb9, 0xef, 0x69, - 0x0f, 0xf6, 0x4a, 0x0f, 0xf6, 0x66, 0x25, 0x02, 0xd7, 0x60, 0xf7, 0xef, 0x2d, 0xe8, 0x4c, 0x94, - 0xa3, 0xbf, 0x6b, 0x47, 0x9f, 0x43, 0x3b, 0x94, 0x9e, 0x6c, 0x0c, 0xf5, 0x6e, 0x33, 0x4d, 0xd9, - 0x36, 0xd6, 0x48, 0xf4, 0x25, 0x74, 0x17, 0xda, 0xa7, 0x4d, 0xb3, 0x07, 0xcd, 0x24, 0x63, 0xe6, - 0xb8, 0x44, 0x4b, 0xa2, 0xd0, 0x26, 0xaa, 0x76, 0xde, 0x46, 0xa2, 0x71, 0x5a, 0x5c, 0xa2, 0x25, - 0xb1, 0xd0, 0xa6, 0xa7, 0x0e, 0xfe, 0x46, 0xa2, 0x71, 0x46, 0x5c, 0xa2, 0xd1, 0x37, 0xe0, 0xac, - 0x4a, 0x2f, 0x34, 0x47, 0x77, 0xc3, 0x60, 0x2a, 0xcb, 0xc4, 0x35, 0x43, 0xba, 0x67, 0x35, 0x6b, - 0x9f, 0x09, 0xe5, 0x26, 0x2d, 0xdc, 0xaf, 0x72, 0x13, 0xe1, 0xfe, 0x6e, 0xc1, 0x2d, 0xfd, 0x05, - 0x9e, 0x12, 0x16, 0xc5, 0xd7, 0x8d, 0xd7, 0x21, 0x02, 0x7b, 0x45, 0xe3, 0xd4, 0xdc, 0x86, 0xea, - 0x19, 0x1d, 0x83, 0x2d, 0x7b, 0x54, 0x23, 0x7c, 0xff, 0xfe, 0xa8, 0xb9, 0x2b, 0x5d, 0x79, 0x76, - 0x9d, 0x52, 0xac, 0xd0, 0xd2, 0x5f, 0xf5, 0x0d, 0x3e, 0xb4, 0xff, 0xcb, 0x5f, 0x35, 0x0f, 0x1b, - 0xec, 0xbd, 0x00, 0xa0, 0xae, 0x84, 0xfa, 0xd0, 0x7d, 0xfc, 0x7c, 0x7e, 0x31, 0x3b, 0xc3, 0x83, - 0xf7, 0x90, 0x03, 0xed, 0xf3, 0x93, 0xf9, 0xf9, 0xd9, 0xc0, 0x92, 0xf9, 0xe9, 0x7c, 0x32, 0x39, - 0xc1, 0x2f, 0x06, 0x5b, 0x32, 0x98, 0x5f, 0xcc, 0x5e, 0x5c, 0x9e, 0x3d, 0x19, 0xb4, 0xd0, 0x36, - 0x38, 0xcf, 0xbe, 0x9d, 0xce, 0x9e, 0x9f, 0xe3, 0x93, 0xc9, 0xc0, 0x46, 0xb7, 0x61, 0x47, 0x71, - 0xfc, 0x3a, 0xd9, 0x3e, 0xc5, 0xd0, 0xf8, 0x33, 0xf1, 0xf2, 0x61, 0x18, 0xe5, 0xab, 0x22, 0xf0, - 0x16, 0x9c, 0xfd, 0xfb, 0x77, 0xc4, 0x67, 0x7c, 0x49, 0xe3, 0x71, 0xc8, 0xbf, 0x8e, 0xb8, 0x5f, - 0xaf, 0xfa, 0x7a, 0xf5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x31, 0xb7, 0xd8, 0xc3, 0x08, - 0x00, 0x00, + // 896 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x8e, 0xdb, 0x44, + 0x18, 0xc5, 0x9b, 0x5f, 0x7f, 0xd9, 0x6c, 0xd3, 0x61, 0x55, 0x59, 0x0b, 0xcb, 0x06, 0x4b, 0x48, + 0x0b, 0x42, 0x8e, 0x40, 0x5b, 0x81, 0x0a, 0x5c, 0xec, 0xb6, 0xe9, 0x16, 0x89, 0xb4, 0x65, 0x92, + 0x5c, 0x14, 0x2e, 0xac, 0x49, 0x32, 0xeb, 0x58, 0x78, 0x3c, 0xc6, 0x1e, 0x57, 0x2c, 0x2f, 0xc0, + 0x35, 0xaf, 0xc0, 0xc3, 0xf0, 0x22, 0x3c, 0x08, 0x68, 0xfe, 0xec, 0xdd, 0xe2, 0x94, 0xd2, 0x3b, + 0x7f, 0x67, 0xce, 0xf7, 0xcd, 0x39, 0xe3, 0xc9, 0x71, 0xc0, 0x8f, 0xf9, 0x24, 0xcb, 0x39, 0xa3, + 0x62, 0x4b, 0xcb, 0x62, 0xb2, 0x4e, 0x62, 0x9a, 0x8a, 0x09, 0xa3, 0x22, 0x8f, 0xd7, 0x45, 0x90, + 0xe5, 0x5c, 0x70, 0x74, 0x18, 0xf3, 0xa0, 0xe6, 0x04, 0x9a, 0x73, 0x74, 0x12, 0x71, 0x1e, 0x25, + 0x74, 0xa2, 0x38, 0xab, 0xf2, 0x6a, 0x22, 0x62, 0x46, 0x0b, 0x41, 0x58, 0xa6, 0xdb, 0xfc, 0xfb, + 0xe0, 0x7e, 0x47, 0x56, 0x34, 0x79, 0x4e, 0xe2, 0x1c, 0x21, 0x68, 0xa7, 0x84, 0x51, 0xcf, 0x19, + 0x3b, 0xa7, 0x2e, 0x56, 0xcf, 0xe8, 0x10, 0x3a, 0x2f, 0x49, 0x52, 0x52, 0x6f, 0x4f, 0x81, 0xba, + 0xf0, 0x8f, 0xa1, 0x73, 0x49, 0xca, 0xe8, 0xc6, 0xb2, 0xec, 0x71, 0xec, 0xf2, 0x8f, 0xd0, 0x7b, + 0xc8, 0xcb, 0x54, 0xd0, 0xbc, 0x99, 0x80, 0x1e, 0x40, 0x9f, 0xfe, 0x42, 0x59, 0x96, 0x90, 0x5c, + 0x0d, 0x1e, 0x7c, 0xfe, 0x41, 0xd0, 0x64, 0x20, 0x98, 0x1a, 0x16, 0xae, 0xf8, 0xfe, 0xd7, 0xd0, + 0xff, 0xbe, 0x24, 0xa9, 0x88, 0x13, 0x8a, 0x8e, 0xa0, 0xff, 0xb3, 0x79, 0x36, 0x1b, 0x54, 0xf5, + 0x6d, 0xe5, 0x95, 0xb4, 0xdf, 0x1c, 0xe8, 0xcd, 0x4b, 0xc6, 0x48, 0x7e, 0x8d, 0x3e, 0x84, 0xfd, + 0x82, 0xb0, 0x2c, 0xa1, 0xe1, 0x5a, 0xaa, 0x55, 0x13, 0xda, 0x78, 0xa0, 0x31, 0x65, 0x00, 0x1d, + 0x03, 0x18, 0x4a, 0x51, 0x32, 0x33, 0xc9, 0xd5, 0xc8, 0xbc, 0x64, 0xd2, 0x47, 0xb5, 0x7f, 0x6b, + 0xdc, 0xda, 0xed, 0xc3, 0x2a, 0xae, 0xf5, 0xf9, 0x27, 0xd0, 0x5b, 0xa6, 0xe2, 0x3a, 0xa3, 0x9b, + 0x1d, 0xa7, 0xf8, 0x57, 0x1b, 0xdc, 0x27, 0x71, 0x21, 0x78, 0x94, 0x13, 0xf6, 0x26, 0x62, 0x3f, + 0x05, 0x74, 0x93, 0x12, 0x5e, 0x25, 0x9c, 0x08, 0xaf, 0xad, 0x66, 0x8e, 0x6e, 0x10, 0x1f, 0x4b, + 0xfc, 0xbf, 0xac, 0x9d, 0x41, 0x77, 0x55, 0xae, 0x7f, 0xa2, 0xc2, 0x18, 0x7b, 0xbf, 0xd9, 0xd8, + 0x85, 0xe2, 0x60, 0xc3, 0x45, 0xf7, 0xa0, 0x5b, 0xac, 0xb7, 0x94, 0x11, 0xaf, 0x33, 0x76, 0x4e, + 0xef, 0x62, 0x53, 0xa1, 0x8f, 0xe0, 0xe0, 0x57, 0x9a, 0xf3, 0x50, 0x6c, 0x73, 0x5a, 0x6c, 0x79, + 0xb2, 0xf1, 0xba, 0x6a, 0xc3, 0xa1, 0x44, 0x17, 0x16, 0x94, 0x9a, 0x14, 0x4d, 0x5b, 0xec, 0x29, + 0x8b, 0xae, 0x44, 0xb4, 0xc1, 0x53, 0x18, 0xd5, 0xcb, 0xc6, 0x5e, 0x5f, 0xcd, 0x39, 0xa8, 0x48, + 0xda, 0xdc, 0x14, 0x86, 0x29, 0x8d, 0x88, 0x88, 0x5f, 0xd2, 0xb0, 0xc8, 0x48, 0xea, 0xb9, 0xca, + 0xc4, 0xf8, 0x75, 0x26, 0xe6, 0x19, 0x49, 0xf1, 0xbe, 0x6d, 0x93, 0x95, 0x94, 0x5d, 0x8d, 0xd9, + 0xd0, 0x44, 0x10, 0x0f, 0xc6, 0xad, 0x53, 0x84, 0xab, 0xe1, 0x8f, 0x24, 0x78, 0x8b, 0xa6, 0xa5, + 0x0f, 0xc6, 0x2d, 0xe9, 0xce, 0xa2, 0x5a, 0xfe, 0x14, 0x86, 0x19, 0x2f, 0xe2, 0x5a, 0xd4, 0xfe, + 0x9b, 0x8a, 0xb2, 0x6d, 0x56, 0x54, 0x35, 0x46, 0x8b, 0x1a, 0x6a, 0x51, 0x16, 0xad, 0x44, 0x55, + 0x34, 0x2d, 0xea, 0x40, 0x8b, 0xb2, 0xa8, 0x12, 0xe5, 0xff, 0xe9, 0x40, 0x57, 0x6f, 0x85, 0x3e, + 0x86, 0xd1, 0xba, 0x64, 0x65, 0x72, 0xd3, 0x88, 0xbe, 0x66, 0x77, 0x6a, 0x5c, 0x5b, 0x39, 0x83, + 0x7b, 0xaf, 0x52, 0x6f, 0x5d, 0xb7, 0xc3, 0x57, 0x1a, 0xf4, 0x5b, 0x39, 0x81, 0x41, 0x99, 0x65, + 0x34, 0x0f, 0x57, 0xbc, 0x4c, 0x37, 0xe6, 0xce, 0x81, 0x82, 0x2e, 0x24, 0x72, 0x2b, 0x17, 0x5a, + 0xff, 0x3b, 0x17, 0xa0, 0x3e, 0x32, 0x79, 0x11, 0xf9, 0xd5, 0x55, 0x41, 0xb5, 0x83, 0xbb, 0xd8, + 0x54, 0x12, 0x4f, 0x68, 0x1a, 0x89, 0xad, 0xda, 0x7d, 0x88, 0x4d, 0xe5, 0xff, 0xee, 0x40, 0xdf, + 0x0e, 0x45, 0xf7, 0xa1, 0x93, 0xc8, 0x54, 0xf4, 0x1c, 0xf5, 0x82, 0x4e, 0x9a, 0x35, 0x54, 0xc1, + 0x89, 0x35, 0xbb, 0x39, 0x71, 0xd0, 0x97, 0xe0, 0x56, 0xa9, 0x6b, 0x4c, 0x1d, 0x05, 0x3a, 0x97, + 0x03, 0x9b, 0xcb, 0xc1, 0xc2, 0x32, 0x70, 0x4d, 0xf6, 0xff, 0xde, 0x83, 0xee, 0x4c, 0xa5, 0xfc, + 0xdb, 0x2a, 0xfa, 0x0c, 0x3a, 0x91, 0xcc, 0x69, 0x13, 0xb2, 0xef, 0x35, 0xb7, 0xa9, 0x28, 0xc7, + 0x9a, 0x89, 0xbe, 0x80, 0xde, 0x5a, 0x67, 0xb7, 0x11, 0x7b, 0xdc, 0xdc, 0x64, 0x02, 0x1e, 0x5b, + 0xb6, 0x6c, 0x2c, 0x74, 0xb0, 0xaa, 0x3b, 0xb0, 0xb3, 0xd1, 0xa4, 0x2f, 0xb6, 0x6c, 0xd9, 0x58, + 0xea, 0x20, 0x54, 0xa1, 0xb1, 0xb3, 0xd1, 0xa4, 0x25, 0xb6, 0x6c, 0xf4, 0x0d, 0xb8, 0x5b, 0x9b, + 0x8f, 0x2a, 0x2c, 0x76, 0x1e, 0x4c, 0x15, 0xa3, 0xb8, 0xee, 0x90, 0x89, 0x5a, 0x9d, 0x75, 0xc8, + 0x0a, 0x95, 0x48, 0x2d, 0x3c, 0xa8, 0xb0, 0x59, 0xe1, 0xff, 0xe1, 0xc0, 0xbe, 0x7e, 0x03, 0x8f, + 0x09, 0x8b, 0x93, 0xeb, 0xc6, 0x4f, 0x24, 0x82, 0xf6, 0x96, 0x26, 0x99, 0xf9, 0x42, 0xaa, 0x67, + 0x74, 0x06, 0x6d, 0xa9, 0x51, 0x1d, 0xe1, 0xc1, 0xae, 0x5f, 0xb8, 0x9e, 0xbc, 0xb8, 0xce, 0x28, + 0x56, 0x6c, 0x99, 0xb9, 0xfa, 0xab, 0xee, 0xb5, 0x5f, 0x97, 0xb9, 0xba, 0x0f, 0x1b, 0xee, 0x27, + 0x2b, 0x80, 0x7a, 0x12, 0x1a, 0x40, 0xef, 0xe1, 0xb3, 0xe5, 0xd3, 0xc5, 0x14, 0x8f, 0xde, 0x41, + 0x2e, 0x74, 0x2e, 0xcf, 0x97, 0x97, 0xd3, 0x91, 0x23, 0xf1, 0xf9, 0x72, 0x36, 0x3b, 0xc7, 0x2f, + 0x46, 0x7b, 0xb2, 0x58, 0x3e, 0x5d, 0xbc, 0x78, 0x3e, 0x7d, 0x34, 0x6a, 0xa1, 0x21, 0xb8, 0x4f, + 0xbe, 0x9d, 0x2f, 0x9e, 0x5d, 0xe2, 0xf3, 0xd9, 0xa8, 0x8d, 0xde, 0x85, 0x3b, 0xaa, 0x27, 0xac, + 0xc1, 0xce, 0x05, 0x86, 0xc6, 0x3f, 0x18, 0x3f, 0x3c, 0x88, 0x62, 0xb1, 0x2d, 0x57, 0xc1, 0x9a, + 0xb3, 0x7f, 0xff, 0x45, 0x09, 0x19, 0xdf, 0xd0, 0x64, 0x12, 0xf1, 0xaf, 0x62, 0x1e, 0xd6, 0xab, + 0xa1, 0x5e, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x16, 0x77, 0x81, 0x98, 0xd7, 0x08, 0x00, 0x00, } diff --git a/io/prometheus/client/metrics.proto b/io/prometheus/client/metrics.proto index 21a6955..f838da6 100644 --- a/io/prometheus/client/metrics.proto +++ b/io/prometheus/client/metrics.proto @@ -65,23 +65,42 @@ message Untyped { message Histogram { optional uint64 sample_count = 1; - optional double sample_count_float = 9; // Overrides sample_count if > 0. + optional double sample_count_float = 4; // Overrides sample_count if > 0. optional double sample_sum = 2; + // Buckets for the conventional histogram. repeated Bucket bucket = 3; // Ordered in increasing order of upper_bound, +Inf bucket is optional. - // Sparse bucket (sb) stuff: - // The sb_schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8. + + // Everything below here is for native histograms (also known as sparse histograms). + + // schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8. // They are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and // then each power of two is divided into 2^n logarithmic buckets. // Or in other words, each bucket boundary is the previous boundary times 2^(2^-n). // In the future, more bucket schemas may be added using numbers < -4 or > 8. - optional sint32 sb_schema = 4; - optional double sb_zero_threshold = 5; // Breadth of the zero bucket. - optional uint64 sb_zero_count = 6; // Count in zero bucket. - optional double sb_zero_count_float = 10; // Overrides sb_zero_count if > 0. - optional SparseBuckets sb_negative = 7; // Negative sparse buckets. - optional SparseBuckets sb_positive = 8; // Positive sparse buckets. + optional sint32 schema = 5; + optional double zero_threshold = 6; // Breadth of the zero bucket. + optional uint64 zero_count = 7; // Count in zero bucket. + optional double zero_count_float = 8; // Overrides sb_zero_count if > 0. + + // Negative buckets for the native histogram. + repeated BucketSpan negative_span = 9; + // Use either "negative_delta" or "negative_count", the former for + // regular histograms with integer counts, the latter for float + // histograms. + repeated sint64 negative_delta = 10; // Count delta of each bucket compared to previous one (or to zero for 1st bucket). + repeated double negative_count = 11; // Absolute count of each bucket. + + // Positive buckets for the native histogram. + repeated BucketSpan positive_span = 12; + // Use either "positive_delta" or "positive_count", the former for + // regular histograms with integer counts, the latter for float + // histograms. + repeated sint64 positive_delta = 13; // Count delta of each bucket compared to previous one (or to zero for 1st bucket). + repeated double positive_count = 14; // Absolute count of each bucket. } +// A Bucket of a conventional histogram, each of which is treated as +// an individual counter-like time series by Prometheus. message Bucket { optional uint64 cumulative_count = 1; // Cumulative in increasing order. optional double cumulative_count_float = 4; // Overrides cumulative_count if > 0. @@ -89,22 +108,15 @@ message Bucket { optional Exemplar exemplar = 3; } -message SparseBuckets { - // A Span is a given number of consecutive buckets at a given - // offset. Logically, it would be more straightforward to include - // the bucket counts in the Span. However, the protobuf - // representation is more compact in the way the data is structured - // here (with all the buckets in a single array separate from the - // Spans). - message Span { - optional sint32 offset = 1; // Gap to previous span, or starting point for 1st span (which can be negative). - optional uint32 length = 2; // Length of consecutive buckets. - } - repeated Span span = 1; - // Only one of "delta" or "count" may be used, the former for regular - // histograms with integer counts, the latter for float histograms. - repeated sint64 delta = 2; // Count delta of each bucket compared to previous one (or to zero for 1st bucket). - repeated double count = 3; // Absolute count of each bucket. +// A BucketSpan defines a number of consecutive buckets in a native +// histogram with their offset. Logically, it would be more +// straightforward to include the bucket counts in the Span. However, +// the protobuf representation is more compact in the way the data is +// structured here (with all the buckets in a single array separate +// from the Spans). +message BucketSpan { + optional sint32 offset = 1; // Gap to previous span, or starting point for 1st span (which can be negative). + optional uint32 length = 2; // Length of consecutive buckets. } message Exemplar {