diff --git a/metrics.go b/metrics.go index 9283958d..dcafb0ea 100644 --- a/metrics.go +++ b/metrics.go @@ -65,6 +65,7 @@ const ( MetricsReplication MetricsProcess MetricsHealing + MetricsBuckets // MetricsAll must be last. // Enables all metrics. @@ -101,6 +102,7 @@ func (m MetricType) String() string { addIf(m.Contains(MetricsReplication), "Replication") addIf(m.Contains(MetricsProcess), "Process") addIf(m.Contains(MetricsHealing), "Healing") + addIf(m.Contains(MetricsBuckets), "Buckets") return b.String() } @@ -159,6 +161,7 @@ type MetricsOptions struct { DrivePoolIdx []int // Only include metrics for these drive pools. Leave empty for all. DriveSetIdx []int // Only include metrics for these drive sets (combine with PoolIdx if needed). Disks []string // Include only specific disks. Leave empty for all. + Buckets []string // Include only specific buckets in bucket metrics. Leave empty for all. ByJobID string ByDepID string @@ -195,6 +198,9 @@ func (adm *AdminClient) Metrics(ctx context.Context, o MetricsOptions, out func( } q.Set("disks", strings.Join(o.Disks, ",")) + if len(o.Buckets) > 0 { + q.Set("buckets", strings.Join(o.Buckets, ",")) + } if o.ByDisk { q.Set("by-disk", "true") // Legacy flag o.Flags.Add(MetricsByDisk) @@ -368,6 +374,7 @@ type Metrics struct { Replication *ReplicationMetrics `json:"replication,omitempty"` Process *ProcessMetrics `json:"process,omitempty"` Healing *HealingMetrics `json:"healing,omitempty"` + Buckets *BucketAPIMetrics `json:"buckets,omitempty"` } // Merge other into r. @@ -435,6 +442,10 @@ func (r *Metrics) Merge(other *Metrics) { r.Healing = &HealingMetrics{} } r.Healing.Merge(other.Healing) + if r.Buckets == nil && other.Buckets != nil { + r.Buckets = &BucketAPIMetrics{} + } + r.Buckets.Merge(other.Buckets) } // ScannerMetrics contains scanner information. @@ -2960,3 +2971,157 @@ func (m *HealingMetrics) Merge(other *HealingMetrics) { maps.Copy(m.ActiveSessions, other.ActiveSessions) } } + +// BucketOpStat holds per-operation request counters and byte I/O for one +// bucket. Bytes are tracked per-operation so byte traffic can be attributed +// to the specific S3 calls (e.g., GET vs PUT). +type BucketOpStat struct { + Requests int64 `json:"requests"` + Errors4xx int64 `json:"errors4xx,omitempty"` + Errors5xx int64 `json:"errors5xx,omitempty"` + BytesIn uint64 `json:"bytesIn,omitempty"` + BytesOut uint64 `json:"bytesOut,omitempty"` +} + +// SegmentedBucketStats holds a time-segmented series for one bucket within a +// single window (LastHour or LastDay). Slots are ordered oldest-first; index +// len-1 is the most recent. +type SegmentedBucketStats struct { + // IntervalSecs is the duration of each slot in seconds. + IntervalSecs int `json:"intervalSecs"` + + // FirstTime is the timestamp of the oldest slot. + FirstTime time.Time `json:"firstTime"` + + // Per-category counts; one slot per IntervalSecs. + Requests []int64 `json:"requests,omitempty"` + Gets []int64 `json:"gets,omitempty"` + Puts []int64 `json:"puts,omitempty"` + Lists []int64 `json:"lists,omitempty"` + Errors []int64 `json:"errors,omitempty"` + Errors4xx []int64 `json:"errors4xx,omitempty"` + Errors5xx []int64 `json:"errors5xx,omitempty"` + + // BytesIn / BytesOut are per-slot byte counters so callers can both + // chart byte throughput and sum across slots for a window total. + BytesIn []int64 `json:"bytesIn,omitempty"` + BytesOut []int64 `json:"bytesOut,omitempty"` +} + +// Merge folds other into s. Slots are right-aligned and summed so the most +// recent slot always aligns; FirstTime extends to the earliest reported. +func (s *SegmentedBucketStats) Merge(other *SegmentedBucketStats) { + if other == nil { + return + } + if s.IntervalSecs == 0 { + s.IntervalSecs = other.IntervalSecs + } + if s.FirstTime.IsZero() || (!other.FirstTime.IsZero() && other.FirstTime.Before(s.FirstTime)) { + s.FirstTime = other.FirstTime + } + s.Requests = addInt64Slices(s.Requests, other.Requests) + s.Gets = addInt64Slices(s.Gets, other.Gets) + s.Puts = addInt64Slices(s.Puts, other.Puts) + s.Lists = addInt64Slices(s.Lists, other.Lists) + s.Errors = addInt64Slices(s.Errors, other.Errors) + s.Errors4xx = addInt64Slices(s.Errors4xx, other.Errors4xx) + s.Errors5xx = addInt64Slices(s.Errors5xx, other.Errors5xx) + s.BytesIn = addInt64Slices(s.BytesIn, other.BytesIn) + s.BytesOut = addInt64Slices(s.BytesOut, other.BytesOut) +} + +// BucketMetrics holds all data for one bucket across the available time +// windows. LastMinute is always populated and aggregated per-op (no +// segments). LastHour and LastDay are populated only when +// MetricsHourStats / MetricsDayStats are requested, and carry segmented +// time-series. +type BucketMetrics struct { + // LastMinute holds per-S3-operation aggregated stats over the last + // minute. Always present. Map key is the operation name. + LastMinute map[string]BucketOpStat `json:"lastMinute,omitempty"` + + // LastHour holds 1-minute segmented stats over the last hour. + // Populated only when MetricsHourStats is requested. + LastHour *SegmentedBucketStats `json:"lastHour,omitempty"` + + // LastDay holds 15-minute segmented stats over the last day. + // Populated only when MetricsDayStats is requested. + LastDay *SegmentedBucketStats `json:"lastDay,omitempty"` +} + +// Merge folds other into m. Per-op LastMinute entries are summed; segmented +// windows are right-aligned and summed. +func (m *BucketMetrics) Merge(other *BucketMetrics) { + if other == nil { + return + } + for op, oStat := range other.LastMinute { + if m.LastMinute == nil { + m.LastMinute = make(map[string]BucketOpStat, len(other.LastMinute)) + } + aStat := m.LastMinute[op] + aStat.Requests += oStat.Requests + aStat.Errors4xx += oStat.Errors4xx + aStat.Errors5xx += oStat.Errors5xx + aStat.BytesIn += oStat.BytesIn + aStat.BytesOut += oStat.BytesOut + m.LastMinute[op] = aStat + } + if other.LastHour != nil { + if m.LastHour == nil { + m.LastHour = &SegmentedBucketStats{} + } + m.LastHour.Merge(other.LastHour) + } + if other.LastDay != nil { + if m.LastDay == nil { + m.LastDay = &SegmentedBucketStats{} + } + m.LastDay.Merge(other.LastDay) + } +} + +// BucketAPIMetrics holds per-bucket API statistics. Each bucket's entry +// carries the populated windows; the windows themselves live on +// BucketMetrics so a bucket can carry both LastHour and LastDay at once. +type BucketAPIMetrics struct { + // N is the number of nodes that reported data. + N int `json:"n"` + + // Buckets maps bucket name to its consolidated metrics. + Buckets map[string]BucketMetrics `json:"buckets,omitempty"` +} + +// Merge folds other into b by merging each per-bucket entry. +func (b *BucketAPIMetrics) Merge(other *BucketAPIMetrics) { + if other == nil { + return + } + b.N += other.N + for bucket, ob := range other.Buckets { + if b.Buckets == nil { + b.Buckets = make(map[string]BucketMetrics, len(other.Buckets)) + } + ab := b.Buckets[bucket] + ab.Merge(&ob) + b.Buckets[bucket] = ab + } +} + +// addInt64Slices returns the element-wise sum of a and b, right-aligned so +// that slot index len-1 (most recent) always corresponds between both. +// The longer slice is used as the base; if b is longer, a copy is made so +// the caller's backing array is not mutated. +func addInt64Slices(a, b []int64) []int64 { + if len(b) > len(a) { + tmp := make([]int64, len(b)) + copy(tmp, b) + a, b = tmp, a + } + offset := len(a) - len(b) + for i, v := range b { + a[offset+i] += v + } + return a +} diff --git a/metrics_gen.go b/metrics_gen.go index ccc8d4df..8edad332 100644 --- a/metrics_gen.go +++ b/metrics_gen.go @@ -2140,7 +2140,7 @@ func (z *BatchJobMetrics) Msgsize() (s int) { } // DecodeMsg implements msgp.Decodable -func (z *CPUMetrics) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *BucketAPIMetrics) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -2149,7 +2149,7 @@ func (z *CPUMetrics) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint32 /* 17 bits */ + var zb0001Mask uint8 /* 1 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -2159,217 +2159,320 @@ func (z *CPUMetrics) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "collected": - z.CollectedAt, err = dc.ReadTimeUTC() + case "n": + z.N, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "N") return } - case "nodes": - z.Nodes, err = dc.ReadInt() + case "buckets": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Nodes") + err = msgp.WrapError(err, "Buckets") return } - case "timesStat2": - err = (*cpuTimesStat)(&z.TimesStat).DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "TimesStat") - return + if z.Buckets == nil { + z.Buckets = make(map[string]BucketMetrics, zb0002) + } else if len(z.Buckets) > 0 { + clear(z.Buckets) } - case "timesCount": - z.TimesCount, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "TimesCount") - return + for zb0002 > 0 { + zb0002-- + var za0001 string + za0001, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + var za0002 BucketMetrics + err = za0002.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "Buckets", za0001) + return + } + z.Buckets[za0001] = za0002 } zb0001Mask |= 0x1 - case "loadStat2": - err = (*loadAvgStat)(&z.LoadStat).DecodeMsg(dc) + default: + err = dc.Skip() if err != nil { - err = msgp.WrapError(err, "LoadStat") + err = msgp.WrapError(err) return } - case "loadCount": - z.LoadStatCount, err = dc.ReadInt() + } + } + // Clear omitted fields. + if (zb0001Mask & 0x1) == 0 { + z.Buckets = nil + } + + return +} + +// EncodeMsg implements msgp.Encodable +func (z *BucketAPIMetrics) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(2) + var zb0001Mask uint8 /* 2 bits */ + _ = zb0001Mask + if z.Buckets == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "n" + err = en.Append(0xa1, 0x6e) + if err != nil { + return + } + err = en.WriteInt(z.N) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "buckets" + err = en.Append(0xa7, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) if err != nil { - err = msgp.WrapError(err, "LoadStatCount") return } - zb0001Mask |= 0x2 - case "cpuCount": - z.CPUCount, err = dc.ReadInt() + err = en.WriteMapHeader(uint32(len(z.Buckets))) if err != nil { - err = msgp.WrapError(err, "CPUCount") + err = msgp.WrapError(err, "Buckets") return } - zb0001Mask |= 0x4 - case "lastDay": - if dc.IsNil() { - err = dc.ReadNil() + for za0001, za0002 := range z.Buckets { + err = en.WriteString(za0001) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Buckets") return } - z.LastDay = nil - } else { - if z.LastDay == nil { - z.LastDay = new(SegmentedCPUMetrics) - } - err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).DecodeMsg(dc) + err = za0002.EncodeMsg(en) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Buckets", za0001) return } } - zb0001Mask |= 0x8 - case "lastHour": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "LastHour") - return - } - z.LastHour = nil - } else { - if z.LastHour == nil { - z.LastHour = new(SegmentedCPUMetrics) - } - err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).DecodeMsg(dc) + } + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *BucketAPIMetrics) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(2) + var zb0001Mask uint8 /* 2 bits */ + _ = zb0001Mask + if z.Buckets == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // string "n" + o = append(o, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "buckets" + o = append(o, 0xa7, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.Buckets))) + for za0001, za0002 := range z.Buckets { + o = msgp.AppendString(o, za0001) + o, err = za0002.MarshalMsg(o) if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "Buckets", za0001) return } } - zb0001Mask |= 0x10 - case "cpu_by_model": + } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *BucketAPIMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 1 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + case "buckets": var zb0002 uint32 - zb0002, err = dc.ReadMapHeader() + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "CPUByModel") + err = msgp.WrapError(err, "Buckets") return } - if z.CPUByModel == nil { - z.CPUByModel = make(map[string]int, zb0002) - } else if len(z.CPUByModel) > 0 { - clear(z.CPUByModel) + if z.Buckets == nil { + z.Buckets = make(map[string]BucketMetrics, zb0002) + } else if len(z.Buckets) > 0 { + clear(z.Buckets) } for zb0002 > 0 { + var za0002 BucketMetrics zb0002-- var za0001 string - za0001, err = dc.ReadString() + za0001, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "CPUByModel") + err = msgp.WrapError(err, "Buckets") return } - var za0002 int - za0002, err = dc.ReadInt() + bts, err = za0002.UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "CPUByModel", za0001) + err = msgp.WrapError(err, "Buckets", za0001) return } - z.CPUByModel[za0001] = za0002 - } - zb0001Mask |= 0x20 - case "total_mhz": - z.TotalMhz, err = dc.ReadFloat64() - if err != nil { - err = msgp.WrapError(err, "TotalMhz") - return + z.Buckets[za0001] = za0002 } - zb0001Mask |= 0x40 - case "total_cores": - z.TotalCores, err = dc.ReadInt() + zb0001Mask |= 0x1 + default: + bts, err = msgp.Skip(bts) if err != nil { - err = msgp.WrapError(err, "TotalCores") + err = msgp.WrapError(err) return } - zb0001Mask |= 0x80 - case "total_cache_size": - z.TotalCacheSize, err = dc.ReadInt64() + } + } + // Clear omitted fields. + if (zb0001Mask & 0x1) == 0 { + z.Buckets = nil + } + + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *BucketAPIMetrics) Msgsize() (s int) { + s = 1 + 2 + msgp.IntSize + 8 + msgp.MapHeaderSize + if z.Buckets != nil { + for za0001, za0002 := range z.Buckets { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + za0002.Msgsize() + } + } + return +} + +// DecodeMsg implements msgp.Decodable +func (z *BucketMetrics) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "lastMinute": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "TotalCacheSize") + err = msgp.WrapError(err, "LastMinute") return } - zb0001Mask |= 0x100 - case "freq_stats_count": - z.FreqStatsCount, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "FreqStatsCount") - return - } - zb0001Mask |= 0x200 - case "governor_freq": - var zb0003 uint32 - zb0003, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err, "GovernorFreq") - return - } - if z.GovernorFreq == nil { - z.GovernorFreq = make(map[string]int, zb0003) - } else if len(z.GovernorFreq) > 0 { - clear(z.GovernorFreq) + if z.LastMinute == nil { + z.LastMinute = make(map[string]BucketOpStat, zb0002) + } else if len(z.LastMinute) > 0 { + clear(z.LastMinute) } - for zb0003 > 0 { - zb0003-- - var za0003 string - za0003, err = dc.ReadString() + for zb0002 > 0 { + zb0002-- + var za0001 string + za0001, err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "GovernorFreq") + err = msgp.WrapError(err, "LastMinute") return } - var za0004 int - za0004, err = dc.ReadInt() + var za0002 BucketOpStat + err = za0002.DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "GovernorFreq", za0003) + err = msgp.WrapError(err, "LastMinute", za0001) return } - z.GovernorFreq[za0003] = za0004 - } - zb0001Mask |= 0x400 - case "total_current_freq": - z.TotalCurrentFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "TotalCurrentFreq") - return - } - zb0001Mask |= 0x800 - case "total_scaling_current_freq": - z.TotalScalingCurrentFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "TotalScalingCurrentFreq") - return - } - zb0001Mask |= 0x1000 - case "min_freq": - z.MinCPUInfoFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "MinCPUInfoFreq") - return - } - zb0001Mask |= 0x2000 - case "max_freq": - z.MaxCPUInfoFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "MaxCPUInfoFreq") - return + z.LastMinute[za0001] = za0002 } - zb0001Mask |= 0x4000 - case "min_scaling_freq": - z.MinScalingFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "MinScalingFreq") - return + zb0001Mask |= 0x1 + case "lastHour": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + z.LastHour = nil + } else { + if z.LastHour == nil { + z.LastHour = new(SegmentedBucketStats) + } + err = z.LastHour.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } } - zb0001Mask |= 0x8000 - case "max_scaling_freq": - z.MaxScalingFreq, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "MaxScalingFreq") - return + zb0001Mask |= 0x2 + case "lastDay": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedBucketStats) + } + err = z.LastDay.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } - zb0001Mask |= 0x10000 + zb0001Mask |= 0x4 default: err = dc.Skip() if err != nil { @@ -2379,240 +2482,71 @@ func (z *CPUMetrics) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0x1ffff { + if zb0001Mask != 0x7 { if (zb0001Mask & 0x1) == 0 { - z.TimesCount = 0 + z.LastMinute = nil } if (zb0001Mask & 0x2) == 0 { - z.LoadStatCount = 0 + z.LastHour = nil } if (zb0001Mask & 0x4) == 0 { - z.CPUCount = 0 - } - if (zb0001Mask & 0x8) == 0 { z.LastDay = nil } - if (zb0001Mask & 0x10) == 0 { - z.LastHour = nil - } - if (zb0001Mask & 0x20) == 0 { - z.CPUByModel = nil - } - if (zb0001Mask & 0x40) == 0 { - z.TotalMhz = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.TotalCores = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.TotalCacheSize = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.FreqStatsCount = 0 - } - if (zb0001Mask & 0x400) == 0 { - z.GovernorFreq = nil - } - if (zb0001Mask & 0x800) == 0 { - z.TotalCurrentFreq = 0 - } - if (zb0001Mask & 0x1000) == 0 { - z.TotalScalingCurrentFreq = 0 - } - if (zb0001Mask & 0x2000) == 0 { - z.MinCPUInfoFreq = 0 - } - if (zb0001Mask & 0x4000) == 0 { - z.MaxCPUInfoFreq = 0 - } - if (zb0001Mask & 0x8000) == 0 { - z.MinScalingFreq = 0 - } - if (zb0001Mask & 0x10000) == 0 { - z.MaxScalingFreq = 0 - } } return } // EncodeMsg implements msgp.Encodable -func (z *CPUMetrics) EncodeMsg(en *msgp.Writer) (err error) { +func (z *BucketMetrics) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(21) - var zb0001Mask uint32 /* 21 bits */ + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ _ = zb0001Mask - if z.TimesCount == 0 { - zb0001Len-- - zb0001Mask |= 0x8 - } - if z.LoadStatCount == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.CPUCount == 0 { - zb0001Len-- - zb0001Mask |= 0x40 - } - if z.LastDay == nil { + if z.LastMinute == nil { zb0001Len-- - zb0001Mask |= 0x80 + zb0001Mask |= 0x1 } if z.LastHour == nil { zb0001Len-- - zb0001Mask |= 0x100 - } - if z.CPUByModel == nil { - zb0001Len-- - zb0001Mask |= 0x200 - } - if z.TotalMhz == 0 { - zb0001Len-- - zb0001Mask |= 0x400 - } - if z.TotalCores == 0 { - zb0001Len-- - zb0001Mask |= 0x800 - } - if z.TotalCacheSize == 0 { - zb0001Len-- - zb0001Mask |= 0x1000 - } - if z.FreqStatsCount == 0 { - zb0001Len-- - zb0001Mask |= 0x2000 - } - if z.GovernorFreq == nil { - zb0001Len-- - zb0001Mask |= 0x4000 - } - if z.TotalCurrentFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x8000 - } - if z.TotalScalingCurrentFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x10000 - } - if z.MinCPUInfoFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x20000 - } - if z.MaxCPUInfoFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x40000 - } - if z.MinScalingFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x80000 + zb0001Mask |= 0x2 } - if z.MaxScalingFreq == 0 { + if z.LastDay == nil { zb0001Len-- - zb0001Mask |= 0x100000 + zb0001Mask |= 0x4 } // variable map header, size zb0001Len - err = en.WriteMapHeader(zb0001Len) + err = en.Append(0x80 | uint8(zb0001Len)) if err != nil { return } // skip if no fields are to be emitted if zb0001Len != 0 { - // write "collected" - err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteTime(z.CollectedAt) - if err != nil { - err = msgp.WrapError(err, "CollectedAt") - return - } - // write "nodes" - err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.Nodes) - if err != nil { - err = msgp.WrapError(err, "Nodes") - return - } - // write "timesStat2" - err = en.Append(0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x32) - if err != nil { - return - } - err = (*cpuTimesStat)(&z.TimesStat).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "TimesStat") - return - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "timesCount" - err = en.Append(0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteInt(z.TimesCount) - if err != nil { - err = msgp.WrapError(err, "TimesCount") - return - } - } - // write "loadStat2" - err = en.Append(0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x32) - if err != nil { - return - } - err = (*loadAvgStat)(&z.LoadStat).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LoadStat") - return - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "loadCount" - err = en.Append(0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteInt(z.LoadStatCount) - if err != nil { - err = msgp.WrapError(err, "LoadStatCount") - return - } - } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "cpuCount" - err = en.Append(0xa8, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteInt(z.CPUCount) + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "lastMinute" + err = en.Append(0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65) if err != nil { - err = msgp.WrapError(err, "CPUCount") return } - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "lastDay" - err = en.Append(0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) + err = en.WriteMapHeader(uint32(len(z.LastMinute))) if err != nil { + err = msgp.WrapError(err, "LastMinute") return } - if z.LastDay == nil { - err = en.WriteNil() + for za0001, za0002 := range z.LastMinute { + err = en.WriteString(za0001) if err != nil { + err = msgp.WrapError(err, "LastMinute") return } - } else { - err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).EncodeMsg(en) + err = za0002.EncodeMsg(en) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "LastMinute", za0001) return } } } - if (zb0001Mask & 0x100) == 0 { // if not omitted + if (zb0001Mask & 0x2) == 0 { // if not omitted // write "lastHour" err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) if err != nil { @@ -2624,178 +2558,401 @@ func (z *CPUMetrics) EncodeMsg(en *msgp.Writer) (err error) { return } } else { - err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).EncodeMsg(en) + err = z.LastHour.EncodeMsg(en) if err != nil { err = msgp.WrapError(err, "LastHour") return } } } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "cpu_by_model" - err = en.Append(0xac, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c) - if err != nil { - return - } - err = en.WriteMapHeader(uint32(len(z.CPUByModel))) + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "lastDay" + err = en.Append(0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) if err != nil { - err = msgp.WrapError(err, "CPUByModel") return } - for za0001, za0002 := range z.CPUByModel { - err = en.WriteString(za0001) + if z.LastDay == nil { + err = en.WriteNil() if err != nil { - err = msgp.WrapError(err, "CPUByModel") return } - err = en.WriteInt(za0002) + } else { + err = z.LastDay.EncodeMsg(en) if err != nil { - err = msgp.WrapError(err, "CPUByModel", za0001) + err = msgp.WrapError(err, "LastDay") return } } } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "total_mhz" - err = en.Append(0xa9, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x68, 0x7a) - if err != nil { - return - } - err = en.WriteFloat64(z.TotalMhz) - if err != nil { - err = msgp.WrapError(err, "TotalMhz") - return + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *BucketMetrics) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + if z.LastMinute == nil { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.LastHour == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.LastDay == nil { + zb0001Len-- + zb0001Mask |= 0x4 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "lastMinute" + o = append(o, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65) + o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute))) + for za0001, za0002 := range z.LastMinute { + o = msgp.AppendString(o, za0001) + o, err = za0002.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastMinute", za0001) + return + } } } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // write "total_cores" - err = en.Append(0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.TotalCores) - if err != nil { - err = msgp.WrapError(err, "TotalCores") - return + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "lastHour" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) + if z.LastHour == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.LastHour.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } } } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "total_cache_size" - err = en.Append(0xb0, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65) - if err != nil { - return - } - err = en.WriteInt64(z.TotalCacheSize) - if err != nil { - err = msgp.WrapError(err, "TotalCacheSize") - return + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "lastDay" + o = append(o, 0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) + if z.LastDay == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.LastDay.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "freq_stats_count" - err = en.Append(0xb0, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteInt(z.FreqStatsCount) - if err != nil { - err = msgp.WrapError(err, "FreqStatsCount") - return - } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *BucketMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // write "governor_freq" - err = en.Append(0xad, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71) + switch msgp.UnsafeString(field) { + case "lastMinute": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { + err = msgp.WrapError(err, "LastMinute") return } - err = en.WriteMapHeader(uint32(len(z.GovernorFreq))) - if err != nil { - err = msgp.WrapError(err, "GovernorFreq") - return + if z.LastMinute == nil { + z.LastMinute = make(map[string]BucketOpStat, zb0002) + } else if len(z.LastMinute) > 0 { + clear(z.LastMinute) } - for za0003, za0004 := range z.GovernorFreq { - err = en.WriteString(za0003) + for zb0002 > 0 { + var za0002 BucketOpStat + zb0002-- + var za0001 string + za0001, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "GovernorFreq") + err = msgp.WrapError(err, "LastMinute") return } - err = en.WriteInt(za0004) + bts, err = za0002.UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "GovernorFreq", za0003) + err = msgp.WrapError(err, "LastMinute", za0001) return } + z.LastMinute[za0001] = za0002 } - } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // write "total_current_freq" - err = en.Append(0xb2, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) - if err != nil { - return - } - err = en.WriteUint64(z.TotalCurrentFreq) - if err != nil { - err = msgp.WrapError(err, "TotalCurrentFreq") - return - } - } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // write "total_scaling_current_freq" - err = en.Append(0xba, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) + zb0001Mask |= 0x1 + case "lastHour": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastHour = nil + } else { + if z.LastHour == nil { + z.LastHour = new(SegmentedBucketStats) + } + bts, err = z.LastHour.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + } + zb0001Mask |= 0x2 + case "lastDay": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedBucketStats) + } + bts, err = z.LastDay.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } + zb0001Mask |= 0x4 + default: + bts, err = msgp.Skip(bts) if err != nil { + err = msgp.WrapError(err) return } - err = en.WriteUint64(z.TotalScalingCurrentFreq) + } + } + // Clear omitted fields. + if zb0001Mask != 0x7 { + if (zb0001Mask & 0x1) == 0 { + z.LastMinute = nil + } + if (zb0001Mask & 0x2) == 0 { + z.LastHour = nil + } + if (zb0001Mask & 0x4) == 0 { + z.LastDay = nil + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *BucketMetrics) Msgsize() (s int) { + s = 1 + 11 + msgp.MapHeaderSize + if z.LastMinute != nil { + for za0001, za0002 := range z.LastMinute { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + za0002.Msgsize() + } + } + s += 9 + if z.LastHour == nil { + s += msgp.NilSize + } else { + s += z.LastHour.Msgsize() + } + s += 8 + if z.LastDay == nil { + s += msgp.NilSize + } else { + s += z.LastDay.Msgsize() + } + return +} + +// DecodeMsg implements msgp.Decodable +func (z *BucketOpStat) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 4 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "requests": + z.Requests, err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "TotalScalingCurrentFreq") + err = msgp.WrapError(err, "Requests") + return + } + case "errors4xx": + z.Errors4xx, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Errors4xx") + return + } + zb0001Mask |= 0x1 + case "errors5xx": + z.Errors5xx, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Errors5xx") + return + } + zb0001Mask |= 0x2 + case "bytesIn": + z.BytesIn, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "BytesIn") + return + } + zb0001Mask |= 0x4 + case "bytesOut": + z.BytesOut, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "BytesOut") + return + } + zb0001Mask |= 0x8 + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) return } } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // write "min_freq" - err = en.Append(0xa8, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71) + } + // Clear omitted fields. + if zb0001Mask != 0xf { + if (zb0001Mask & 0x1) == 0 { + z.Errors4xx = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.Errors5xx = 0 + } + if (zb0001Mask & 0x4) == 0 { + z.BytesIn = 0 + } + if (zb0001Mask & 0x8) == 0 { + z.BytesOut = 0 + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *BucketOpStat) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(5) + var zb0001Mask uint8 /* 5 bits */ + _ = zb0001Mask + if z.Errors4xx == 0 { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.Errors5xx == 0 { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.BytesIn == 0 { + zb0001Len-- + zb0001Mask |= 0x8 + } + if z.BytesOut == 0 { + zb0001Len-- + zb0001Mask |= 0x10 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "requests" + err = en.Append(0xa8, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.Requests) + if err != nil { + err = msgp.WrapError(err, "Requests") + return + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "errors4xx" + err = en.Append(0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x34, 0x78, 0x78) if err != nil { return } - err = en.WriteUint64(z.MinCPUInfoFreq) + err = en.WriteInt64(z.Errors4xx) if err != nil { - err = msgp.WrapError(err, "MinCPUInfoFreq") + err = msgp.WrapError(err, "Errors4xx") return } } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // write "max_freq" - err = en.Append(0xa8, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x65, 0x71) + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "errors5xx" + err = en.Append(0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x35, 0x78, 0x78) if err != nil { return } - err = en.WriteUint64(z.MaxCPUInfoFreq) + err = en.WriteInt64(z.Errors5xx) if err != nil { - err = msgp.WrapError(err, "MaxCPUInfoFreq") + err = msgp.WrapError(err, "Errors5xx") return } } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // write "min_scaling_freq" - err = en.Append(0xb0, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "bytesIn" + err = en.Append(0xa7, 0x62, 0x79, 0x74, 0x65, 0x73, 0x49, 0x6e) if err != nil { return } - err = en.WriteUint64(z.MinScalingFreq) + err = en.WriteUint64(z.BytesIn) if err != nil { - err = msgp.WrapError(err, "MinScalingFreq") + err = msgp.WrapError(err, "BytesIn") return } } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // write "max_scaling_freq" - err = en.Append(0xb0, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "bytesOut" + err = en.Append(0xa8, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x75, 0x74) if err != nil { return } - err = en.WriteUint64(z.MaxScalingFreq) + err = en.WriteUint64(z.BytesOut) if err != nil { - err = msgp.WrapError(err, "MaxScalingFreq") + err = msgp.WrapError(err, "BytesOut") return } } @@ -2804,224 +2961,153 @@ func (z *CPUMetrics) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *CPUMetrics) MarshalMsg(b []byte) (o []byte, err error) { +func (z *BucketOpStat) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(21) - var zb0001Mask uint32 /* 21 bits */ + zb0001Len := uint32(5) + var zb0001Mask uint8 /* 5 bits */ _ = zb0001Mask - if z.TimesCount == 0 { - zb0001Len-- - zb0001Mask |= 0x8 - } - if z.LoadStatCount == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.CPUCount == 0 { + if z.Errors4xx == 0 { zb0001Len-- - zb0001Mask |= 0x40 + zb0001Mask |= 0x2 } - if z.LastDay == nil { + if z.Errors5xx == 0 { zb0001Len-- - zb0001Mask |= 0x80 + zb0001Mask |= 0x4 } - if z.LastHour == nil { + if z.BytesIn == 0 { zb0001Len-- - zb0001Mask |= 0x100 + zb0001Mask |= 0x8 } - if z.CPUByModel == nil { + if z.BytesOut == 0 { zb0001Len-- - zb0001Mask |= 0x200 + zb0001Mask |= 0x10 } - if z.TotalMhz == 0 { - zb0001Len-- - zb0001Mask |= 0x400 + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // string "requests" + o = append(o, 0xa8, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73) + o = msgp.AppendInt64(o, z.Requests) + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "errors4xx" + o = append(o, 0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x34, 0x78, 0x78) + o = msgp.AppendInt64(o, z.Errors4xx) + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "errors5xx" + o = append(o, 0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x35, 0x78, 0x78) + o = msgp.AppendInt64(o, z.Errors5xx) + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // string "bytesIn" + o = append(o, 0xa7, 0x62, 0x79, 0x74, 0x65, 0x73, 0x49, 0x6e) + o = msgp.AppendUint64(o, z.BytesIn) + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "bytesOut" + o = append(o, 0xa8, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x75, 0x74) + o = msgp.AppendUint64(o, z.BytesOut) + } } - if z.TotalCores == 0 { - zb0001Len-- - zb0001Mask |= 0x800 + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *BucketOpStat) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return } - if z.TotalCacheSize == 0 { - zb0001Len-- - zb0001Mask |= 0x1000 - } - if z.FreqStatsCount == 0 { - zb0001Len-- - zb0001Mask |= 0x2000 - } - if z.GovernorFreq == nil { - zb0001Len-- - zb0001Mask |= 0x4000 - } - if z.TotalCurrentFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x8000 - } - if z.TotalScalingCurrentFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x10000 - } - if z.MinCPUInfoFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x20000 - } - if z.MaxCPUInfoFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x40000 - } - if z.MinScalingFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x80000 - } - if z.MaxScalingFreq == 0 { - zb0001Len-- - zb0001Mask |= 0x100000 - } - // variable map header, size zb0001Len - o = msgp.AppendMapHeader(o, zb0001Len) - - // skip if no fields are to be emitted - if zb0001Len != 0 { - // string "collected" - o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendTime(o, z.CollectedAt) - // string "nodes" - o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - o = msgp.AppendInt(o, z.Nodes) - // string "timesStat2" - o = append(o, 0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x32) - o, err = (*cpuTimesStat)(&z.TimesStat).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "TimesStat") - return - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "timesCount" - o = append(o, 0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendInt(o, z.TimesCount) - } - // string "loadStat2" - o = append(o, 0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x32) - o, err = (*loadAvgStat)(&z.LoadStat).MarshalMsg(o) + var zb0001Mask uint8 /* 4 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) if err != nil { - err = msgp.WrapError(err, "LoadStat") + err = msgp.WrapError(err) return } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "loadCount" - o = append(o, 0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendInt(o, z.LoadStatCount) - } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "cpuCount" - o = append(o, 0xa8, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendInt(o, z.CPUCount) - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "lastDay" - o = append(o, 0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) - if z.LastDay == nil { - o = msgp.AppendNil(o) - } else { - o, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } + switch msgp.UnsafeString(field) { + case "requests": + z.Requests, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Requests") + return } - } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "lastHour" - o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) - if z.LastHour == nil { - o = msgp.AppendNil(o) - } else { - o, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastHour") - return - } + case "errors4xx": + z.Errors4xx, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Errors4xx") + return } - } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "cpu_by_model" - o = append(o, 0xac, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c) - o = msgp.AppendMapHeader(o, uint32(len(z.CPUByModel))) - for za0001, za0002 := range z.CPUByModel { - o = msgp.AppendString(o, za0001) - o = msgp.AppendInt(o, za0002) + zb0001Mask |= 0x1 + case "errors5xx": + z.Errors5xx, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Errors5xx") + return } - } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "total_mhz" - o = append(o, 0xa9, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x68, 0x7a) - o = msgp.AppendFloat64(o, z.TotalMhz) - } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // string "total_cores" - o = append(o, 0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73) - o = msgp.AppendInt(o, z.TotalCores) - } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "total_cache_size" - o = append(o, 0xb0, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65) - o = msgp.AppendInt64(o, z.TotalCacheSize) - } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "freq_stats_count" - o = append(o, 0xb0, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendInt(o, z.FreqStatsCount) - } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // string "governor_freq" - o = append(o, 0xad, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendMapHeader(o, uint32(len(z.GovernorFreq))) - for za0003, za0004 := range z.GovernorFreq { - o = msgp.AppendString(o, za0003) - o = msgp.AppendInt(o, za0004) + zb0001Mask |= 0x2 + case "bytesIn": + z.BytesIn, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "BytesIn") + return + } + zb0001Mask |= 0x4 + case "bytesOut": + z.BytesOut, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "BytesOut") + return + } + zb0001Mask |= 0x8 + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return } } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // string "total_current_freq" - o = append(o, 0xb2, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.TotalCurrentFreq) - } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // string "total_scaling_current_freq" - o = append(o, 0xba, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.TotalScalingCurrentFreq) - } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // string "min_freq" - o = append(o, 0xa8, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.MinCPUInfoFreq) + } + // Clear omitted fields. + if zb0001Mask != 0xf { + if (zb0001Mask & 0x1) == 0 { + z.Errors4xx = 0 } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // string "max_freq" - o = append(o, 0xa8, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.MaxCPUInfoFreq) + if (zb0001Mask & 0x2) == 0 { + z.Errors5xx = 0 } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // string "min_scaling_freq" - o = append(o, 0xb0, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.MinScalingFreq) + if (zb0001Mask & 0x4) == 0 { + z.BytesIn = 0 } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // string "max_scaling_freq" - o = append(o, 0xb0, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) - o = msgp.AppendUint64(o, z.MaxScalingFreq) + if (zb0001Mask & 0x8) == 0 { + z.BytesOut = 0 } } + o = bts return } -// UnmarshalMsg implements msgp.Unmarshaler -func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *BucketOpStat) Msgsize() (s int) { + s = 1 + 9 + msgp.Int64Size + 10 + msgp.Int64Size + 10 + msgp.Int64Size + 8 + msgp.Uint64Size + 9 + msgp.Uint64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *CPUMetrics) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001, err = dc.ReadMapHeader() if err != nil { err = msgp.WrapError(err) return @@ -3030,61 +3116,62 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { _ = zb0001Mask for zb0001 > 0 { zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) + field, err = dc.ReadMapKeyPtr() if err != nil { err = msgp.WrapError(err) return } switch msgp.UnsafeString(field) { case "collected": - z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) + z.CollectedAt, err = dc.ReadTimeUTC() if err != nil { err = msgp.WrapError(err, "CollectedAt") return } case "nodes": - z.Nodes, bts, err = msgp.ReadIntBytes(bts) + z.Nodes, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "Nodes") return } case "timesStat2": - bts, err = (*cpuTimesStat)(&z.TimesStat).UnmarshalMsg(bts) + err = (*cpuTimesStat)(&z.TimesStat).DecodeMsg(dc) if err != nil { err = msgp.WrapError(err, "TimesStat") return } case "timesCount": - z.TimesCount, bts, err = msgp.ReadIntBytes(bts) + z.TimesCount, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "TimesCount") return } zb0001Mask |= 0x1 case "loadStat2": - bts, err = (*loadAvgStat)(&z.LoadStat).UnmarshalMsg(bts) + err = (*loadAvgStat)(&z.LoadStat).DecodeMsg(dc) if err != nil { err = msgp.WrapError(err, "LoadStat") return } case "loadCount": - z.LoadStatCount, bts, err = msgp.ReadIntBytes(bts) + z.LoadStatCount, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "LoadStatCount") return } zb0001Mask |= 0x2 case "cpuCount": - z.CPUCount, bts, err = msgp.ReadIntBytes(bts) + z.CPUCount, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "CPUCount") return } zb0001Mask |= 0x4 case "lastDay": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) + if dc.IsNil() { + err = dc.ReadNil() if err != nil { + err = msgp.WrapError(err, "LastDay") return } z.LastDay = nil @@ -3092,7 +3179,7 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { if z.LastDay == nil { z.LastDay = new(SegmentedCPUMetrics) } - bts, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).UnmarshalMsg(bts) + err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).DecodeMsg(dc) if err != nil { err = msgp.WrapError(err, "LastDay") return @@ -3100,9 +3187,10 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } zb0001Mask |= 0x8 case "lastHour": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) + if dc.IsNil() { + err = dc.ReadNil() if err != nil { + err = msgp.WrapError(err, "LastHour") return } z.LastHour = nil @@ -3110,7 +3198,7 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { if z.LastHour == nil { z.LastHour = new(SegmentedCPUMetrics) } - bts, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).UnmarshalMsg(bts) + err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).DecodeMsg(dc) if err != nil { err = msgp.WrapError(err, "LastHour") return @@ -3119,7 +3207,7 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { zb0001Mask |= 0x10 case "cpu_by_model": var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0002, err = dc.ReadMapHeader() if err != nil { err = msgp.WrapError(err, "CPUByModel") return @@ -3130,15 +3218,15 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { clear(z.CPUByModel) } for zb0002 > 0 { - var za0002 int zb0002-- var za0001 string - za0001, bts, err = msgp.ReadStringBytes(bts) + za0001, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "CPUByModel") return } - za0002, bts, err = msgp.ReadIntBytes(bts) + var za0002 int + za0002, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "CPUByModel", za0001) return @@ -3147,28 +3235,28 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } zb0001Mask |= 0x20 case "total_mhz": - z.TotalMhz, bts, err = msgp.ReadFloat64Bytes(bts) + z.TotalMhz, err = dc.ReadFloat64() if err != nil { err = msgp.WrapError(err, "TotalMhz") return } zb0001Mask |= 0x40 case "total_cores": - z.TotalCores, bts, err = msgp.ReadIntBytes(bts) + z.TotalCores, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "TotalCores") return } zb0001Mask |= 0x80 case "total_cache_size": - z.TotalCacheSize, bts, err = msgp.ReadInt64Bytes(bts) + z.TotalCacheSize, err = dc.ReadInt64() if err != nil { err = msgp.WrapError(err, "TotalCacheSize") return } zb0001Mask |= 0x100 case "freq_stats_count": - z.FreqStatsCount, bts, err = msgp.ReadIntBytes(bts) + z.FreqStatsCount, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "FreqStatsCount") return @@ -3176,7 +3264,7 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { zb0001Mask |= 0x200 case "governor_freq": var zb0003 uint32 - zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0003, err = dc.ReadMapHeader() if err != nil { err = msgp.WrapError(err, "GovernorFreq") return @@ -3187,15 +3275,15 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { clear(z.GovernorFreq) } for zb0003 > 0 { - var za0004 int zb0003-- var za0003 string - za0003, bts, err = msgp.ReadStringBytes(bts) + za0003, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "GovernorFreq") return } - za0004, bts, err = msgp.ReadIntBytes(bts) + var za0004 int + za0004, err = dc.ReadInt() if err != nil { err = msgp.WrapError(err, "GovernorFreq", za0003) return @@ -3204,49 +3292,49 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } zb0001Mask |= 0x400 case "total_current_freq": - z.TotalCurrentFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.TotalCurrentFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "TotalCurrentFreq") return } zb0001Mask |= 0x800 case "total_scaling_current_freq": - z.TotalScalingCurrentFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.TotalScalingCurrentFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "TotalScalingCurrentFreq") return } zb0001Mask |= 0x1000 case "min_freq": - z.MinCPUInfoFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.MinCPUInfoFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "MinCPUInfoFreq") return } zb0001Mask |= 0x2000 case "max_freq": - z.MaxCPUInfoFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.MaxCPUInfoFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "MaxCPUInfoFreq") return } zb0001Mask |= 0x4000 case "min_scaling_freq": - z.MinScalingFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.MinScalingFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "MinScalingFreq") return } zb0001Mask |= 0x8000 case "max_scaling_freq": - z.MaxScalingFreq, bts, err = msgp.ReadUint64Bytes(bts) + z.MaxScalingFreq, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "MaxScalingFreq") return } zb0001Mask |= 0x10000 default: - bts, err = msgp.Skip(bts) + err = dc.Skip() if err != nil { err = msgp.WrapError(err) return @@ -3307,481 +3395,592 @@ func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { z.MaxScalingFreq = 0 } } - o = bts return } -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *CPUMetrics) Msgsize() (s int) { - s = 3 + 10 + msgp.TimeSize + 6 + msgp.IntSize + 11 + (*cpuTimesStat)(&z.TimesStat).Msgsize() + 11 + msgp.IntSize + 10 + (*loadAvgStat)(&z.LoadStat).Msgsize() + 10 + msgp.IntSize + 9 + msgp.IntSize + 8 +// EncodeMsg implements msgp.Encodable +func (z *CPUMetrics) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(21) + var zb0001Mask uint32 /* 21 bits */ + _ = zb0001Mask + if z.TimesCount == 0 { + zb0001Len-- + zb0001Mask |= 0x8 + } + if z.LoadStatCount == 0 { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.CPUCount == 0 { + zb0001Len-- + zb0001Mask |= 0x40 + } if z.LastDay == nil { - s += msgp.NilSize - } else { - s += (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).Msgsize() + zb0001Len-- + zb0001Mask |= 0x80 } - s += 9 if z.LastHour == nil { - s += msgp.NilSize - } else { - s += (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).Msgsize() + zb0001Len-- + zb0001Mask |= 0x100 } - s += 13 + msgp.MapHeaderSize - if z.CPUByModel != nil { - for za0001, za0002 := range z.CPUByModel { - _ = za0002 - s += msgp.StringPrefixSize + len(za0001) + msgp.IntSize - } + if z.CPUByModel == nil { + zb0001Len-- + zb0001Mask |= 0x200 } - s += 10 + msgp.Float64Size + 12 + msgp.IntSize + 17 + msgp.Int64Size + 17 + msgp.IntSize + 14 + msgp.MapHeaderSize - if z.GovernorFreq != nil { - for za0003, za0004 := range z.GovernorFreq { - _ = za0004 - s += msgp.StringPrefixSize + len(za0003) + msgp.IntSize - } + if z.TotalMhz == 0 { + zb0001Len-- + zb0001Mask |= 0x400 } - s += 19 + msgp.Uint64Size + 27 + msgp.Uint64Size + 9 + msgp.Uint64Size + 9 + msgp.Uint64Size + 17 + msgp.Uint64Size + 17 + msgp.Uint64Size - return -} - -// DecodeMsg implements msgp.Decodable -func (z *CPUSegment) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() + if z.TotalCores == 0 { + zb0001Len-- + zb0001Mask |= 0x800 + } + if z.TotalCacheSize == 0 { + zb0001Len-- + zb0001Mask |= 0x1000 + } + if z.FreqStatsCount == 0 { + zb0001Len-- + zb0001Mask |= 0x2000 + } + if z.GovernorFreq == nil { + zb0001Len-- + zb0001Mask |= 0x4000 + } + if z.TotalCurrentFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x8000 + } + if z.TotalScalingCurrentFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x10000 + } + if z.MinCPUInfoFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x20000 + } + if z.MaxCPUInfoFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x40000 + } + if z.MinScalingFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x80000 + } + if z.MaxScalingFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x100000 + } + // variable map header, size zb0001Len + err = en.WriteMapHeader(zb0001Len) if err != nil { - err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 10 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "collected" + err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) if err != nil { - err = msgp.WrapError(err) return } - switch msgp.UnsafeString(field) { - case "user": - z.User, err = dc.ReadFloat64() - if err != nil { - err = msgp.WrapError(err, "User") - return - } - zb0001Mask |= 0x1 - case "system": - z.System, err = dc.ReadFloat64() + err = en.WriteTime(z.CollectedAt) + if err != nil { + err = msgp.WrapError(err, "CollectedAt") + return + } + // write "nodes" + err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.Nodes) + if err != nil { + err = msgp.WrapError(err, "Nodes") + return + } + // write "timesStat2" + err = en.Append(0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x32) + if err != nil { + return + } + err = (*cpuTimesStat)(&z.TimesStat).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "TimesStat") + return + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "timesCount" + err = en.Append(0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) if err != nil { - err = msgp.WrapError(err, "System") return } - zb0001Mask |= 0x2 - case "idle": - z.Idle, err = dc.ReadFloat64() + err = en.WriteInt(z.TimesCount) if err != nil { - err = msgp.WrapError(err, "Idle") + err = msgp.WrapError(err, "TimesCount") return } - zb0001Mask |= 0x4 - case "nice": - z.Nice, err = dc.ReadFloat64() + } + // write "loadStat2" + err = en.Append(0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x32) + if err != nil { + return + } + err = (*loadAvgStat)(&z.LoadStat).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LoadStat") + return + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "loadCount" + err = en.Append(0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) if err != nil { - err = msgp.WrapError(err, "Nice") return } - zb0001Mask |= 0x8 - case "iowait": - z.Iowait, err = dc.ReadFloat64() + err = en.WriteInt(z.LoadStatCount) if err != nil { - err = msgp.WrapError(err, "Iowait") + err = msgp.WrapError(err, "LoadStatCount") return } - zb0001Mask |= 0x10 - case "irq": - z.Irq, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // write "cpuCount" + err = en.Append(0xa8, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74) if err != nil { - err = msgp.WrapError(err, "Irq") return } - zb0001Mask |= 0x20 - case "softirq": - z.Softirq, err = dc.ReadFloat64() + err = en.WriteInt(z.CPUCount) if err != nil { - err = msgp.WrapError(err, "Softirq") + err = msgp.WrapError(err, "CPUCount") return } - zb0001Mask |= 0x40 - case "steal": - z.Steal, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "lastDay" + err = en.Append(0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) if err != nil { - err = msgp.WrapError(err, "Steal") return } - zb0001Mask |= 0x80 - case "guest": - z.Guest, err = dc.ReadFloat64() - if err != nil { - err = msgp.WrapError(err, "Guest") - return + if z.LastDay == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } - zb0001Mask |= 0x100 - case "guestNice": - z.GuestNice, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "lastHour" + err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) if err != nil { - err = msgp.WrapError(err, "GuestNice") return } - zb0001Mask |= 0x200 - case "n": - z.N, err = dc.ReadInt() + if z.LastHour == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + } + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "cpu_by_model" + err = en.Append(0xac, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c) if err != nil { - err = msgp.WrapError(err, "N") return } - default: - err = dc.Skip() + err = en.WriteMapHeader(uint32(len(z.CPUByModel))) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "CPUByModel") return } + for za0001, za0002 := range z.CPUByModel { + err = en.WriteString(za0001) + if err != nil { + err = msgp.WrapError(err, "CPUByModel") + return + } + err = en.WriteInt(za0002) + if err != nil { + err = msgp.WrapError(err, "CPUByModel", za0001) + return + } + } } - } - // Clear omitted fields. - if zb0001Mask != 0x3ff { - if (zb0001Mask & 0x1) == 0 { - z.User = 0 - } - if (zb0001Mask & 0x2) == 0 { - z.System = 0 - } - if (zb0001Mask & 0x4) == 0 { - z.Idle = 0 - } - if (zb0001Mask & 0x8) == 0 { - z.Nice = 0 - } - if (zb0001Mask & 0x10) == 0 { - z.Iowait = 0 - } - if (zb0001Mask & 0x20) == 0 { - z.Irq = 0 - } - if (zb0001Mask & 0x40) == 0 { - z.Softirq = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.Steal = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.Guest = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.GuestNice = 0 - } - } - return -} - -// EncodeMsg implements msgp.Encodable -func (z *CPUSegment) EncodeMsg(en *msgp.Writer) (err error) { - // check for omitted fields - zb0001Len := uint32(11) - var zb0001Mask uint16 /* 11 bits */ - _ = zb0001Mask - if z.User == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.System == 0 { - zb0001Len-- - zb0001Mask |= 0x2 - } - if z.Idle == 0 { - zb0001Len-- - zb0001Mask |= 0x4 - } - if z.Nice == 0 { - zb0001Len-- - zb0001Mask |= 0x8 - } - if z.Iowait == 0 { - zb0001Len-- - zb0001Mask |= 0x10 - } - if z.Irq == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.Softirq == 0 { - zb0001Len-- - zb0001Mask |= 0x40 - } - if z.Steal == 0 { - zb0001Len-- - zb0001Mask |= 0x80 - } - if z.Guest == 0 { - zb0001Len-- - zb0001Mask |= 0x100 - } - if z.GuestNice == 0 { - zb0001Len-- - zb0001Mask |= 0x200 - } - // variable map header, size zb0001Len - err = en.Append(0x80 | uint8(zb0001Len)) - if err != nil { - return - } - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "user" - err = en.Append(0xa4, 0x75, 0x73, 0x65, 0x72) + if (zb0001Mask & 0x400) == 0 { // if not omitted + // write "total_mhz" + err = en.Append(0xa9, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x68, 0x7a) if err != nil { return } - err = en.WriteFloat64(z.User) + err = en.WriteFloat64(z.TotalMhz) if err != nil { - err = msgp.WrapError(err, "User") + err = msgp.WrapError(err, "TotalMhz") return } } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "system" - err = en.Append(0xa6, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d) + if (zb0001Mask & 0x800) == 0 { // if not omitted + // write "total_cores" + err = en.Append(0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73) if err != nil { return } - err = en.WriteFloat64(z.System) + err = en.WriteInt(z.TotalCores) if err != nil { - err = msgp.WrapError(err, "System") + err = msgp.WrapError(err, "TotalCores") return } } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "idle" - err = en.Append(0xa4, 0x69, 0x64, 0x6c, 0x65) + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // write "total_cache_size" + err = en.Append(0xb0, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65) if err != nil { return } - err = en.WriteFloat64(z.Idle) + err = en.WriteInt64(z.TotalCacheSize) if err != nil { - err = msgp.WrapError(err, "Idle") + err = msgp.WrapError(err, "TotalCacheSize") return } } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "nice" - err = en.Append(0xa4, 0x6e, 0x69, 0x63, 0x65) + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // write "freq_stats_count" + err = en.Append(0xb0, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74) if err != nil { return } - err = en.WriteFloat64(z.Nice) + err = en.WriteInt(z.FreqStatsCount) if err != nil { - err = msgp.WrapError(err, "Nice") + err = msgp.WrapError(err, "FreqStatsCount") return } } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "iowait" - err = en.Append(0xa6, 0x69, 0x6f, 0x77, 0x61, 0x69, 0x74) + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // write "governor_freq" + err = en.Append(0xad, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.Iowait) + err = en.WriteMapHeader(uint32(len(z.GovernorFreq))) if err != nil { - err = msgp.WrapError(err, "Iowait") + err = msgp.WrapError(err, "GovernorFreq") return } + for za0003, za0004 := range z.GovernorFreq { + err = en.WriteString(za0003) + if err != nil { + err = msgp.WrapError(err, "GovernorFreq") + return + } + err = en.WriteInt(za0004) + if err != nil { + err = msgp.WrapError(err, "GovernorFreq", za0003) + return + } + } } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "irq" - err = en.Append(0xa3, 0x69, 0x72, 0x71) + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // write "total_current_freq" + err = en.Append(0xb2, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.Irq) + err = en.WriteUint64(z.TotalCurrentFreq) if err != nil { - err = msgp.WrapError(err, "Irq") + err = msgp.WrapError(err, "TotalCurrentFreq") return } } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "softirq" - err = en.Append(0xa7, 0x73, 0x6f, 0x66, 0x74, 0x69, 0x72, 0x71) + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // write "total_scaling_current_freq" + err = en.Append(0xba, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.Softirq) + err = en.WriteUint64(z.TotalScalingCurrentFreq) if err != nil { - err = msgp.WrapError(err, "Softirq") + err = msgp.WrapError(err, "TotalScalingCurrentFreq") return } } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "steal" - err = en.Append(0xa5, 0x73, 0x74, 0x65, 0x61, 0x6c) + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // write "min_freq" + err = en.Append(0xa8, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.Steal) + err = en.WriteUint64(z.MinCPUInfoFreq) if err != nil { - err = msgp.WrapError(err, "Steal") + err = msgp.WrapError(err, "MinCPUInfoFreq") return } } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "guest" - err = en.Append(0xa5, 0x67, 0x75, 0x65, 0x73, 0x74) + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // write "max_freq" + err = en.Append(0xa8, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.Guest) + err = en.WriteUint64(z.MaxCPUInfoFreq) if err != nil { - err = msgp.WrapError(err, "Guest") + err = msgp.WrapError(err, "MaxCPUInfoFreq") return } } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "guestNice" - err = en.Append(0xa9, 0x67, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x69, 0x63, 0x65) + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // write "min_scaling_freq" + err = en.Append(0xb0, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) if err != nil { return } - err = en.WriteFloat64(z.GuestNice) + err = en.WriteUint64(z.MinScalingFreq) if err != nil { - err = msgp.WrapError(err, "GuestNice") + err = msgp.WrapError(err, "MinScalingFreq") return } } - // write "n" - err = en.Append(0xa1, 0x6e) - if err != nil { - return - } - err = en.WriteInt(z.N) - if err != nil { - err = msgp.WrapError(err, "N") - return + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // write "max_scaling_freq" + err = en.Append(0xb0, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) + if err != nil { + return + } + err = en.WriteUint64(z.MaxScalingFreq) + if err != nil { + err = msgp.WrapError(err, "MaxScalingFreq") + return + } } } return } // MarshalMsg implements msgp.Marshaler -func (z *CPUSegment) MarshalMsg(b []byte) (o []byte, err error) { +func (z *CPUMetrics) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(11) - var zb0001Mask uint16 /* 11 bits */ + zb0001Len := uint32(21) + var zb0001Mask uint32 /* 21 bits */ _ = zb0001Mask - if z.User == 0 { + if z.TimesCount == 0 { zb0001Len-- - zb0001Mask |= 0x1 + zb0001Mask |= 0x8 } - if z.System == 0 { + if z.LoadStatCount == 0 { zb0001Len-- - zb0001Mask |= 0x2 + zb0001Mask |= 0x20 } - if z.Idle == 0 { + if z.CPUCount == 0 { zb0001Len-- - zb0001Mask |= 0x4 + zb0001Mask |= 0x40 } - if z.Nice == 0 { + if z.LastDay == nil { zb0001Len-- - zb0001Mask |= 0x8 + zb0001Mask |= 0x80 } - if z.Iowait == 0 { + if z.LastHour == nil { zb0001Len-- - zb0001Mask |= 0x10 + zb0001Mask |= 0x100 } - if z.Irq == 0 { + if z.CPUByModel == nil { zb0001Len-- - zb0001Mask |= 0x20 + zb0001Mask |= 0x200 } - if z.Softirq == 0 { + if z.TotalMhz == 0 { zb0001Len-- - zb0001Mask |= 0x40 + zb0001Mask |= 0x400 } - if z.Steal == 0 { + if z.TotalCores == 0 { zb0001Len-- - zb0001Mask |= 0x80 + zb0001Mask |= 0x800 } - if z.Guest == 0 { + if z.TotalCacheSize == 0 { zb0001Len-- - zb0001Mask |= 0x100 + zb0001Mask |= 0x1000 } - if z.GuestNice == 0 { + if z.FreqStatsCount == 0 { zb0001Len-- - zb0001Mask |= 0x200 + zb0001Mask |= 0x2000 + } + if z.GovernorFreq == nil { + zb0001Len-- + zb0001Mask |= 0x4000 + } + if z.TotalCurrentFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x8000 + } + if z.TotalScalingCurrentFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x10000 + } + if z.MinCPUInfoFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x20000 + } + if z.MaxCPUInfoFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x40000 + } + if z.MinScalingFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x80000 + } + if z.MaxScalingFreq == 0 { + zb0001Len-- + zb0001Mask |= 0x100000 } // variable map header, size zb0001Len - o = append(o, 0x80|uint8(zb0001Len)) + o = msgp.AppendMapHeader(o, zb0001Len) // skip if no fields are to be emitted if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "user" - o = append(o, 0xa4, 0x75, 0x73, 0x65, 0x72) - o = msgp.AppendFloat64(o, z.User) - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "system" - o = append(o, 0xa6, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d) - o = msgp.AppendFloat64(o, z.System) - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "idle" - o = append(o, 0xa4, 0x69, 0x64, 0x6c, 0x65) - o = msgp.AppendFloat64(o, z.Idle) + // string "collected" + o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendTime(o, z.CollectedAt) + // string "nodes" + o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + o = msgp.AppendInt(o, z.Nodes) + // string "timesStat2" + o = append(o, 0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x32) + o, err = (*cpuTimesStat)(&z.TimesStat).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "TimesStat") + return } if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "nice" - o = append(o, 0xa4, 0x6e, 0x69, 0x63, 0x65) - o = msgp.AppendFloat64(o, z.Nice) + // string "timesCount" + o = append(o, 0xaa, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendInt(o, z.TimesCount) } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "iowait" - o = append(o, 0xa6, 0x69, 0x6f, 0x77, 0x61, 0x69, 0x74) - o = msgp.AppendFloat64(o, z.Iowait) + // string "loadStat2" + o = append(o, 0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x32) + o, err = (*loadAvgStat)(&z.LoadStat).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LoadStat") + return } if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "irq" - o = append(o, 0xa3, 0x69, 0x72, 0x71) - o = msgp.AppendFloat64(o, z.Irq) + // string "loadCount" + o = append(o, 0xa9, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendInt(o, z.LoadStatCount) } if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "softirq" - o = append(o, 0xa7, 0x73, 0x6f, 0x66, 0x74, 0x69, 0x72, 0x71) - o = msgp.AppendFloat64(o, z.Softirq) + // string "cpuCount" + o = append(o, 0xa8, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendInt(o, z.CPUCount) } if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "steal" - o = append(o, 0xa5, 0x73, 0x74, 0x65, 0x61, 0x6c) - o = msgp.AppendFloat64(o, z.Steal) + // string "lastDay" + o = append(o, 0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) + if z.LastDay == nil { + o = msgp.AppendNil(o) + } else { + o, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } } if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "guest" - o = append(o, 0xa5, 0x67, 0x75, 0x65, 0x73, 0x74) - o = msgp.AppendFloat64(o, z.Guest) + // string "lastHour" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) + if z.LastHour == nil { + o = msgp.AppendNil(o) + } else { + o, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + } } if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "guestNice" - o = append(o, 0xa9, 0x67, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x69, 0x63, 0x65) - o = msgp.AppendFloat64(o, z.GuestNice) + // string "cpu_by_model" + o = append(o, 0xac, 0x63, 0x70, 0x75, 0x5f, 0x62, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c) + o = msgp.AppendMapHeader(o, uint32(len(z.CPUByModel))) + for za0001, za0002 := range z.CPUByModel { + o = msgp.AppendString(o, za0001) + o = msgp.AppendInt(o, za0002) + } + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // string "total_mhz" + o = append(o, 0xa9, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x68, 0x7a) + o = msgp.AppendFloat64(o, z.TotalMhz) + } + if (zb0001Mask & 0x800) == 0 { // if not omitted + // string "total_cores" + o = append(o, 0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x73) + o = msgp.AppendInt(o, z.TotalCores) + } + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // string "total_cache_size" + o = append(o, 0xb0, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65) + o = msgp.AppendInt64(o, z.TotalCacheSize) + } + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // string "freq_stats_count" + o = append(o, 0xb0, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendInt(o, z.FreqStatsCount) + } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // string "governor_freq" + o = append(o, 0xad, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendMapHeader(o, uint32(len(z.GovernorFreq))) + for za0003, za0004 := range z.GovernorFreq { + o = msgp.AppendString(o, za0003) + o = msgp.AppendInt(o, za0004) + } + } + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // string "total_current_freq" + o = append(o, 0xb2, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.TotalCurrentFreq) + } + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // string "total_scaling_current_freq" + o = append(o, 0xba, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.TotalScalingCurrentFreq) + } + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // string "min_freq" + o = append(o, 0xa8, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.MinCPUInfoFreq) + } + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // string "max_freq" + o = append(o, 0xa8, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.MaxCPUInfoFreq) + } + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // string "min_scaling_freq" + o = append(o, 0xb0, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.MinScalingFreq) + } + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // string "max_scaling_freq" + o = append(o, 0xb0, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x65, 0x71) + o = msgp.AppendUint64(o, z.MaxScalingFreq) } - // string "n" - o = append(o, 0xa1, 0x6e) - o = msgp.AppendInt(o, z.N) } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *CPUMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -3790,7 +3989,7 @@ func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 10 bits */ + var zb0001Mask uint32 /* 17 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -3800,82 +3999,215 @@ func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "user": - z.User, bts, err = msgp.ReadFloat64Bytes(bts) + case "collected": + z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { - err = msgp.WrapError(err, "User") + err = msgp.WrapError(err, "CollectedAt") return } - zb0001Mask |= 0x1 - case "system": - z.System, bts, err = msgp.ReadFloat64Bytes(bts) + case "nodes": + z.Nodes, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "System") + err = msgp.WrapError(err, "Nodes") return } - zb0001Mask |= 0x2 - case "idle": - z.Idle, bts, err = msgp.ReadFloat64Bytes(bts) + case "timesStat2": + bts, err = (*cpuTimesStat)(&z.TimesStat).UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "Idle") + err = msgp.WrapError(err, "TimesStat") return } - zb0001Mask |= 0x4 - case "nice": - z.Nice, bts, err = msgp.ReadFloat64Bytes(bts) + case "timesCount": + z.TimesCount, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "Nice") + err = msgp.WrapError(err, "TimesCount") return } - zb0001Mask |= 0x8 - case "iowait": - z.Iowait, bts, err = msgp.ReadFloat64Bytes(bts) + zb0001Mask |= 0x1 + case "loadStat2": + bts, err = (*loadAvgStat)(&z.LoadStat).UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "Iowait") + err = msgp.WrapError(err, "LoadStat") + return + } + case "loadCount": + z.LoadStatCount, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LoadStatCount") + return + } + zb0001Mask |= 0x2 + case "cpuCount": + z.CPUCount, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "CPUCount") return } + zb0001Mask |= 0x4 + case "lastDay": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedCPUMetrics) + } + bts, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } + zb0001Mask |= 0x8 + case "lastHour": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastHour = nil + } else { + if z.LastHour == nil { + z.LastHour = new(SegmentedCPUMetrics) + } + bts, err = (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + } zb0001Mask |= 0x10 - case "irq": - z.Irq, bts, err = msgp.ReadFloat64Bytes(bts) + case "cpu_by_model": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Irq") + err = msgp.WrapError(err, "CPUByModel") return } + if z.CPUByModel == nil { + z.CPUByModel = make(map[string]int, zb0002) + } else if len(z.CPUByModel) > 0 { + clear(z.CPUByModel) + } + for zb0002 > 0 { + var za0002 int + zb0002-- + var za0001 string + za0001, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "CPUByModel") + return + } + za0002, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "CPUByModel", za0001) + return + } + z.CPUByModel[za0001] = za0002 + } zb0001Mask |= 0x20 - case "softirq": - z.Softirq, bts, err = msgp.ReadFloat64Bytes(bts) + case "total_mhz": + z.TotalMhz, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Softirq") + err = msgp.WrapError(err, "TotalMhz") return } zb0001Mask |= 0x40 - case "steal": - z.Steal, bts, err = msgp.ReadFloat64Bytes(bts) + case "total_cores": + z.TotalCores, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "Steal") + err = msgp.WrapError(err, "TotalCores") return } zb0001Mask |= 0x80 - case "guest": - z.Guest, bts, err = msgp.ReadFloat64Bytes(bts) + case "total_cache_size": + z.TotalCacheSize, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Guest") + err = msgp.WrapError(err, "TotalCacheSize") return } zb0001Mask |= 0x100 - case "guestNice": - z.GuestNice, bts, err = msgp.ReadFloat64Bytes(bts) + case "freq_stats_count": + z.FreqStatsCount, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "GuestNice") + err = msgp.WrapError(err, "FreqStatsCount") return } zb0001Mask |= 0x200 - case "n": - z.N, bts, err = msgp.ReadIntBytes(bts) + case "governor_freq": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "GovernorFreq") + return + } + if z.GovernorFreq == nil { + z.GovernorFreq = make(map[string]int, zb0003) + } else if len(z.GovernorFreq) > 0 { + clear(z.GovernorFreq) + } + for zb0003 > 0 { + var za0004 int + zb0003-- + var za0003 string + za0003, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "GovernorFreq") + return + } + za0004, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "GovernorFreq", za0003) + return + } + z.GovernorFreq[za0003] = za0004 + } + zb0001Mask |= 0x400 + case "total_current_freq": + z.TotalCurrentFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "TotalCurrentFreq") + return + } + zb0001Mask |= 0x800 + case "total_scaling_current_freq": + z.TotalScalingCurrentFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "TotalScalingCurrentFreq") + return + } + zb0001Mask |= 0x1000 + case "min_freq": + z.MinCPUInfoFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "MinCPUInfoFreq") + return + } + zb0001Mask |= 0x2000 + case "max_freq": + z.MaxCPUInfoFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "MaxCPUInfoFreq") + return + } + zb0001Mask |= 0x4000 + case "min_scaling_freq": + z.MinScalingFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "MinScalingFreq") + return + } + zb0001Mask |= 0x8000 + case "max_scaling_freq": + z.MaxScalingFreq, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "MaxScalingFreq") return } + zb0001Mask |= 0x10000 default: bts, err = msgp.Skip(bts) if err != nil { @@ -3885,36 +4217,57 @@ func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0x3ff { + if zb0001Mask != 0x1ffff { if (zb0001Mask & 0x1) == 0 { - z.User = 0 + z.TimesCount = 0 } if (zb0001Mask & 0x2) == 0 { - z.System = 0 + z.LoadStatCount = 0 } if (zb0001Mask & 0x4) == 0 { - z.Idle = 0 + z.CPUCount = 0 } if (zb0001Mask & 0x8) == 0 { - z.Nice = 0 + z.LastDay = nil } if (zb0001Mask & 0x10) == 0 { - z.Iowait = 0 + z.LastHour = nil } if (zb0001Mask & 0x20) == 0 { - z.Irq = 0 + z.CPUByModel = nil } if (zb0001Mask & 0x40) == 0 { - z.Softirq = 0 + z.TotalMhz = 0 } if (zb0001Mask & 0x80) == 0 { - z.Steal = 0 + z.TotalCores = 0 } if (zb0001Mask & 0x100) == 0 { - z.Guest = 0 + z.TotalCacheSize = 0 } if (zb0001Mask & 0x200) == 0 { - z.GuestNice = 0 + z.FreqStatsCount = 0 + } + if (zb0001Mask & 0x400) == 0 { + z.GovernorFreq = nil + } + if (zb0001Mask & 0x800) == 0 { + z.TotalCurrentFreq = 0 + } + if (zb0001Mask & 0x1000) == 0 { + z.TotalScalingCurrentFreq = 0 + } + if (zb0001Mask & 0x2000) == 0 { + z.MinCPUInfoFreq = 0 + } + if (zb0001Mask & 0x4000) == 0 { + z.MaxCPUInfoFreq = 0 + } + if (zb0001Mask & 0x8000) == 0 { + z.MinScalingFreq = 0 + } + if (zb0001Mask & 0x10000) == 0 { + z.MaxScalingFreq = 0 } } o = bts @@ -3922,132 +4275,133 @@ func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *CPUSegment) Msgsize() (s int) { - s = 1 + 5 + msgp.Float64Size + 7 + msgp.Float64Size + 5 + msgp.Float64Size + 5 + msgp.Float64Size + 7 + msgp.Float64Size + 4 + msgp.Float64Size + 8 + msgp.Float64Size + 6 + msgp.Float64Size + 6 + msgp.Float64Size + 10 + msgp.Float64Size + 2 + msgp.IntSize - return -} - -// DecodeMsg implements msgp.Decodable -func (z *CatalogInfo) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err) - return +func (z *CPUMetrics) Msgsize() (s int) { + s = 3 + 10 + msgp.TimeSize + 6 + msgp.IntSize + 11 + (*cpuTimesStat)(&z.TimesStat).Msgsize() + 11 + msgp.IntSize + 10 + (*loadAvgStat)(&z.LoadStat).Msgsize() + 10 + msgp.IntSize + 9 + msgp.IntSize + 8 + if z.LastDay == nil { + s += msgp.NilSize + } else { + s += (*Segmented[CPUSegment, *CPUSegment])(z.LastDay).Msgsize() } - var zb0001Mask uint8 /* 4 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() - if err != nil { - err = msgp.WrapError(err) + s += 9 + if z.LastHour == nil { + s += msgp.NilSize + } else { + s += (*Segmented[CPUSegment, *CPUSegment])(z.LastHour).Msgsize() + } + s += 13 + msgp.MapHeaderSize + if z.CPUByModel != nil { + for za0001, za0002 := range z.CPUByModel { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + msgp.IntSize + } + } + s += 10 + msgp.Float64Size + 12 + msgp.IntSize + 17 + msgp.Int64Size + 17 + msgp.IntSize + 14 + msgp.MapHeaderSize + if z.GovernorFreq != nil { + for za0003, za0004 := range z.GovernorFreq { + _ = za0004 + s += msgp.StringPrefixSize + len(za0003) + msgp.IntSize + } + } + s += 19 + msgp.Uint64Size + 27 + msgp.Uint64Size + 9 + msgp.Uint64Size + 9 + msgp.Uint64Size + 17 + msgp.Uint64Size + 17 + msgp.Uint64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *CPUSegment) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint16 /* 10 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) return } switch msgp.UnsafeString(field) { - case "bucket": - z.Bucket, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - case "lastBucketScanned": - z.LastBucketScanned, err = dc.ReadString() + case "user": + z.User, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "LastBucketScanned") + err = msgp.WrapError(err, "User") return } zb0001Mask |= 0x1 - case "lastObjectScanned": - z.LastObjectScanned, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastObjectScanned") - return - } - case "lastBucketMatched": - z.LastBucketMatched, err = dc.ReadString() + case "system": + z.System, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "LastBucketMatched") + err = msgp.WrapError(err, "System") return } zb0001Mask |= 0x2 - case "lastObjectMatched": - z.LastObjectMatched, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastObjectMatched") - return - } - case "objectsScannedCount": - z.ObjectsScannedCount, err = dc.ReadUint64() + case "idle": + z.Idle, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "ObjectsScannedCount") + err = msgp.WrapError(err, "Idle") return } - case "objectsMatchedCount": - z.ObjectsMatchedCount, err = dc.ReadUint64() + zb0001Mask |= 0x4 + case "nice": + z.Nice, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "ObjectsMatchedCount") + err = msgp.WrapError(err, "Nice") return } - case "recordsWrittenCount": - z.RecordsWrittenCount, err = dc.ReadUint64() + zb0001Mask |= 0x8 + case "iowait": + z.Iowait, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "RecordsWrittenCount") + err = msgp.WrapError(err, "Iowait") return } - case "outputObjectsCount": - z.OutputObjectsCount, err = dc.ReadUint64() + zb0001Mask |= 0x10 + case "irq": + z.Irq, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "OutputObjectsCount") + err = msgp.WrapError(err, "Irq") return } - case "manifestPathBucket": - z.ManifestPathBucket, err = dc.ReadString() + zb0001Mask |= 0x20 + case "softirq": + z.Softirq, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "ManifestPathBucket") + err = msgp.WrapError(err, "Softirq") return } - case "manifestPathObject": - z.ManifestPathObject, err = dc.ReadString() + zb0001Mask |= 0x40 + case "steal": + z.Steal, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "ManifestPathObject") + err = msgp.WrapError(err, "Steal") return } - case "errorMsg": - z.ErrorMsg, err = dc.ReadString() + zb0001Mask |= 0x80 + case "guest": + z.Guest, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "ErrorMsg") + err = msgp.WrapError(err, "Guest") return } - case "lastObjectWritten": - z.LastObjectWritten, err = dc.ReadString() + zb0001Mask |= 0x100 + case "guestNice": + z.GuestNice, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "LastObjectWritten") + err = msgp.WrapError(err, "GuestNice") return } - zb0001Mask |= 0x4 - case "outputFiles": - var zb0002 uint32 - zb0002, err = dc.ReadArrayHeader() + zb0001Mask |= 0x200 + case "n": + z.N, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "OutputFiles") + err = msgp.WrapError(err, "N") return } - if cap(z.OutputFiles) >= int(zb0002) { - z.OutputFiles = (z.OutputFiles)[:zb0002] - } else { - z.OutputFiles = make([]CatalogDataFile, zb0002) - } - for za0001 := range z.OutputFiles { - err = z.OutputFiles[za0001].DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "OutputFiles", za0001) - return - } - } - zb0001Mask |= 0x8 default: err = dc.Skip() if err != nil { @@ -4057,44 +4411,86 @@ func (z *CatalogInfo) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0xf { + if zb0001Mask != 0x3ff { if (zb0001Mask & 0x1) == 0 { - z.LastBucketScanned = "" + z.User = 0 } if (zb0001Mask & 0x2) == 0 { - z.LastBucketMatched = "" + z.System = 0 } if (zb0001Mask & 0x4) == 0 { - z.LastObjectWritten = "" + z.Idle = 0 } if (zb0001Mask & 0x8) == 0 { - z.OutputFiles = nil + z.Nice = 0 + } + if (zb0001Mask & 0x10) == 0 { + z.Iowait = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Irq = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.Softirq = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.Steal = 0 + } + if (zb0001Mask & 0x100) == 0 { + z.Guest = 0 + } + if (zb0001Mask & 0x200) == 0 { + z.GuestNice = 0 } } return } // EncodeMsg implements msgp.Encodable -func (z *CatalogInfo) EncodeMsg(en *msgp.Writer) (err error) { +func (z *CPUSegment) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(14) - var zb0001Mask uint16 /* 14 bits */ + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ _ = zb0001Mask - if z.LastBucketScanned == "" { + if z.User == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.System == 0 { zb0001Len-- zb0001Mask |= 0x2 } - if z.LastBucketMatched == "" { + if z.Idle == 0 { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.Nice == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.LastObjectWritten == "" { + if z.Iowait == 0 { zb0001Len-- - zb0001Mask |= 0x1000 + zb0001Mask |= 0x10 } - if z.OutputFiles == nil { + if z.Irq == 0 { zb0001Len-- - zb0001Mask |= 0x2000 + zb0001Mask |= 0x20 + } + if z.Softirq == 0 { + zb0001Len-- + zb0001Mask |= 0x40 + } + if z.Steal == 0 { + zb0001Len-- + zb0001Mask |= 0x80 + } + if z.Guest == 0 { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.GuestNice == 0 { + zb0001Len-- + zb0001Mask |= 0x200 } // variable map header, size zb0001Len err = en.Append(0x80 | uint8(zb0001Len)) @@ -4104,256 +4500,251 @@ func (z *CatalogInfo) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - // write "bucket" - err = en.Append(0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) - if err != nil { - return - } - err = en.WriteString(z.Bucket) - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "lastBucketScanned" - err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "user" + err = en.Append(0xa4, 0x75, 0x73, 0x65, 0x72) if err != nil { return } - err = en.WriteString(z.LastBucketScanned) + err = en.WriteFloat64(z.User) if err != nil { - err = msgp.WrapError(err, "LastBucketScanned") + err = msgp.WrapError(err, "User") return } } - // write "lastObjectScanned" - err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteString(z.LastObjectScanned) - if err != nil { - err = msgp.WrapError(err, "LastObjectScanned") - return - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "lastBucketMatched" - err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "system" + err = en.Append(0xa6, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d) if err != nil { return } - err = en.WriteString(z.LastBucketMatched) + err = en.WriteFloat64(z.System) if err != nil { - err = msgp.WrapError(err, "LastBucketMatched") + err = msgp.WrapError(err, "System") return } } - // write "lastObjectMatched" - err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteString(z.LastObjectMatched) - if err != nil { - err = msgp.WrapError(err, "LastObjectMatched") - return - } - // write "objectsScannedCount" - err = en.Append(0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteUint64(z.ObjectsScannedCount) - if err != nil { - err = msgp.WrapError(err, "ObjectsScannedCount") - return - } - // write "objectsMatchedCount" - err = en.Append(0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteUint64(z.ObjectsMatchedCount) - if err != nil { - err = msgp.WrapError(err, "ObjectsMatchedCount") - return - } - // write "recordsWrittenCount" - err = en.Append(0xb3, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteUint64(z.RecordsWrittenCount) - if err != nil { - err = msgp.WrapError(err, "RecordsWrittenCount") - return - } - // write "outputObjectsCount" - err = en.Append(0xb2, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteUint64(z.OutputObjectsCount) - if err != nil { - err = msgp.WrapError(err, "OutputObjectsCount") - return - } - // write "manifestPathBucket" - err = en.Append(0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) - if err != nil { - return - } - err = en.WriteString(z.ManifestPathBucket) - if err != nil { - err = msgp.WrapError(err, "ManifestPathBucket") - return + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "idle" + err = en.Append(0xa4, 0x69, 0x64, 0x6c, 0x65) + if err != nil { + return + } + err = en.WriteFloat64(z.Idle) + if err != nil { + err = msgp.WrapError(err, "Idle") + return + } } - // write "manifestPathObject" - err = en.Append(0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) - if err != nil { - return + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "nice" + err = en.Append(0xa4, 0x6e, 0x69, 0x63, 0x65) + if err != nil { + return + } + err = en.WriteFloat64(z.Nice) + if err != nil { + err = msgp.WrapError(err, "Nice") + return + } } - err = en.WriteString(z.ManifestPathObject) - if err != nil { - err = msgp.WrapError(err, "ManifestPathObject") - return + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "iowait" + err = en.Append(0xa6, 0x69, 0x6f, 0x77, 0x61, 0x69, 0x74) + if err != nil { + return + } + err = en.WriteFloat64(z.Iowait) + if err != nil { + err = msgp.WrapError(err, "Iowait") + return + } } - // write "errorMsg" - err = en.Append(0xa8, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67) - if err != nil { - return + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "irq" + err = en.Append(0xa3, 0x69, 0x72, 0x71) + if err != nil { + return + } + err = en.WriteFloat64(z.Irq) + if err != nil { + err = msgp.WrapError(err, "Irq") + return + } } - err = en.WriteString(z.ErrorMsg) - if err != nil { - err = msgp.WrapError(err, "ErrorMsg") - return + if (zb0001Mask & 0x40) == 0 { // if not omitted + // write "softirq" + err = en.Append(0xa7, 0x73, 0x6f, 0x66, 0x74, 0x69, 0x72, 0x71) + if err != nil { + return + } + err = en.WriteFloat64(z.Softirq) + if err != nil { + err = msgp.WrapError(err, "Softirq") + return + } } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "lastObjectWritten" - err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e) + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "steal" + err = en.Append(0xa5, 0x73, 0x74, 0x65, 0x61, 0x6c) if err != nil { return } - err = en.WriteString(z.LastObjectWritten) + err = en.WriteFloat64(z.Steal) if err != nil { - err = msgp.WrapError(err, "LastObjectWritten") + err = msgp.WrapError(err, "Steal") return } } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "outputFiles" - err = en.Append(0xab, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73) + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "guest" + err = en.Append(0xa5, 0x67, 0x75, 0x65, 0x73, 0x74) if err != nil { return } - err = en.WriteArrayHeader(uint32(len(z.OutputFiles))) + err = en.WriteFloat64(z.Guest) if err != nil { - err = msgp.WrapError(err, "OutputFiles") + err = msgp.WrapError(err, "Guest") return } - for za0001 := range z.OutputFiles { - err = z.OutputFiles[za0001].EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "OutputFiles", za0001) - return - } + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "guestNice" + err = en.Append(0xa9, 0x67, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x69, 0x63, 0x65) + if err != nil { + return + } + err = en.WriteFloat64(z.GuestNice) + if err != nil { + err = msgp.WrapError(err, "GuestNice") + return } } + // write "n" + err = en.Append(0xa1, 0x6e) + if err != nil { + return + } + err = en.WriteInt(z.N) + if err != nil { + err = msgp.WrapError(err, "N") + return + } } return } // MarshalMsg implements msgp.Marshaler -func (z *CatalogInfo) MarshalMsg(b []byte) (o []byte, err error) { +func (z *CPUSegment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(14) - var zb0001Mask uint16 /* 14 bits */ + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ _ = zb0001Mask - if z.LastBucketScanned == "" { + if z.User == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.System == 0 { zb0001Len-- zb0001Mask |= 0x2 } - if z.LastBucketMatched == "" { + if z.Idle == 0 { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.Nice == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.LastObjectWritten == "" { + if z.Iowait == 0 { zb0001Len-- - zb0001Mask |= 0x1000 + zb0001Mask |= 0x10 } - if z.OutputFiles == nil { + if z.Irq == 0 { zb0001Len-- - zb0001Mask |= 0x2000 + zb0001Mask |= 0x20 + } + if z.Softirq == 0 { + zb0001Len-- + zb0001Mask |= 0x40 + } + if z.Steal == 0 { + zb0001Len-- + zb0001Mask |= 0x80 + } + if z.Guest == 0 { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.GuestNice == 0 { + zb0001Len-- + zb0001Mask |= 0x200 } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { - // string "bucket" - o = append(o, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) - o = msgp.AppendString(o, z.Bucket) + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "user" + o = append(o, 0xa4, 0x75, 0x73, 0x65, 0x72) + o = msgp.AppendFloat64(o, z.User) + } if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "lastBucketScanned" - o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) - o = msgp.AppendString(o, z.LastBucketScanned) + // string "system" + o = append(o, 0xa6, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d) + o = msgp.AppendFloat64(o, z.System) + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "idle" + o = append(o, 0xa4, 0x69, 0x64, 0x6c, 0x65) + o = msgp.AppendFloat64(o, z.Idle) } - // string "lastObjectScanned" - o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) - o = msgp.AppendString(o, z.LastObjectScanned) if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "lastBucketMatched" - o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) - o = msgp.AppendString(o, z.LastBucketMatched) + // string "nice" + o = append(o, 0xa4, 0x6e, 0x69, 0x63, 0x65) + o = msgp.AppendFloat64(o, z.Nice) } - // string "lastObjectMatched" - o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) - o = msgp.AppendString(o, z.LastObjectMatched) - // string "objectsScannedCount" - o = append(o, 0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendUint64(o, z.ObjectsScannedCount) - // string "objectsMatchedCount" - o = append(o, 0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendUint64(o, z.ObjectsMatchedCount) - // string "recordsWrittenCount" - o = append(o, 0xb3, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendUint64(o, z.RecordsWrittenCount) - // string "outputObjectsCount" - o = append(o, 0xb2, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendUint64(o, z.OutputObjectsCount) - // string "manifestPathBucket" - o = append(o, 0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) - o = msgp.AppendString(o, z.ManifestPathBucket) - // string "manifestPathObject" - o = append(o, 0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) - o = msgp.AppendString(o, z.ManifestPathObject) - // string "errorMsg" - o = append(o, 0xa8, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67) - o = msgp.AppendString(o, z.ErrorMsg) - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "lastObjectWritten" - o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e) - o = msgp.AppendString(o, z.LastObjectWritten) + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "iowait" + o = append(o, 0xa6, 0x69, 0x6f, 0x77, 0x61, 0x69, 0x74) + o = msgp.AppendFloat64(o, z.Iowait) } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "outputFiles" - o = append(o, 0xab, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73) - o = msgp.AppendArrayHeader(o, uint32(len(z.OutputFiles))) - for za0001 := range z.OutputFiles { - o, err = z.OutputFiles[za0001].MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "OutputFiles", za0001) - return - } - } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "irq" + o = append(o, 0xa3, 0x69, 0x72, 0x71) + o = msgp.AppendFloat64(o, z.Irq) + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // string "softirq" + o = append(o, 0xa7, 0x73, 0x6f, 0x66, 0x74, 0x69, 0x72, 0x71) + o = msgp.AppendFloat64(o, z.Softirq) + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // string "steal" + o = append(o, 0xa5, 0x73, 0x74, 0x65, 0x61, 0x6c) + o = msgp.AppendFloat64(o, z.Steal) + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // string "guest" + o = append(o, 0xa5, 0x67, 0x75, 0x65, 0x73, 0x74) + o = msgp.AppendFloat64(o, z.Guest) + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // string "guestNice" + o = append(o, 0xa9, 0x67, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x69, 0x63, 0x65) + o = msgp.AppendFloat64(o, z.GuestNice) } + // string "n" + o = append(o, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *CPUSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -4362,7 +4753,7 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 4 bits */ + var zb0001Mask uint16 /* 10 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -4372,82 +4763,229 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { + case "user": + z.User, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "User") + return + } + zb0001Mask |= 0x1 + case "system": + z.System, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "System") + return + } + zb0001Mask |= 0x2 + case "idle": + z.Idle, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Idle") + return + } + zb0001Mask |= 0x4 + case "nice": + z.Nice, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Nice") + return + } + zb0001Mask |= 0x8 + case "iowait": + z.Iowait, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Iowait") + return + } + zb0001Mask |= 0x10 + case "irq": + z.Irq, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Irq") + return + } + zb0001Mask |= 0x20 + case "softirq": + z.Softirq, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Softirq") + return + } + zb0001Mask |= 0x40 + case "steal": + z.Steal, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Steal") + return + } + zb0001Mask |= 0x80 + case "guest": + z.Guest, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Guest") + return + } + zb0001Mask |= 0x100 + case "guestNice": + z.GuestNice, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "GuestNice") + return + } + zb0001Mask |= 0x200 + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + // Clear omitted fields. + if zb0001Mask != 0x3ff { + if (zb0001Mask & 0x1) == 0 { + z.User = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.System = 0 + } + if (zb0001Mask & 0x4) == 0 { + z.Idle = 0 + } + if (zb0001Mask & 0x8) == 0 { + z.Nice = 0 + } + if (zb0001Mask & 0x10) == 0 { + z.Iowait = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Irq = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.Softirq = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.Steal = 0 + } + if (zb0001Mask & 0x100) == 0 { + z.Guest = 0 + } + if (zb0001Mask & 0x200) == 0 { + z.GuestNice = 0 + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *CPUSegment) Msgsize() (s int) { + s = 1 + 5 + msgp.Float64Size + 7 + msgp.Float64Size + 5 + msgp.Float64Size + 5 + msgp.Float64Size + 7 + msgp.Float64Size + 4 + msgp.Float64Size + 8 + msgp.Float64Size + 6 + msgp.Float64Size + 6 + msgp.Float64Size + 10 + msgp.Float64Size + 2 + msgp.IntSize + return +} + +// DecodeMsg implements msgp.Decodable +func (z *CatalogInfo) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 4 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { case "bucket": - z.Bucket, bts, err = msgp.ReadStringBytes(bts) + z.Bucket, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "Bucket") return } case "lastBucketScanned": - z.LastBucketScanned, bts, err = msgp.ReadStringBytes(bts) + z.LastBucketScanned, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastBucketScanned") return } zb0001Mask |= 0x1 case "lastObjectScanned": - z.LastObjectScanned, bts, err = msgp.ReadStringBytes(bts) + z.LastObjectScanned, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastObjectScanned") return } case "lastBucketMatched": - z.LastBucketMatched, bts, err = msgp.ReadStringBytes(bts) + z.LastBucketMatched, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastBucketMatched") return } zb0001Mask |= 0x2 case "lastObjectMatched": - z.LastObjectMatched, bts, err = msgp.ReadStringBytes(bts) + z.LastObjectMatched, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastObjectMatched") return } case "objectsScannedCount": - z.ObjectsScannedCount, bts, err = msgp.ReadUint64Bytes(bts) + z.ObjectsScannedCount, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "ObjectsScannedCount") return } case "objectsMatchedCount": - z.ObjectsMatchedCount, bts, err = msgp.ReadUint64Bytes(bts) + z.ObjectsMatchedCount, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "ObjectsMatchedCount") return } case "recordsWrittenCount": - z.RecordsWrittenCount, bts, err = msgp.ReadUint64Bytes(bts) + z.RecordsWrittenCount, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "RecordsWrittenCount") return } case "outputObjectsCount": - z.OutputObjectsCount, bts, err = msgp.ReadUint64Bytes(bts) + z.OutputObjectsCount, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "OutputObjectsCount") return } case "manifestPathBucket": - z.ManifestPathBucket, bts, err = msgp.ReadStringBytes(bts) + z.ManifestPathBucket, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "ManifestPathBucket") return } case "manifestPathObject": - z.ManifestPathObject, bts, err = msgp.ReadStringBytes(bts) + z.ManifestPathObject, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "ManifestPathObject") return } case "errorMsg": - z.ErrorMsg, bts, err = msgp.ReadStringBytes(bts) + z.ErrorMsg, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "ErrorMsg") return } case "lastObjectWritten": - z.LastObjectWritten, bts, err = msgp.ReadStringBytes(bts) + z.LastObjectWritten, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastObjectWritten") return @@ -4455,7 +4993,7 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { zb0001Mask |= 0x4 case "outputFiles": var zb0002 uint32 - zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) + zb0002, err = dc.ReadArrayHeader() if err != nil { err = msgp.WrapError(err, "OutputFiles") return @@ -4466,7 +5004,7 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { z.OutputFiles = make([]CatalogDataFile, zb0002) } for za0001 := range z.OutputFiles { - bts, err = z.OutputFiles[za0001].UnmarshalMsg(bts) + err = z.OutputFiles[za0001].DecodeMsg(dc) if err != nil { err = msgp.WrapError(err, "OutputFiles", za0001) return @@ -4474,7 +5012,7 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { } zb0001Mask |= 0x8 default: - bts, err = msgp.Skip(bts) + err = dc.Skip() if err != nil { err = msgp.WrapError(err) return @@ -4496,252 +5034,28 @@ func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { z.OutputFiles = nil } } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *CatalogInfo) Msgsize() (s int) { - s = 1 + 7 + msgp.StringPrefixSize + len(z.Bucket) + 18 + msgp.StringPrefixSize + len(z.LastBucketScanned) + 18 + msgp.StringPrefixSize + len(z.LastObjectScanned) + 18 + msgp.StringPrefixSize + len(z.LastBucketMatched) + 18 + msgp.StringPrefixSize + len(z.LastObjectMatched) + 20 + msgp.Uint64Size + 20 + msgp.Uint64Size + 20 + msgp.Uint64Size + 19 + msgp.Uint64Size + 19 + msgp.StringPrefixSize + len(z.ManifestPathBucket) + 19 + msgp.StringPrefixSize + len(z.ManifestPathObject) + 9 + msgp.StringPrefixSize + len(z.ErrorMsg) + 18 + msgp.StringPrefixSize + len(z.LastObjectWritten) + 12 + msgp.ArrayHeaderSize - for za0001 := range z.OutputFiles { - s += z.OutputFiles[za0001].Msgsize() - } - return -} - -// DecodeMsg implements msgp.Decodable -func (z *ConnectionStats) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err) - return - } - var zb0001Mask uint16 /* 14 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "connected": - z.Connected, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "Connected") - return - } - zb0001Mask |= 0x1 - case "disconnected": - z.Disconnected, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "Disconnected") - return - } - zb0001Mask |= 0x2 - case "reconnectCount": - z.ReconnectCount, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "ReconnectCount") - return - } - zb0001Mask |= 0x4 - case "outgoingStreams": - z.OutgoingStreams, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "OutgoingStreams") - return - } - zb0001Mask |= 0x8 - case "incomingStreams": - z.IncomingStreams, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "IncomingStreams") - return - } - zb0001Mask |= 0x10 - case "outgoingMessages": - z.OutgoingMessages, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "OutgoingMessages") - return - } - zb0001Mask |= 0x20 - case "incomingMessages": - z.IncomingMessages, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "IncomingMessages") - return - } - zb0001Mask |= 0x40 - case "outgoingBytes": - z.OutgoingBytes, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "OutgoingBytes") - return - } - zb0001Mask |= 0x80 - case "incomingBytes": - z.IncomingBytes, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "IncomingBytes") - return - } - zb0001Mask |= 0x100 - case "outQueue": - z.OutQueue, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "OutQueue") - return - } - zb0001Mask |= 0x200 - case "lastPongTime": - z.LastPongTime, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "LastPongTime") - return - } - zb0001Mask |= 0x400 - case "lastConnectTime": - z.LastConnectTime, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "LastConnectTime") - return - } - zb0001Mask |= 0x800 - case "lastPingMS": - z.LastPingMS, err = dc.ReadFloat64() - if err != nil { - err = msgp.WrapError(err, "LastPingMS") - return - } - zb0001Mask |= 0x1000 - case "maxPingDurMS": - z.MaxPingDurMS, err = dc.ReadFloat64() - if err != nil { - err = msgp.WrapError(err, "MaxPingDurMS") - return - } - zb0001Mask |= 0x2000 - default: - err = dc.Skip() - if err != nil { - err = msgp.WrapError(err) - return - } - } - } - // Clear omitted fields. - if zb0001Mask != 0x3fff { - if (zb0001Mask & 0x1) == 0 { - z.Connected = 0 - } - if (zb0001Mask & 0x2) == 0 { - z.Disconnected = 0 - } - if (zb0001Mask & 0x4) == 0 { - z.ReconnectCount = 0 - } - if (zb0001Mask & 0x8) == 0 { - z.OutgoingStreams = 0 - } - if (zb0001Mask & 0x10) == 0 { - z.IncomingStreams = 0 - } - if (zb0001Mask & 0x20) == 0 { - z.OutgoingMessages = 0 - } - if (zb0001Mask & 0x40) == 0 { - z.IncomingMessages = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.OutgoingBytes = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.IncomingBytes = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.OutQueue = 0 - } - if (zb0001Mask & 0x400) == 0 { - z.LastPongTime = (time.Time{}) - } - if (zb0001Mask & 0x800) == 0 { - z.LastConnectTime = (time.Time{}) - } - if (zb0001Mask & 0x1000) == 0 { - z.LastPingMS = 0 - } - if (zb0001Mask & 0x2000) == 0 { - z.MaxPingDurMS = 0 - } - } return } // EncodeMsg implements msgp.Encodable -func (z *ConnectionStats) EncodeMsg(en *msgp.Writer) (err error) { +func (z *CatalogInfo) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields zb0001Len := uint32(14) var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask - if z.Connected == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.Disconnected == 0 { + if z.LastBucketScanned == "" { zb0001Len-- zb0001Mask |= 0x2 } - if z.ReconnectCount == 0 { - zb0001Len-- - zb0001Mask |= 0x4 - } - if z.OutgoingStreams == 0 { + if z.LastBucketMatched == "" { zb0001Len-- zb0001Mask |= 0x8 } - if z.IncomingStreams == 0 { - zb0001Len-- - zb0001Mask |= 0x10 - } - if z.OutgoingMessages == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.IncomingMessages == 0 { - zb0001Len-- - zb0001Mask |= 0x40 - } - if z.OutgoingBytes == 0 { - zb0001Len-- - zb0001Mask |= 0x80 - } - if z.IncomingBytes == 0 { - zb0001Len-- - zb0001Mask |= 0x100 - } - if z.OutQueue == 0 { - zb0001Len-- - zb0001Mask |= 0x200 - } - if z.LastPongTime == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x400 - } - if z.LastConnectTime == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x800 - } - if z.LastPingMS == 0 { + if z.LastObjectWritten == "" { zb0001Len-- zb0001Mask |= 0x1000 } - if z.MaxPingDurMS == 0 { + if z.OutputFiles == nil { zb0001Len-- zb0001Mask |= 0x2000 } @@ -4753,322 +5067,256 @@ func (z *ConnectionStats) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "connected" - err = en.Append(0xa9, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteInt(z.Connected) - if err != nil { - err = msgp.WrapError(err, "Connected") - return - } + // write "bucket" + err = en.Append(0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Bucket) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return } if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "disconnected" - err = en.Append(0xac, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) + // write "lastBucketScanned" + err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) if err != nil { return } - err = en.WriteInt(z.Disconnected) + err = en.WriteString(z.LastBucketScanned) if err != nil { - err = msgp.WrapError(err, "Disconnected") + err = msgp.WrapError(err, "LastBucketScanned") return } } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "reconnectCount" - err = en.Append(0xae, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74) - if err != nil { - return - } - err = en.WriteInt(z.ReconnectCount) - if err != nil { - err = msgp.WrapError(err, "ReconnectCount") - return - } + // write "lastObjectScanned" + err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteString(z.LastObjectScanned) + if err != nil { + err = msgp.WrapError(err, "LastObjectScanned") + return } if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "outgoingStreams" - err = en.Append(0xaf, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) + // write "lastBucketMatched" + err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) if err != nil { return } - err = en.WriteInt(z.OutgoingStreams) + err = en.WriteString(z.LastBucketMatched) if err != nil { - err = msgp.WrapError(err, "OutgoingStreams") + err = msgp.WrapError(err, "LastBucketMatched") return } } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "incomingStreams" - err = en.Append(0xaf, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.IncomingStreams) - if err != nil { - err = msgp.WrapError(err, "IncomingStreams") - return - } + // write "lastObjectMatched" + err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) + if err != nil { + return } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "outgoingMessages" - err = en.Append(0xb0, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.OutgoingMessages) - if err != nil { - err = msgp.WrapError(err, "OutgoingMessages") - return - } + err = en.WriteString(z.LastObjectMatched) + if err != nil { + err = msgp.WrapError(err, "LastObjectMatched") + return } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "incomingMessages" - err = en.Append(0xb0, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.IncomingMessages) - if err != nil { - err = msgp.WrapError(err, "IncomingMessages") - return - } + // write "objectsScannedCount" + err = en.Append(0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) + if err != nil { + return } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "outgoingBytes" - err = en.Append(0xad, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.OutgoingBytes) - if err != nil { - err = msgp.WrapError(err, "OutgoingBytes") - return - } + err = en.WriteUint64(z.ObjectsScannedCount) + if err != nil { + err = msgp.WrapError(err, "ObjectsScannedCount") + return } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "incomingBytes" - err = en.Append(0xad, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.IncomingBytes) - if err != nil { - err = msgp.WrapError(err, "IncomingBytes") - return - } + // write "objectsMatchedCount" + err = en.Append(0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) + if err != nil { + return } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "outQueue" - err = en.Append(0xa8, 0x6f, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65) - if err != nil { - return - } - err = en.WriteInt(z.OutQueue) - if err != nil { - err = msgp.WrapError(err, "OutQueue") - return - } + err = en.WriteUint64(z.ObjectsMatchedCount) + if err != nil { + err = msgp.WrapError(err, "ObjectsMatchedCount") + return } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "lastPongTime" - err = en.Append(0xac, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65) - if err != nil { - return - } - err = en.WriteTime(z.LastPongTime) - if err != nil { - err = msgp.WrapError(err, "LastPongTime") - return - } + // write "recordsWrittenCount" + err = en.Append(0xb3, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74) + if err != nil { + return } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // write "lastConnectTime" - err = en.Append(0xaf, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65) - if err != nil { - return - } - err = en.WriteTime(z.LastConnectTime) - if err != nil { - err = msgp.WrapError(err, "LastConnectTime") - return - } + err = en.WriteUint64(z.RecordsWrittenCount) + if err != nil { + err = msgp.WrapError(err, "RecordsWrittenCount") + return + } + // write "outputObjectsCount" + err = en.Append(0xb2, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) + if err != nil { + return + } + err = en.WriteUint64(z.OutputObjectsCount) + if err != nil { + err = msgp.WrapError(err, "OutputObjectsCount") + return + } + // write "manifestPathBucket" + err = en.Append(0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) + if err != nil { + return + } + err = en.WriteString(z.ManifestPathBucket) + if err != nil { + err = msgp.WrapError(err, "ManifestPathBucket") + return + } + // write "manifestPathObject" + err = en.Append(0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) + if err != nil { + return + } + err = en.WriteString(z.ManifestPathObject) + if err != nil { + err = msgp.WrapError(err, "ManifestPathObject") + return + } + // write "errorMsg" + err = en.Append(0xa8, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67) + if err != nil { + return + } + err = en.WriteString(z.ErrorMsg) + if err != nil { + err = msgp.WrapError(err, "ErrorMsg") + return } if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "lastPingMS" - err = en.Append(0xaa, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x53) + // write "lastObjectWritten" + err = en.Append(0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e) if err != nil { return } - err = en.WriteFloat64(z.LastPingMS) + err = en.WriteString(z.LastObjectWritten) if err != nil { - err = msgp.WrapError(err, "LastPingMS") + err = msgp.WrapError(err, "LastObjectWritten") return } } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "maxPingDurMS" - err = en.Append(0xac, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x4d, 0x53) + // write "outputFiles" + err = en.Append(0xab, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73) if err != nil { return } - err = en.WriteFloat64(z.MaxPingDurMS) + err = en.WriteArrayHeader(uint32(len(z.OutputFiles))) if err != nil { - err = msgp.WrapError(err, "MaxPingDurMS") + err = msgp.WrapError(err, "OutputFiles") return } + for za0001 := range z.OutputFiles { + err = z.OutputFiles[za0001].EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "OutputFiles", za0001) + return + } + } } } return } // MarshalMsg implements msgp.Marshaler -func (z *ConnectionStats) MarshalMsg(b []byte) (o []byte, err error) { +func (z *CatalogInfo) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields zb0001Len := uint32(14) var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask - if z.Connected == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.Disconnected == 0 { + if z.LastBucketScanned == "" { zb0001Len-- zb0001Mask |= 0x2 } - if z.ReconnectCount == 0 { - zb0001Len-- - zb0001Mask |= 0x4 - } - if z.OutgoingStreams == 0 { + if z.LastBucketMatched == "" { zb0001Len-- zb0001Mask |= 0x8 } - if z.IncomingStreams == 0 { - zb0001Len-- - zb0001Mask |= 0x10 - } - if z.OutgoingMessages == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.IncomingMessages == 0 { - zb0001Len-- - zb0001Mask |= 0x40 - } - if z.OutgoingBytes == 0 { - zb0001Len-- - zb0001Mask |= 0x80 - } - if z.IncomingBytes == 0 { - zb0001Len-- - zb0001Mask |= 0x100 - } - if z.OutQueue == 0 { - zb0001Len-- - zb0001Mask |= 0x200 - } - if z.LastPongTime == (time.Time{}) { + if z.LastObjectWritten == "" { zb0001Len-- - zb0001Mask |= 0x400 + zb0001Mask |= 0x1000 } - if z.LastConnectTime == (time.Time{}) { + if z.OutputFiles == nil { zb0001Len-- - zb0001Mask |= 0x800 - } - if z.LastPingMS == 0 { - zb0001Len-- - zb0001Mask |= 0x1000 - } - if z.MaxPingDurMS == 0 { - zb0001Len-- - zb0001Mask |= 0x2000 + zb0001Mask |= 0x2000 } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "connected" - o = append(o, 0xa9, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendInt(o, z.Connected) - } + // string "bucket" + o = append(o, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + o = msgp.AppendString(o, z.Bucket) if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "disconnected" - o = append(o, 0xac, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendInt(o, z.Disconnected) - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "reconnectCount" - o = append(o, 0xae, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74) - o = msgp.AppendInt(o, z.ReconnectCount) + // string "lastBucketScanned" + o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) + o = msgp.AppendString(o, z.LastBucketScanned) } + // string "lastObjectScanned" + o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64) + o = msgp.AppendString(o, z.LastObjectScanned) if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "outgoingStreams" - o = append(o, 0xaf, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) - o = msgp.AppendInt(o, z.OutgoingStreams) - } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "incomingStreams" - o = append(o, 0xaf, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) - o = msgp.AppendInt(o, z.IncomingStreams) - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "outgoingMessages" - o = append(o, 0xb0, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) - o = msgp.AppendInt64(o, z.OutgoingMessages) - } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "incomingMessages" - o = append(o, 0xb0, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) - o = msgp.AppendInt64(o, z.IncomingMessages) - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "outgoingBytes" - o = append(o, 0xad, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) - o = msgp.AppendInt64(o, z.OutgoingBytes) - } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "incomingBytes" - o = append(o, 0xad, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) - o = msgp.AppendInt64(o, z.IncomingBytes) - } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "outQueue" - o = append(o, 0xa8, 0x6f, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65) - o = msgp.AppendInt(o, z.OutQueue) - } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "lastPongTime" - o = append(o, 0xac, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65) - o = msgp.AppendTime(o, z.LastPongTime) - } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // string "lastConnectTime" - o = append(o, 0xaf, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65) - o = msgp.AppendTime(o, z.LastConnectTime) + // string "lastBucketMatched" + o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) + o = msgp.AppendString(o, z.LastBucketMatched) } + // string "lastObjectMatched" + o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64) + o = msgp.AppendString(o, z.LastObjectMatched) + // string "objectsScannedCount" + o = append(o, 0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendUint64(o, z.ObjectsScannedCount) + // string "objectsMatchedCount" + o = append(o, 0xb3, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendUint64(o, z.ObjectsMatchedCount) + // string "recordsWrittenCount" + o = append(o, 0xb3, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendUint64(o, z.RecordsWrittenCount) + // string "outputObjectsCount" + o = append(o, 0xb2, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendUint64(o, z.OutputObjectsCount) + // string "manifestPathBucket" + o = append(o, 0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) + o = msgp.AppendString(o, z.ManifestPathBucket) + // string "manifestPathObject" + o = append(o, 0xb2, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) + o = msgp.AppendString(o, z.ManifestPathObject) + // string "errorMsg" + o = append(o, 0xa8, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67) + o = msgp.AppendString(o, z.ErrorMsg) if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "lastPingMS" - o = append(o, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x53) - o = msgp.AppendFloat64(o, z.LastPingMS) + // string "lastObjectWritten" + o = append(o, 0xb1, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e) + o = msgp.AppendString(o, z.LastObjectWritten) } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "maxPingDurMS" - o = append(o, 0xac, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x4d, 0x53) - o = msgp.AppendFloat64(o, z.MaxPingDurMS) + // string "outputFiles" + o = append(o, 0xab, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.OutputFiles))) + for za0001 := range z.OutputFiles { + o, err = z.OutputFiles[za0001].MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "OutputFiles", za0001) + return + } + } } } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *CatalogInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -5077,7 +5325,7 @@ func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 14 bits */ + var zb0001Mask uint8 /* 4 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -5087,104 +5335,107 @@ func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "connected": - z.Connected, bts, err = msgp.ReadIntBytes(bts) + case "bucket": + z.Bucket, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "Connected") + err = msgp.WrapError(err, "Bucket") return } - zb0001Mask |= 0x1 - case "disconnected": - z.Disconnected, bts, err = msgp.ReadIntBytes(bts) + case "lastBucketScanned": + z.LastBucketScanned, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "Disconnected") + err = msgp.WrapError(err, "LastBucketScanned") return } - zb0001Mask |= 0x2 - case "reconnectCount": - z.ReconnectCount, bts, err = msgp.ReadIntBytes(bts) + zb0001Mask |= 0x1 + case "lastObjectScanned": + z.LastObjectScanned, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReconnectCount") + err = msgp.WrapError(err, "LastObjectScanned") return } - zb0001Mask |= 0x4 - case "outgoingStreams": - z.OutgoingStreams, bts, err = msgp.ReadIntBytes(bts) + case "lastBucketMatched": + z.LastBucketMatched, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "OutgoingStreams") + err = msgp.WrapError(err, "LastBucketMatched") return } - zb0001Mask |= 0x8 - case "incomingStreams": - z.IncomingStreams, bts, err = msgp.ReadIntBytes(bts) + zb0001Mask |= 0x2 + case "lastObjectMatched": + z.LastObjectMatched, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "IncomingStreams") + err = msgp.WrapError(err, "LastObjectMatched") return } - zb0001Mask |= 0x10 - case "outgoingMessages": - z.OutgoingMessages, bts, err = msgp.ReadInt64Bytes(bts) + case "objectsScannedCount": + z.ObjectsScannedCount, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "OutgoingMessages") + err = msgp.WrapError(err, "ObjectsScannedCount") return } - zb0001Mask |= 0x20 - case "incomingMessages": - z.IncomingMessages, bts, err = msgp.ReadInt64Bytes(bts) + case "objectsMatchedCount": + z.ObjectsMatchedCount, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "IncomingMessages") + err = msgp.WrapError(err, "ObjectsMatchedCount") return } - zb0001Mask |= 0x40 - case "outgoingBytes": - z.OutgoingBytes, bts, err = msgp.ReadInt64Bytes(bts) + case "recordsWrittenCount": + z.RecordsWrittenCount, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "OutgoingBytes") + err = msgp.WrapError(err, "RecordsWrittenCount") return } - zb0001Mask |= 0x80 - case "incomingBytes": - z.IncomingBytes, bts, err = msgp.ReadInt64Bytes(bts) + case "outputObjectsCount": + z.OutputObjectsCount, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "IncomingBytes") + err = msgp.WrapError(err, "OutputObjectsCount") return } - zb0001Mask |= 0x100 - case "outQueue": - z.OutQueue, bts, err = msgp.ReadIntBytes(bts) + case "manifestPathBucket": + z.ManifestPathBucket, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "OutQueue") + err = msgp.WrapError(err, "ManifestPathBucket") return } - zb0001Mask |= 0x200 - case "lastPongTime": - z.LastPongTime, bts, err = msgp.ReadTimeUTCBytes(bts) + case "manifestPathObject": + z.ManifestPathObject, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastPongTime") + err = msgp.WrapError(err, "ManifestPathObject") return } - zb0001Mask |= 0x400 - case "lastConnectTime": - z.LastConnectTime, bts, err = msgp.ReadTimeUTCBytes(bts) + case "errorMsg": + z.ErrorMsg, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastConnectTime") + err = msgp.WrapError(err, "ErrorMsg") return } - zb0001Mask |= 0x800 - case "lastPingMS": - z.LastPingMS, bts, err = msgp.ReadFloat64Bytes(bts) + case "lastObjectWritten": + z.LastObjectWritten, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastPingMS") + err = msgp.WrapError(err, "LastObjectWritten") return } - zb0001Mask |= 0x1000 - case "maxPingDurMS": - z.MaxPingDurMS, bts, err = msgp.ReadFloat64Bytes(bts) + zb0001Mask |= 0x4 + case "outputFiles": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "MaxPingDurMS") + err = msgp.WrapError(err, "OutputFiles") return } - zb0001Mask |= 0x2000 + if cap(z.OutputFiles) >= int(zb0002) { + z.OutputFiles = (z.OutputFiles)[:zb0002] + } else { + z.OutputFiles = make([]CatalogDataFile, zb0002) + } + for za0001 := range z.OutputFiles { + bts, err = z.OutputFiles[za0001].UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "OutputFiles", za0001) + return + } + } + zb0001Mask |= 0x8 default: bts, err = msgp.Skip(bts) if err != nil { @@ -5194,48 +5445,18 @@ func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0x3fff { + if zb0001Mask != 0xf { if (zb0001Mask & 0x1) == 0 { - z.Connected = 0 + z.LastBucketScanned = "" } if (zb0001Mask & 0x2) == 0 { - z.Disconnected = 0 + z.LastBucketMatched = "" } if (zb0001Mask & 0x4) == 0 { - z.ReconnectCount = 0 + z.LastObjectWritten = "" } if (zb0001Mask & 0x8) == 0 { - z.OutgoingStreams = 0 - } - if (zb0001Mask & 0x10) == 0 { - z.IncomingStreams = 0 - } - if (zb0001Mask & 0x20) == 0 { - z.OutgoingMessages = 0 - } - if (zb0001Mask & 0x40) == 0 { - z.IncomingMessages = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.OutgoingBytes = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.IncomingBytes = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.OutQueue = 0 - } - if (zb0001Mask & 0x400) == 0 { - z.LastPongTime = (time.Time{}) - } - if (zb0001Mask & 0x800) == 0 { - z.LastConnectTime = (time.Time{}) - } - if (zb0001Mask & 0x1000) == 0 { - z.LastPingMS = 0 - } - if (zb0001Mask & 0x2000) == 0 { - z.MaxPingDurMS = 0 + z.OutputFiles = nil } } o = bts @@ -5243,13 +5464,16 @@ func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ConnectionStats) Msgsize() (s int) { - s = 1 + 10 + msgp.IntSize + 13 + msgp.IntSize + 15 + msgp.IntSize + 16 + msgp.IntSize + 16 + msgp.IntSize + 17 + msgp.Int64Size + 17 + msgp.Int64Size + 14 + msgp.Int64Size + 14 + msgp.Int64Size + 9 + msgp.IntSize + 13 + msgp.TimeSize + 16 + msgp.TimeSize + 11 + msgp.Float64Size + 13 + msgp.Float64Size +func (z *CatalogInfo) Msgsize() (s int) { + s = 1 + 7 + msgp.StringPrefixSize + len(z.Bucket) + 18 + msgp.StringPrefixSize + len(z.LastBucketScanned) + 18 + msgp.StringPrefixSize + len(z.LastObjectScanned) + 18 + msgp.StringPrefixSize + len(z.LastBucketMatched) + 18 + msgp.StringPrefixSize + len(z.LastObjectMatched) + 20 + msgp.Uint64Size + 20 + msgp.Uint64Size + 20 + msgp.Uint64Size + 19 + msgp.Uint64Size + 19 + msgp.StringPrefixSize + len(z.ManifestPathBucket) + 19 + msgp.StringPrefixSize + len(z.ManifestPathObject) + 9 + msgp.StringPrefixSize + len(z.ErrorMsg) + 18 + msgp.StringPrefixSize + len(z.LastObjectWritten) + 12 + msgp.ArrayHeaderSize + for za0001 := range z.OutputFiles { + s += z.OutputFiles[za0001].Msgsize() + } return } // DecodeMsg implements msgp.Decodable -func (z *DiskIOStats) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *ConnectionStats) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -5258,7 +5482,7 @@ func (z *DiskIOStats) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint32 /* 20 bits */ + var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -5268,146 +5492,104 @@ func (z *DiskIOStats) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "n": - z.N, err = dc.ReadInt() + case "connected": + z.Connected, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "Connected") return } zb0001Mask |= 0x1 - case "read_ios": - z.ReadIOs, err = dc.ReadUint64() + case "disconnected": + z.Disconnected, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "ReadIOs") + err = msgp.WrapError(err, "Disconnected") return } zb0001Mask |= 0x2 - case "read_merges": - z.ReadMerges, err = dc.ReadUint64() + case "reconnectCount": + z.ReconnectCount, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "ReadMerges") + err = msgp.WrapError(err, "ReconnectCount") return } zb0001Mask |= 0x4 - case "read_sectors": - z.ReadSectors, err = dc.ReadUint64() + case "outgoingStreams": + z.OutgoingStreams, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "ReadSectors") + err = msgp.WrapError(err, "OutgoingStreams") return } zb0001Mask |= 0x8 - case "read_ticks": - z.ReadTicks, err = dc.ReadUint64() + case "incomingStreams": + z.IncomingStreams, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "ReadTicks") + err = msgp.WrapError(err, "IncomingStreams") return } zb0001Mask |= 0x10 - case "write_ios": - z.WriteIOs, err = dc.ReadUint64() + case "outgoingMessages": + z.OutgoingMessages, err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "WriteIOs") + err = msgp.WrapError(err, "OutgoingMessages") return } zb0001Mask |= 0x20 - case "write_merges": - z.WriteMerges, err = dc.ReadUint64() + case "incomingMessages": + z.IncomingMessages, err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "WriteMerges") + err = msgp.WrapError(err, "IncomingMessages") return } zb0001Mask |= 0x40 - case "write_sectors": - z.WriteSectors, err = dc.ReadUint64() + case "outgoingBytes": + z.OutgoingBytes, err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "WriteSectors") + err = msgp.WrapError(err, "OutgoingBytes") return } zb0001Mask |= 0x80 - case "write_ticks": - z.WriteTicks, err = dc.ReadUint64() + case "incomingBytes": + z.IncomingBytes, err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "WriteTicks") + err = msgp.WrapError(err, "IncomingBytes") return } zb0001Mask |= 0x100 - case "current_ios": - z.CurrentIOs, err = dc.ReadUint64() + case "outQueue": + z.OutQueue, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "CurrentIOs") + err = msgp.WrapError(err, "OutQueue") return } zb0001Mask |= 0x200 - case "total_ticks": - z.TotalTicks, err = dc.ReadUint64() + case "lastPongTime": + z.LastPongTime, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "TotalTicks") + err = msgp.WrapError(err, "LastPongTime") return } zb0001Mask |= 0x400 - case "req_ticks": - z.ReqTicks, err = dc.ReadUint64() + case "lastConnectTime": + z.LastConnectTime, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "ReqTicks") + err = msgp.WrapError(err, "LastConnectTime") return } zb0001Mask |= 0x800 - case "discard_ios": - z.DiscardIOs, err = dc.ReadUint64() + case "lastPingMS": + z.LastPingMS, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "DiscardIOs") + err = msgp.WrapError(err, "LastPingMS") return } zb0001Mask |= 0x1000 - case "discard_merges": - z.DiscardMerges, err = dc.ReadUint64() + case "maxPingDurMS": + z.MaxPingDurMS, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "DiscardMerges") + err = msgp.WrapError(err, "MaxPingDurMS") return } zb0001Mask |= 0x2000 - case "discard_sectors": - z.DiscardSectors, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "DiscardSectors") - return - } - zb0001Mask |= 0x4000 - case "discard_ticks": - z.DiscardTicks, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "DiscardTicks") - return - } - zb0001Mask |= 0x8000 - case "flush_ios": - z.FlushIOs, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "FlushIOs") - return - } - zb0001Mask |= 0x10000 - case "flush_ticks": - z.FlushTicks, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "FlushTicks") - return - } - zb0001Mask |= 0x20000 - case "bitrot_detected": - z.BitrotDetected, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "BitrotDetected") - return - } - zb0001Mask |= 0x40000 - case "bitrot_healed": - z.BitrotHealed, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "BitrotHealed") - return - } - zb0001Mask |= 0x80000 default: err = dc.Skip() if err != nil { @@ -5417,402 +5599,288 @@ func (z *DiskIOStats) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0xfffff { + if zb0001Mask != 0x3fff { if (zb0001Mask & 0x1) == 0 { - z.N = 0 + z.Connected = 0 } if (zb0001Mask & 0x2) == 0 { - z.ReadIOs = 0 + z.Disconnected = 0 } if (zb0001Mask & 0x4) == 0 { - z.ReadMerges = 0 + z.ReconnectCount = 0 } if (zb0001Mask & 0x8) == 0 { - z.ReadSectors = 0 + z.OutgoingStreams = 0 } if (zb0001Mask & 0x10) == 0 { - z.ReadTicks = 0 + z.IncomingStreams = 0 } if (zb0001Mask & 0x20) == 0 { - z.WriteIOs = 0 + z.OutgoingMessages = 0 } if (zb0001Mask & 0x40) == 0 { - z.WriteMerges = 0 + z.IncomingMessages = 0 } if (zb0001Mask & 0x80) == 0 { - z.WriteSectors = 0 + z.OutgoingBytes = 0 } if (zb0001Mask & 0x100) == 0 { - z.WriteTicks = 0 + z.IncomingBytes = 0 } if (zb0001Mask & 0x200) == 0 { - z.CurrentIOs = 0 + z.OutQueue = 0 } if (zb0001Mask & 0x400) == 0 { - z.TotalTicks = 0 + z.LastPongTime = (time.Time{}) } if (zb0001Mask & 0x800) == 0 { - z.ReqTicks = 0 + z.LastConnectTime = (time.Time{}) } if (zb0001Mask & 0x1000) == 0 { - z.DiscardIOs = 0 + z.LastPingMS = 0 } if (zb0001Mask & 0x2000) == 0 { - z.DiscardMerges = 0 - } - if (zb0001Mask & 0x4000) == 0 { - z.DiscardSectors = 0 - } - if (zb0001Mask & 0x8000) == 0 { - z.DiscardTicks = 0 - } - if (zb0001Mask & 0x10000) == 0 { - z.FlushIOs = 0 - } - if (zb0001Mask & 0x20000) == 0 { - z.FlushTicks = 0 - } - if (zb0001Mask & 0x40000) == 0 { - z.BitrotDetected = 0 - } - if (zb0001Mask & 0x80000) == 0 { - z.BitrotHealed = 0 + z.MaxPingDurMS = 0 } } return } // EncodeMsg implements msgp.Encodable -func (z *DiskIOStats) EncodeMsg(en *msgp.Writer) (err error) { +func (z *ConnectionStats) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(20) - var zb0001Mask uint32 /* 20 bits */ + zb0001Len := uint32(14) + var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask - if z.N == 0 { + if z.Connected == 0 { zb0001Len-- zb0001Mask |= 0x1 } - if z.ReadIOs == 0 { + if z.Disconnected == 0 { zb0001Len-- zb0001Mask |= 0x2 } - if z.ReadMerges == 0 { + if z.ReconnectCount == 0 { zb0001Len-- zb0001Mask |= 0x4 } - if z.ReadSectors == 0 { + if z.OutgoingStreams == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.ReadTicks == 0 { + if z.IncomingStreams == 0 { zb0001Len-- zb0001Mask |= 0x10 } - if z.WriteIOs == 0 { + if z.OutgoingMessages == 0 { zb0001Len-- zb0001Mask |= 0x20 } - if z.WriteMerges == 0 { + if z.IncomingMessages == 0 { zb0001Len-- zb0001Mask |= 0x40 } - if z.WriteSectors == 0 { + if z.OutgoingBytes == 0 { zb0001Len-- zb0001Mask |= 0x80 } - if z.WriteTicks == 0 { + if z.IncomingBytes == 0 { zb0001Len-- zb0001Mask |= 0x100 } - if z.CurrentIOs == 0 { + if z.OutQueue == 0 { zb0001Len-- zb0001Mask |= 0x200 } - if z.TotalTicks == 0 { + if z.LastPongTime == (time.Time{}) { zb0001Len-- zb0001Mask |= 0x400 } - if z.ReqTicks == 0 { + if z.LastConnectTime == (time.Time{}) { zb0001Len-- zb0001Mask |= 0x800 } - if z.DiscardIOs == 0 { + if z.LastPingMS == 0 { zb0001Len-- zb0001Mask |= 0x1000 } - if z.DiscardMerges == 0 { + if z.MaxPingDurMS == 0 { zb0001Len-- zb0001Mask |= 0x2000 } - if z.DiscardSectors == 0 { - zb0001Len-- - zb0001Mask |= 0x4000 - } - if z.DiscardTicks == 0 { - zb0001Len-- - zb0001Mask |= 0x8000 - } - if z.FlushIOs == 0 { - zb0001Len-- - zb0001Mask |= 0x10000 - } - if z.FlushTicks == 0 { - zb0001Len-- - zb0001Mask |= 0x20000 - } - if z.BitrotDetected == 0 { - zb0001Len-- - zb0001Mask |= 0x40000 - } - if z.BitrotHealed == 0 { - zb0001Len-- - zb0001Mask |= 0x80000 - } - // variable map header, size zb0001Len - err = en.WriteMapHeader(zb0001Len) - if err != nil { - return + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return } // skip if no fields are to be emitted if zb0001Len != 0 { if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "n" - err = en.Append(0xa1, 0x6e) + // write "connected" + err = en.Append(0xa9, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) if err != nil { return } - err = en.WriteInt(z.N) + err = en.WriteInt(z.Connected) if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "Connected") return } } if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "read_ios" - err = en.Append(0xa8, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x73) + // write "disconnected" + err = en.Append(0xac, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) if err != nil { return } - err = en.WriteUint64(z.ReadIOs) + err = en.WriteInt(z.Disconnected) if err != nil { - err = msgp.WrapError(err, "ReadIOs") + err = msgp.WrapError(err, "Disconnected") return } } if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "read_merges" - err = en.Append(0xab, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) + // write "reconnectCount" + err = en.Append(0xae, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74) if err != nil { return } - err = en.WriteUint64(z.ReadMerges) + err = en.WriteInt(z.ReconnectCount) if err != nil { - err = msgp.WrapError(err, "ReadMerges") + err = msgp.WrapError(err, "ReconnectCount") return } } if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "read_sectors" - err = en.Append(0xac, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + // write "outgoingStreams" + err = en.Append(0xaf, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) if err != nil { return } - err = en.WriteUint64(z.ReadSectors) + err = en.WriteInt(z.OutgoingStreams) if err != nil { - err = msgp.WrapError(err, "ReadSectors") + err = msgp.WrapError(err, "OutgoingStreams") return } } if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "read_ticks" - err = en.Append(0xaa, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + // write "incomingStreams" + err = en.Append(0xaf, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) if err != nil { return } - err = en.WriteUint64(z.ReadTicks) + err = en.WriteInt(z.IncomingStreams) if err != nil { - err = msgp.WrapError(err, "ReadTicks") + err = msgp.WrapError(err, "IncomingStreams") return } } if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "write_ios" - err = en.Append(0xa9, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x73) + // write "outgoingMessages" + err = en.Append(0xb0, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) if err != nil { return } - err = en.WriteUint64(z.WriteIOs) + err = en.WriteInt64(z.OutgoingMessages) if err != nil { - err = msgp.WrapError(err, "WriteIOs") + err = msgp.WrapError(err, "OutgoingMessages") return } } if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "write_merges" - err = en.Append(0xac, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) + // write "incomingMessages" + err = en.Append(0xb0, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) if err != nil { return } - err = en.WriteUint64(z.WriteMerges) + err = en.WriteInt64(z.IncomingMessages) if err != nil { - err = msgp.WrapError(err, "WriteMerges") + err = msgp.WrapError(err, "IncomingMessages") return } } if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "write_sectors" - err = en.Append(0xad, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + // write "outgoingBytes" + err = en.Append(0xad, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) if err != nil { return } - err = en.WriteUint64(z.WriteSectors) + err = en.WriteInt64(z.OutgoingBytes) if err != nil { - err = msgp.WrapError(err, "WriteSectors") + err = msgp.WrapError(err, "OutgoingBytes") return } } if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "write_ticks" - err = en.Append(0xab, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + // write "incomingBytes" + err = en.Append(0xad, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) if err != nil { return } - err = en.WriteUint64(z.WriteTicks) + err = en.WriteInt64(z.IncomingBytes) if err != nil { - err = msgp.WrapError(err, "WriteTicks") + err = msgp.WrapError(err, "IncomingBytes") return } } if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "current_ios" - err = en.Append(0xab, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6f, 0x73) + // write "outQueue" + err = en.Append(0xa8, 0x6f, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65) if err != nil { return } - err = en.WriteUint64(z.CurrentIOs) + err = en.WriteInt(z.OutQueue) if err != nil { - err = msgp.WrapError(err, "CurrentIOs") + err = msgp.WrapError(err, "OutQueue") return } } if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "total_ticks" - err = en.Append(0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + // write "lastPongTime" + err = en.Append(0xac, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65) if err != nil { return } - err = en.WriteUint64(z.TotalTicks) + err = en.WriteTime(z.LastPongTime) if err != nil { - err = msgp.WrapError(err, "TotalTicks") + err = msgp.WrapError(err, "LastPongTime") return } } if (zb0001Mask & 0x800) == 0 { // if not omitted - // write "req_ticks" - err = en.Append(0xa9, 0x72, 0x65, 0x71, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + // write "lastConnectTime" + err = en.Append(0xaf, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65) if err != nil { return } - err = en.WriteUint64(z.ReqTicks) + err = en.WriteTime(z.LastConnectTime) if err != nil { - err = msgp.WrapError(err, "ReqTicks") + err = msgp.WrapError(err, "LastConnectTime") return } } if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "discard_ios" - err = en.Append(0xab, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x73) + // write "lastPingMS" + err = en.Append(0xaa, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x53) if err != nil { return } - err = en.WriteUint64(z.DiscardIOs) + err = en.WriteFloat64(z.LastPingMS) if err != nil { - err = msgp.WrapError(err, "DiscardIOs") + err = msgp.WrapError(err, "LastPingMS") return } } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "discard_merges" - err = en.Append(0xae, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteUint64(z.DiscardMerges) - if err != nil { - err = msgp.WrapError(err, "DiscardMerges") - return - } - } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // write "discard_sectors" - err = en.Append(0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) - if err != nil { - return - } - err = en.WriteUint64(z.DiscardSectors) - if err != nil { - err = msgp.WrapError(err, "DiscardSectors") - return - } - } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // write "discard_ticks" - err = en.Append(0xad, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - if err != nil { - return - } - err = en.WriteUint64(z.DiscardTicks) - if err != nil { - err = msgp.WrapError(err, "DiscardTicks") - return - } - } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // write "flush_ios" - err = en.Append(0xa9, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x6f, 0x73) - if err != nil { - return - } - err = en.WriteUint64(z.FlushIOs) - if err != nil { - err = msgp.WrapError(err, "FlushIOs") - return - } - } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // write "flush_ticks" - err = en.Append(0xab, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - if err != nil { - return - } - err = en.WriteUint64(z.FlushTicks) - if err != nil { - err = msgp.WrapError(err, "FlushTicks") - return - } - } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // write "bitrot_detected" - err = en.Append(0xaf, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteUint64(z.BitrotDetected) - if err != nil { - err = msgp.WrapError(err, "BitrotDetected") - return - } - } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // write "bitrot_healed" - err = en.Append(0xad, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64) + // write "maxPingDurMS" + err = en.Append(0xac, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x4d, 0x53) if err != nil { return } - err = en.WriteUint64(z.BitrotHealed) + err = en.WriteFloat64(z.MaxPingDurMS) if err != nil { - err = msgp.WrapError(err, "BitrotHealed") + err = msgp.WrapError(err, "MaxPingDurMS") return } } @@ -5821,203 +5889,149 @@ func (z *DiskIOStats) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *DiskIOStats) MarshalMsg(b []byte) (o []byte, err error) { +func (z *ConnectionStats) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(20) - var zb0001Mask uint32 /* 20 bits */ + zb0001Len := uint32(14) + var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask - if z.N == 0 { + if z.Connected == 0 { zb0001Len-- zb0001Mask |= 0x1 } - if z.ReadIOs == 0 { + if z.Disconnected == 0 { zb0001Len-- zb0001Mask |= 0x2 } - if z.ReadMerges == 0 { + if z.ReconnectCount == 0 { zb0001Len-- zb0001Mask |= 0x4 } - if z.ReadSectors == 0 { + if z.OutgoingStreams == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.ReadTicks == 0 { + if z.IncomingStreams == 0 { zb0001Len-- zb0001Mask |= 0x10 } - if z.WriteIOs == 0 { + if z.OutgoingMessages == 0 { zb0001Len-- zb0001Mask |= 0x20 } - if z.WriteMerges == 0 { + if z.IncomingMessages == 0 { zb0001Len-- zb0001Mask |= 0x40 } - if z.WriteSectors == 0 { + if z.OutgoingBytes == 0 { zb0001Len-- zb0001Mask |= 0x80 } - if z.WriteTicks == 0 { + if z.IncomingBytes == 0 { zb0001Len-- zb0001Mask |= 0x100 } - if z.CurrentIOs == 0 { + if z.OutQueue == 0 { zb0001Len-- zb0001Mask |= 0x200 } - if z.TotalTicks == 0 { + if z.LastPongTime == (time.Time{}) { zb0001Len-- zb0001Mask |= 0x400 } - if z.ReqTicks == 0 { + if z.LastConnectTime == (time.Time{}) { zb0001Len-- zb0001Mask |= 0x800 } - if z.DiscardIOs == 0 { + if z.LastPingMS == 0 { zb0001Len-- zb0001Mask |= 0x1000 } - if z.DiscardMerges == 0 { + if z.MaxPingDurMS == 0 { zb0001Len-- zb0001Mask |= 0x2000 } - if z.DiscardSectors == 0 { - zb0001Len-- - zb0001Mask |= 0x4000 - } - if z.DiscardTicks == 0 { - zb0001Len-- - zb0001Mask |= 0x8000 - } - if z.FlushIOs == 0 { - zb0001Len-- - zb0001Mask |= 0x10000 - } - if z.FlushTicks == 0 { - zb0001Len-- - zb0001Mask |= 0x20000 - } - if z.BitrotDetected == 0 { - zb0001Len-- - zb0001Mask |= 0x40000 - } - if z.BitrotHealed == 0 { - zb0001Len-- - zb0001Mask |= 0x80000 - } // variable map header, size zb0001Len - o = msgp.AppendMapHeader(o, zb0001Len) + o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "n" - o = append(o, 0xa1, 0x6e) - o = msgp.AppendInt(o, z.N) + // string "connected" + o = append(o, 0xa9, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendInt(o, z.Connected) } if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "read_ios" - o = append(o, 0xa8, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x73) - o = msgp.AppendUint64(o, z.ReadIOs) + // string "disconnected" + o = append(o, 0xac, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendInt(o, z.Disconnected) } if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "read_merges" - o = append(o, 0xab, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) - o = msgp.AppendUint64(o, z.ReadMerges) + // string "reconnectCount" + o = append(o, 0xae, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74) + o = msgp.AppendInt(o, z.ReconnectCount) } if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "read_sectors" - o = append(o, 0xac, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) - o = msgp.AppendUint64(o, z.ReadSectors) + // string "outgoingStreams" + o = append(o, 0xaf, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) + o = msgp.AppendInt(o, z.OutgoingStreams) } if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "read_ticks" - o = append(o, 0xaa, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.ReadTicks) + // string "incomingStreams" + o = append(o, 0xaf, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73) + o = msgp.AppendInt(o, z.IncomingStreams) } if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "write_ios" - o = append(o, 0xa9, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x73) - o = msgp.AppendUint64(o, z.WriteIOs) + // string "outgoingMessages" + o = append(o, 0xb0, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) + o = msgp.AppendInt64(o, z.OutgoingMessages) } if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "write_merges" - o = append(o, 0xac, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) - o = msgp.AppendUint64(o, z.WriteMerges) + // string "incomingMessages" + o = append(o, 0xb0, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73) + o = msgp.AppendInt64(o, z.IncomingMessages) } if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "write_sectors" - o = append(o, 0xad, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) - o = msgp.AppendUint64(o, z.WriteSectors) + // string "outgoingBytes" + o = append(o, 0xad, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) + o = msgp.AppendInt64(o, z.OutgoingBytes) } if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "write_ticks" - o = append(o, 0xab, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.WriteTicks) + // string "incomingBytes" + o = append(o, 0xad, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73) + o = msgp.AppendInt64(o, z.IncomingBytes) } if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "current_ios" - o = append(o, 0xab, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6f, 0x73) - o = msgp.AppendUint64(o, z.CurrentIOs) + // string "outQueue" + o = append(o, 0xa8, 0x6f, 0x75, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65) + o = msgp.AppendInt(o, z.OutQueue) } if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "total_ticks" - o = append(o, 0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.TotalTicks) + // string "lastPongTime" + o = append(o, 0xac, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65) + o = msgp.AppendTime(o, z.LastPongTime) } if (zb0001Mask & 0x800) == 0 { // if not omitted - // string "req_ticks" - o = append(o, 0xa9, 0x72, 0x65, 0x71, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.ReqTicks) + // string "lastConnectTime" + o = append(o, 0xaf, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65) + o = msgp.AppendTime(o, z.LastConnectTime) } if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "discard_ios" - o = append(o, 0xab, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x73) - o = msgp.AppendUint64(o, z.DiscardIOs) + // string "lastPingMS" + o = append(o, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x53) + o = msgp.AppendFloat64(o, z.LastPingMS) } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "discard_merges" - o = append(o, 0xae, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) - o = msgp.AppendUint64(o, z.DiscardMerges) - } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // string "discard_sectors" - o = append(o, 0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) - o = msgp.AppendUint64(o, z.DiscardSectors) - } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // string "discard_ticks" - o = append(o, 0xad, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.DiscardTicks) - } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // string "flush_ios" - o = append(o, 0xa9, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x6f, 0x73) - o = msgp.AppendUint64(o, z.FlushIOs) - } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // string "flush_ticks" - o = append(o, 0xab, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) - o = msgp.AppendUint64(o, z.FlushTicks) - } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // string "bitrot_detected" - o = append(o, 0xaf, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendUint64(o, z.BitrotDetected) - } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // string "bitrot_healed" - o = append(o, 0xad, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64) - o = msgp.AppendUint64(o, z.BitrotHealed) + // string "maxPingDurMS" + o = append(o, 0xac, 0x6d, 0x61, 0x78, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x4d, 0x53) + o = msgp.AppendFloat64(o, z.MaxPingDurMS) } } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *ConnectionStats) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -6026,7 +6040,7 @@ func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint32 /* 20 bits */ + var zb0001Mask uint16 /* 14 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -6036,146 +6050,104 @@ func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "n": - z.N, bts, err = msgp.ReadIntBytes(bts) + case "connected": + z.Connected, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "Connected") return } zb0001Mask |= 0x1 - case "read_ios": - z.ReadIOs, bts, err = msgp.ReadUint64Bytes(bts) + case "disconnected": + z.Disconnected, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReadIOs") + err = msgp.WrapError(err, "Disconnected") return } zb0001Mask |= 0x2 - case "read_merges": - z.ReadMerges, bts, err = msgp.ReadUint64Bytes(bts) + case "reconnectCount": + z.ReconnectCount, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReadMerges") + err = msgp.WrapError(err, "ReconnectCount") return } zb0001Mask |= 0x4 - case "read_sectors": - z.ReadSectors, bts, err = msgp.ReadUint64Bytes(bts) + case "outgoingStreams": + z.OutgoingStreams, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReadSectors") + err = msgp.WrapError(err, "OutgoingStreams") return } zb0001Mask |= 0x8 - case "read_ticks": - z.ReadTicks, bts, err = msgp.ReadUint64Bytes(bts) + case "incomingStreams": + z.IncomingStreams, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReadTicks") + err = msgp.WrapError(err, "IncomingStreams") return } zb0001Mask |= 0x10 - case "write_ios": - z.WriteIOs, bts, err = msgp.ReadUint64Bytes(bts) + case "outgoingMessages": + z.OutgoingMessages, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "WriteIOs") + err = msgp.WrapError(err, "OutgoingMessages") return } zb0001Mask |= 0x20 - case "write_merges": - z.WriteMerges, bts, err = msgp.ReadUint64Bytes(bts) + case "incomingMessages": + z.IncomingMessages, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "WriteMerges") + err = msgp.WrapError(err, "IncomingMessages") return } zb0001Mask |= 0x40 - case "write_sectors": - z.WriteSectors, bts, err = msgp.ReadUint64Bytes(bts) + case "outgoingBytes": + z.OutgoingBytes, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "WriteSectors") + err = msgp.WrapError(err, "OutgoingBytes") return } zb0001Mask |= 0x80 - case "write_ticks": - z.WriteTicks, bts, err = msgp.ReadUint64Bytes(bts) + case "incomingBytes": + z.IncomingBytes, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "WriteTicks") + err = msgp.WrapError(err, "IncomingBytes") return } zb0001Mask |= 0x100 - case "current_ios": - z.CurrentIOs, bts, err = msgp.ReadUint64Bytes(bts) + case "outQueue": + z.OutQueue, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "CurrentIOs") + err = msgp.WrapError(err, "OutQueue") return } zb0001Mask |= 0x200 - case "total_ticks": - z.TotalTicks, bts, err = msgp.ReadUint64Bytes(bts) + case "lastPongTime": + z.LastPongTime, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { - err = msgp.WrapError(err, "TotalTicks") + err = msgp.WrapError(err, "LastPongTime") return } zb0001Mask |= 0x400 - case "req_ticks": - z.ReqTicks, bts, err = msgp.ReadUint64Bytes(bts) + case "lastConnectTime": + z.LastConnectTime, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { - err = msgp.WrapError(err, "ReqTicks") + err = msgp.WrapError(err, "LastConnectTime") return } zb0001Mask |= 0x800 - case "discard_ios": - z.DiscardIOs, bts, err = msgp.ReadUint64Bytes(bts) + case "lastPingMS": + z.LastPingMS, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "DiscardIOs") + err = msgp.WrapError(err, "LastPingMS") return } zb0001Mask |= 0x1000 - case "discard_merges": - z.DiscardMerges, bts, err = msgp.ReadUint64Bytes(bts) + case "maxPingDurMS": + z.MaxPingDurMS, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "DiscardMerges") + err = msgp.WrapError(err, "MaxPingDurMS") return } zb0001Mask |= 0x2000 - case "discard_sectors": - z.DiscardSectors, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DiscardSectors") - return - } - zb0001Mask |= 0x4000 - case "discard_ticks": - z.DiscardTicks, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DiscardTicks") - return - } - zb0001Mask |= 0x8000 - case "flush_ios": - z.FlushIOs, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "FlushIOs") - return - } - zb0001Mask |= 0x10000 - case "flush_ticks": - z.FlushTicks, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "FlushTicks") - return - } - zb0001Mask |= 0x20000 - case "bitrot_detected": - z.BitrotDetected, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "BitrotDetected") - return - } - zb0001Mask |= 0x40000 - case "bitrot_healed": - z.BitrotHealed, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "BitrotHealed") - return - } - zb0001Mask |= 0x80000 default: bts, err = msgp.Skip(bts) if err != nil { @@ -6185,66 +6157,48 @@ func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0xfffff { + if zb0001Mask != 0x3fff { if (zb0001Mask & 0x1) == 0 { - z.N = 0 + z.Connected = 0 } if (zb0001Mask & 0x2) == 0 { - z.ReadIOs = 0 + z.Disconnected = 0 } if (zb0001Mask & 0x4) == 0 { - z.ReadMerges = 0 + z.ReconnectCount = 0 } if (zb0001Mask & 0x8) == 0 { - z.ReadSectors = 0 + z.OutgoingStreams = 0 } if (zb0001Mask & 0x10) == 0 { - z.ReadTicks = 0 + z.IncomingStreams = 0 } if (zb0001Mask & 0x20) == 0 { - z.WriteIOs = 0 + z.OutgoingMessages = 0 } if (zb0001Mask & 0x40) == 0 { - z.WriteMerges = 0 + z.IncomingMessages = 0 } if (zb0001Mask & 0x80) == 0 { - z.WriteSectors = 0 + z.OutgoingBytes = 0 } if (zb0001Mask & 0x100) == 0 { - z.WriteTicks = 0 + z.IncomingBytes = 0 } if (zb0001Mask & 0x200) == 0 { - z.CurrentIOs = 0 + z.OutQueue = 0 } if (zb0001Mask & 0x400) == 0 { - z.TotalTicks = 0 + z.LastPongTime = (time.Time{}) } if (zb0001Mask & 0x800) == 0 { - z.ReqTicks = 0 + z.LastConnectTime = (time.Time{}) } if (zb0001Mask & 0x1000) == 0 { - z.DiscardIOs = 0 + z.LastPingMS = 0 } if (zb0001Mask & 0x2000) == 0 { - z.DiscardMerges = 0 - } - if (zb0001Mask & 0x4000) == 0 { - z.DiscardSectors = 0 - } - if (zb0001Mask & 0x8000) == 0 { - z.DiscardTicks = 0 - } - if (zb0001Mask & 0x10000) == 0 { - z.FlushIOs = 0 - } - if (zb0001Mask & 0x20000) == 0 { - z.FlushTicks = 0 - } - if (zb0001Mask & 0x40000) == 0 { - z.BitrotDetected = 0 - } - if (zb0001Mask & 0x80000) == 0 { - z.BitrotHealed = 0 + z.MaxPingDurMS = 0 } } o = bts @@ -6252,13 +6206,13 @@ func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *DiskIOStats) Msgsize() (s int) { - s = 3 + 2 + msgp.IntSize + 9 + msgp.Uint64Size + 12 + msgp.Uint64Size + 13 + msgp.Uint64Size + 11 + msgp.Uint64Size + 10 + msgp.Uint64Size + 13 + msgp.Uint64Size + 14 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 15 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size +func (z *ConnectionStats) Msgsize() (s int) { + s = 1 + 10 + msgp.IntSize + 13 + msgp.IntSize + 15 + msgp.IntSize + 16 + msgp.IntSize + 16 + msgp.IntSize + 17 + msgp.Int64Size + 17 + msgp.Int64Size + 14 + msgp.Int64Size + 14 + msgp.Int64Size + 9 + msgp.IntSize + 13 + msgp.TimeSize + 16 + msgp.TimeSize + 11 + msgp.Float64Size + 13 + msgp.Float64Size return } // DecodeMsg implements msgp.Decodable -func (z *DiskIOStatsLegacy) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *DiskIOStats) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -6326,7 +6280,7 @@ func (z *DiskIOStatsLegacy) DecodeMsg(dc *msgp.Reader) (err error) { return } zb0001Mask |= 0x40 - case "wrte_sectors": + case "write_sectors": z.WriteSectors, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "WriteSectors") @@ -6375,7 +6329,7 @@ func (z *DiskIOStatsLegacy) DecodeMsg(dc *msgp.Reader) (err error) { return } zb0001Mask |= 0x2000 - case "discard_secotrs": + case "discard_sectors": z.DiscardSectors, err = dc.ReadUint64() if err != nil { err = msgp.WrapError(err, "DiscardSectors") @@ -6492,7 +6446,7 @@ func (z *DiskIOStatsLegacy) DecodeMsg(dc *msgp.Reader) (err error) { } // EncodeMsg implements msgp.Encodable -func (z *DiskIOStatsLegacy) EncodeMsg(en *msgp.Writer) (err error) { +func (z *DiskIOStats) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields zb0001Len := uint32(20) var zb0001Mask uint32 /* 20 bits */ @@ -6670,8 +6624,8 @@ func (z *DiskIOStatsLegacy) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "wrte_sectors" - err = en.Append(0xac, 0x77, 0x72, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + // write "write_sectors" + err = en.Append(0xad, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) if err != nil { return } @@ -6754,8 +6708,8 @@ func (z *DiskIOStatsLegacy) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not omitted - // write "discard_secotrs" - err = en.Append(0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x74, 0x72, 0x73) + // write "discard_sectors" + err = en.Append(0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) if err != nil { return } @@ -6830,7 +6784,7 @@ func (z *DiskIOStatsLegacy) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *DiskIOStatsLegacy) MarshalMsg(b []byte) (o []byte, err error) { +func (z *DiskIOStats) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields zb0001Len := uint32(20) @@ -6957,8 +6911,8 @@ func (z *DiskIOStatsLegacy) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendUint64(o, z.WriteMerges) } if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "wrte_sectors" - o = append(o, 0xac, 0x77, 0x72, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + // string "write_sectors" + o = append(o, 0xad, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) o = msgp.AppendUint64(o, z.WriteSectors) } if (zb0001Mask & 0x100) == 0 { // if not omitted @@ -6992,8 +6946,8 @@ func (z *DiskIOStatsLegacy) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendUint64(o, z.DiscardMerges) } if (zb0001Mask & 0x4000) == 0 { // if not omitted - // string "discard_secotrs" - o = append(o, 0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x74, 0x72, 0x73) + // string "discard_sectors" + o = append(o, 0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) o = msgp.AppendUint64(o, z.DiscardSectors) } if (zb0001Mask & 0x8000) == 0 { // if not omitted @@ -7026,7 +6980,7 @@ func (z *DiskIOStatsLegacy) MarshalMsg(b []byte) (o []byte, err error) { } // UnmarshalMsg implements msgp.Unmarshaler -func (z *DiskIOStatsLegacy) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *DiskIOStats) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -7094,7 +7048,7 @@ func (z *DiskIOStatsLegacy) UnmarshalMsg(bts []byte) (o []byte, err error) { return } zb0001Mask |= 0x40 - case "wrte_sectors": + case "write_sectors": z.WriteSectors, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { err = msgp.WrapError(err, "WriteSectors") @@ -7143,7 +7097,7 @@ func (z *DiskIOStatsLegacy) UnmarshalMsg(bts []byte) (o []byte, err error) { return } zb0001Mask |= 0x2000 - case "discard_secotrs": + case "discard_sectors": z.DiscardSectors, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { err = msgp.WrapError(err, "DiscardSectors") @@ -7261,13 +7215,13 @@ func (z *DiskIOStatsLegacy) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *DiskIOStatsLegacy) Msgsize() (s int) { - s = 3 + 2 + msgp.IntSize + 9 + msgp.Uint64Size + 12 + msgp.Uint64Size + 13 + msgp.Uint64Size + 11 + msgp.Uint64Size + 10 + msgp.Uint64Size + 13 + msgp.Uint64Size + 13 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 15 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size +func (z *DiskIOStats) Msgsize() (s int) { + s = 3 + 2 + msgp.IntSize + 9 + msgp.Uint64Size + 12 + msgp.Uint64Size + 13 + msgp.Uint64Size + 11 + msgp.Uint64Size + 10 + msgp.Uint64Size + 13 + msgp.Uint64Size + 14 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 15 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size return } // DecodeMsg implements msgp.Decodable -func (z *DiskMetric) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *DiskIOStatsLegacy) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -7276,7 +7230,7 @@ func (z *DiskMetric) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 16 bits */ + var zb0001Mask uint32 /* 20 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -7286,370 +7240,146 @@ func (z *DiskMetric) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "collected": - z.CollectedAt, err = dc.ReadTimeUTC() + case "n": + z.N, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "N") return } - case "n_disks": - z.NDisks, err = dc.ReadInt() + zb0001Mask |= 0x1 + case "read_ios": + z.ReadIOs, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "NDisks") + err = msgp.WrapError(err, "ReadIOs") return } - case "disk_idx": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "DiskIdx") - return - } - z.DiskIdx = nil - } else { - if z.DiskIdx == nil { - z.DiskIdx = new(int) - } - *z.DiskIdx, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "DiskIdx") - return - } - } - zb0001Mask |= 0x1 - case "set_idx": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "SetIdx") - return - } - z.SetIdx = nil - } else { - if z.SetIdx == nil { - z.SetIdx = new(int) - } - *z.SetIdx, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "SetIdx") - return - } - } zb0001Mask |= 0x2 - case "pool_idx": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "PoolIdx") - return - } - z.PoolIdx = nil - } else { - if z.PoolIdx == nil { - z.PoolIdx = new(int) - } - *z.PoolIdx, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "PoolIdx") - return - } + case "read_merges": + z.ReadMerges, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "ReadMerges") + return } zb0001Mask |= 0x4 - case "state": - var zb0002 uint32 - zb0002, err = dc.ReadMapHeader() + case "read_sectors": + z.ReadSectors, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "State") + err = msgp.WrapError(err, "ReadSectors") return } - if z.State == nil { - z.State = make(map[string]int, zb0002) - } else if len(z.State) > 0 { - clear(z.State) - } - for zb0002 > 0 { - zb0002-- - var za0001 string - za0001, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "State") - return - } - var za0002 int - za0002, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "State", za0001) - return - } - z.State[za0001] = za0002 - } zb0001Mask |= 0x8 - case "offline": - z.Offline, err = dc.ReadInt() + case "read_ticks": + z.ReadTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Offline") + err = msgp.WrapError(err, "ReadTicks") return } zb0001Mask |= 0x10 - case "waiting": - z.Hanging, err = dc.ReadInt() + case "write_ios": + z.WriteIOs, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Hanging") + err = msgp.WrapError(err, "WriteIOs") return } zb0001Mask |= 0x20 - case "healing": - z.Healing, err = dc.ReadInt() + case "write_merges": + z.WriteMerges, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Healing") + err = msgp.WrapError(err, "WriteMerges") return } zb0001Mask |= 0x40 - case "healingInfo": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "HealingInfo") - return - } - z.HealingInfo = nil - } else { - if z.HealingInfo == nil { - z.HealingInfo = new(DriveHealInfo) - } - err = z.HealingInfo.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "HealingInfo") - return - } + case "wrte_sectors": + z.WriteSectors, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "WriteSectors") + return } zb0001Mask |= 0x80 - case "cache": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "Cache") - return - } - z.Cache = nil - } else { - if z.Cache == nil { - z.Cache = new(CacheStats) - } - err = z.Cache.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "Cache") - return - } - } - zb0001Mask |= 0x100 - case "space": - err = z.Space.DecodeMsg(dc) + case "write_ticks": + z.WriteTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Space") + err = msgp.WrapError(err, "WriteTicks") return } - case "lifetime_ops": - var zb0003 uint32 - zb0003, err = dc.ReadMapHeader() + zb0001Mask |= 0x100 + case "current_ios": + z.CurrentIOs, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "LifetimeOps") + err = msgp.WrapError(err, "CurrentIOs") return } - if z.LifetimeOps == nil { - z.LifetimeOps = make(map[string]DiskAction, zb0003) - } else if len(z.LifetimeOps) > 0 { - clear(z.LifetimeOps) - } - for zb0003 > 0 { - zb0003-- - var za0003 string - za0003, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LifetimeOps") - return - } - var za0004 DiskAction - err = za0004.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps", za0003) - return - } - z.LifetimeOps[za0003] = za0004 - } zb0001Mask |= 0x200 - case "last_minute": - var zb0004 uint32 - zb0004, err = dc.ReadMapHeader() + case "total_ticks": + z.TotalTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "TotalTicks") return } - if z.LastMinute == nil { - z.LastMinute = make(map[string]DiskAction, zb0004) - } else if len(z.LastMinute) > 0 { - clear(z.LastMinute) - } - for zb0004 > 0 { - zb0004-- - var za0005 string - za0005, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - var za0006 DiskAction - err = za0006.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastMinute", za0005) - return - } - z.LastMinute[za0005] = za0006 - } zb0001Mask |= 0x400 - case "last_day": - var zb0005 uint32 - zb0005, err = dc.ReadMapHeader() + case "req_ticks": + z.ReqTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") + err = msgp.WrapError(err, "ReqTicks") return } - if z.LastDaySegmented == nil { - z.LastDaySegmented = make(map[string]SegmentedDiskActions, zb0005) - } else if len(z.LastDaySegmented) > 0 { - clear(z.LastDaySegmented) - } - for zb0005 > 0 { - zb0005-- - var za0007 string - za0007, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") - return - } - var za0008 SegmentedDiskActions - err = (*Segmented[DiskAction, *DiskAction])(&za0008).DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented", za0007) - return - } - z.LastDaySegmented[za0007] = za0008 - } zb0001Mask |= 0x800 - case "last_hour": - var zb0006 uint32 - zb0006, err = dc.ReadMapHeader() + case "discard_ios": + z.DiscardIOs, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") + err = msgp.WrapError(err, "DiscardIOs") return } - if z.LastHourSegmented == nil { - z.LastHourSegmented = make(map[string]SegmentedDiskActions, zb0006) - } else if len(z.LastHourSegmented) > 0 { - clear(z.LastHourSegmented) - } - for zb0006 > 0 { - zb0006-- - var za0009 string - za0009, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") - return - } - var za0010 SegmentedDiskActions - err = (*Segmented[DiskAction, *DiskAction])(&za0010).DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented", za0009) - return - } - z.LastHourSegmented[za0009] = za0010 - } zb0001Mask |= 0x1000 - case "iostats": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "IOStats") - return - } - z.IOStats = nil - } else { - if z.IOStats == nil { - z.IOStats = new(DiskIOStatsLegacy) - } - err = z.IOStats.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "IOStats") - return - } + case "discard_merges": + z.DiscardMerges, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "DiscardMerges") + return } zb0001Mask |= 0x2000 - case "io_min": - err = z.IOStatsMinute.DecodeMsg(dc) + case "discard_secotrs": + z.DiscardSectors, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "IOStatsMinute") + err = msgp.WrapError(err, "DiscardSectors") return } - case "io_day": - err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).DecodeMsg(dc) + zb0001Mask |= 0x4000 + case "discard_ticks": + z.DiscardTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "IOStatsDay") + err = msgp.WrapError(err, "DiscardTicks") return } - case "io_hour": - err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).DecodeMsg(dc) + zb0001Mask |= 0x8000 + case "flush_ios": + z.FlushIOs, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "IOStatsHour") + err = msgp.WrapError(err, "FlushIOs") return } - case "smart": - if dc.IsNil() { - err = dc.ReadNil() - if err != nil { - err = msgp.WrapError(err, "SMART") - return - } - z.SMART = nil - } else { - if z.SMART == nil { - z.SMART = new(SMARTInfo) - } - err = z.SMART.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "SMART") - return - } - } - zb0001Mask |= 0x4000 - case "fsType": - var zb0007 uint32 - zb0007, err = dc.ReadMapHeader() + zb0001Mask |= 0x10000 + case "flush_ticks": + z.FlushTicks, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "FSType") + err = msgp.WrapError(err, "FlushTicks") return } - if z.FSType == nil { - z.FSType = make(map[string]int, zb0007) - } else if len(z.FSType) > 0 { - clear(z.FSType) + zb0001Mask |= 0x20000 + case "bitrot_detected": + z.BitrotDetected, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "BitrotDetected") + return } - for zb0007 > 0 { - zb0007-- - var za0011 string - za0011, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "FSType") - return - } - var za0012 int - za0012, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "FSType", za0011) - return - } - z.FSType[za0011] = za0012 + zb0001Mask |= 0x40000 + case "bitrot_healed": + z.BitrotHealed, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "BitrotHealed") + return } - zb0001Mask |= 0x8000 + zb0001Mask |= 0x80000 default: err = dc.Skip() if err != nil { @@ -7659,128 +7389,156 @@ func (z *DiskMetric) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0xffff { + if zb0001Mask != 0xfffff { if (zb0001Mask & 0x1) == 0 { - z.DiskIdx = nil + z.N = 0 } if (zb0001Mask & 0x2) == 0 { - z.SetIdx = nil + z.ReadIOs = 0 } if (zb0001Mask & 0x4) == 0 { - z.PoolIdx = nil + z.ReadMerges = 0 } if (zb0001Mask & 0x8) == 0 { - z.State = nil + z.ReadSectors = 0 } if (zb0001Mask & 0x10) == 0 { - z.Offline = 0 + z.ReadTicks = 0 } if (zb0001Mask & 0x20) == 0 { - z.Hanging = 0 + z.WriteIOs = 0 } if (zb0001Mask & 0x40) == 0 { - z.Healing = 0 + z.WriteMerges = 0 } if (zb0001Mask & 0x80) == 0 { - z.HealingInfo = nil + z.WriteSectors = 0 } if (zb0001Mask & 0x100) == 0 { - z.Cache = nil + z.WriteTicks = 0 } if (zb0001Mask & 0x200) == 0 { - z.LifetimeOps = nil + z.CurrentIOs = 0 } if (zb0001Mask & 0x400) == 0 { - z.LastMinute = nil + z.TotalTicks = 0 } if (zb0001Mask & 0x800) == 0 { - z.LastDaySegmented = nil + z.ReqTicks = 0 } if (zb0001Mask & 0x1000) == 0 { - z.LastHourSegmented = nil + z.DiscardIOs = 0 } if (zb0001Mask & 0x2000) == 0 { - z.IOStats = nil + z.DiscardMerges = 0 } if (zb0001Mask & 0x4000) == 0 { - z.SMART = nil + z.DiscardSectors = 0 } if (zb0001Mask & 0x8000) == 0 { - z.FSType = nil + z.DiscardTicks = 0 + } + if (zb0001Mask & 0x10000) == 0 { + z.FlushIOs = 0 + } + if (zb0001Mask & 0x20000) == 0 { + z.FlushTicks = 0 + } + if (zb0001Mask & 0x40000) == 0 { + z.BitrotDetected = 0 + } + if (zb0001Mask & 0x80000) == 0 { + z.BitrotHealed = 0 } } return } // EncodeMsg implements msgp.Encodable -func (z *DiskMetric) EncodeMsg(en *msgp.Writer) (err error) { +func (z *DiskIOStatsLegacy) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(22) - var zb0001Mask uint32 /* 22 bits */ + zb0001Len := uint32(20) + var zb0001Mask uint32 /* 20 bits */ _ = zb0001Mask - if z.DiskIdx == nil { + if z.N == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.ReadIOs == 0 { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.ReadMerges == 0 { zb0001Len-- zb0001Mask |= 0x4 } - if z.SetIdx == nil { + if z.ReadSectors == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.PoolIdx == nil { + if z.ReadTicks == 0 { zb0001Len-- zb0001Mask |= 0x10 } - if z.State == nil { + if z.WriteIOs == 0 { zb0001Len-- zb0001Mask |= 0x20 } - if z.Offline == 0 { + if z.WriteMerges == 0 { zb0001Len-- zb0001Mask |= 0x40 } - if z.Hanging == 0 { + if z.WriteSectors == 0 { zb0001Len-- zb0001Mask |= 0x80 } - if z.Healing == 0 { + if z.WriteTicks == 0 { zb0001Len-- zb0001Mask |= 0x100 } - if z.HealingInfo == nil { + if z.CurrentIOs == 0 { zb0001Len-- zb0001Mask |= 0x200 } - if z.Cache == nil { + if z.TotalTicks == 0 { zb0001Len-- zb0001Mask |= 0x400 } - if z.LifetimeOps == nil { + if z.ReqTicks == 0 { + zb0001Len-- + zb0001Mask |= 0x800 + } + if z.DiscardIOs == 0 { zb0001Len-- zb0001Mask |= 0x1000 } - if z.LastMinute == nil { + if z.DiscardMerges == 0 { zb0001Len-- zb0001Mask |= 0x2000 } - if z.LastDaySegmented == nil { + if z.DiscardSectors == 0 { zb0001Len-- zb0001Mask |= 0x4000 } - if z.LastHourSegmented == nil { + if z.DiscardTicks == 0 { zb0001Len-- zb0001Mask |= 0x8000 } - if z.IOStats == nil { + if z.FlushIOs == 0 { zb0001Len-- zb0001Mask |= 0x10000 } - if z.SMART == nil { + if z.FlushTicks == 0 { zb0001Len-- - zb0001Mask |= 0x100000 + zb0001Mask |= 0x20000 } - if z.FSType == nil { + if z.BitrotDetected == 0 { zb0001Len-- - zb0001Mask |= 0x200000 + zb0001Mask |= 0x40000 + } + if z.BitrotHealed == 0 { + zb0001Len-- + zb0001Mask |= 0x80000 } // variable map header, size zb0001Len err = en.WriteMapHeader(zb0001Len) @@ -7790,377 +7548,244 @@ func (z *DiskMetric) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - // write "collected" - err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteTime(z.CollectedAt) - if err != nil { - err = msgp.WrapError(err, "CollectedAt") - return - } - // write "n_disks" - err = en.Append(0xa7, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x73) - if err != nil { - return + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "n" + err = en.Append(0xa1, 0x6e) + if err != nil { + return + } + err = en.WriteInt(z.N) + if err != nil { + err = msgp.WrapError(err, "N") + return + } } - err = en.WriteInt(z.NDisks) - if err != nil { - err = msgp.WrapError(err, "NDisks") - return + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "read_ios" + err = en.Append(0xa8, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x73) + if err != nil { + return + } + err = en.WriteUint64(z.ReadIOs) + if err != nil { + err = msgp.WrapError(err, "ReadIOs") + return + } } if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "disk_idx" - err = en.Append(0xa8, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x78) + // write "read_merges" + err = en.Append(0xab, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) if err != nil { return } - if z.DiskIdx == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = en.WriteInt(*z.DiskIdx) - if err != nil { - err = msgp.WrapError(err, "DiskIdx") - return - } + err = en.WriteUint64(z.ReadMerges) + if err != nil { + err = msgp.WrapError(err, "ReadMerges") + return } } if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "set_idx" - err = en.Append(0xa7, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78) + // write "read_sectors" + err = en.Append(0xac, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) if err != nil { return } - if z.SetIdx == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = en.WriteInt(*z.SetIdx) - if err != nil { - err = msgp.WrapError(err, "SetIdx") - return - } + err = en.WriteUint64(z.ReadSectors) + if err != nil { + err = msgp.WrapError(err, "ReadSectors") + return } } if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "pool_idx" - err = en.Append(0xa8, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x78) + // write "read_ticks" + err = en.Append(0xaa, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - if z.PoolIdx == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = en.WriteInt(*z.PoolIdx) - if err != nil { - err = msgp.WrapError(err, "PoolIdx") - return - } + err = en.WriteUint64(z.ReadTicks) + if err != nil { + err = msgp.WrapError(err, "ReadTicks") + return } } if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "state" - err = en.Append(0xa5, 0x73, 0x74, 0x61, 0x74, 0x65) + // write "write_ios" + err = en.Append(0xa9, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.State))) + err = en.WriteUint64(z.WriteIOs) if err != nil { - err = msgp.WrapError(err, "State") + err = msgp.WrapError(err, "WriteIOs") return } - for za0001, za0002 := range z.State { - err = en.WriteString(za0001) - if err != nil { - err = msgp.WrapError(err, "State") - return - } - err = en.WriteInt(za0002) - if err != nil { - err = msgp.WrapError(err, "State", za0001) - return - } - } } if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "offline" - err = en.Append(0xa7, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65) + // write "write_merges" + err = en.Append(0xac, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) if err != nil { return } - err = en.WriteInt(z.Offline) + err = en.WriteUint64(z.WriteMerges) if err != nil { - err = msgp.WrapError(err, "Offline") + err = msgp.WrapError(err, "WriteMerges") return } } if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "waiting" - err = en.Append(0xa7, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67) + // write "wrte_sectors" + err = en.Append(0xac, 0x77, 0x72, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) if err != nil { return } - err = en.WriteInt(z.Hanging) + err = en.WriteUint64(z.WriteSectors) if err != nil { - err = msgp.WrapError(err, "Hanging") + err = msgp.WrapError(err, "WriteSectors") return } } if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "healing" - err = en.Append(0xa7, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67) + // write "write_ticks" + err = en.Append(0xab, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - err = en.WriteInt(z.Healing) + err = en.WriteUint64(z.WriteTicks) if err != nil { - err = msgp.WrapError(err, "Healing") + err = msgp.WrapError(err, "WriteTicks") return } } if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "healingInfo" - err = en.Append(0xab, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f) + // write "current_ios" + err = en.Append(0xab, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6f, 0x73) if err != nil { return } - if z.HealingInfo == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = z.HealingInfo.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "HealingInfo") - return - } + err = en.WriteUint64(z.CurrentIOs) + if err != nil { + err = msgp.WrapError(err, "CurrentIOs") + return } } if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "cache" - err = en.Append(0xa5, 0x63, 0x61, 0x63, 0x68, 0x65) + // write "total_ticks" + err = en.Append(0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - if z.Cache == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = z.Cache.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "Cache") - return - } + err = en.WriteUint64(z.TotalTicks) + if err != nil { + err = msgp.WrapError(err, "TotalTicks") + return } } - // write "space" - err = en.Append(0xa5, 0x73, 0x70, 0x61, 0x63, 0x65) - if err != nil { - return - } - err = z.Space.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "Space") - return - } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "lifetime_ops" - err = en.Append(0xac, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) + if (zb0001Mask & 0x800) == 0 { // if not omitted + // write "req_ticks" + err = en.Append(0xa9, 0x72, 0x65, 0x71, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LifetimeOps))) + err = en.WriteUint64(z.ReqTicks) if err != nil { - err = msgp.WrapError(err, "LifetimeOps") + err = msgp.WrapError(err, "ReqTicks") return } - for za0003, za0004 := range z.LifetimeOps { - err = en.WriteString(za0003) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps") - return - } - err = za0004.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps", za0003) - return - } + } + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // write "discard_ios" + err = en.Append(0xab, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x73) + if err != nil { + return + } + err = en.WriteUint64(z.DiscardIOs) + if err != nil { + err = msgp.WrapError(err, "DiscardIOs") + return } } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "last_minute" - err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + // write "discard_merges" + err = en.Append(0xae, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LastMinute))) + err = en.WriteUint64(z.DiscardMerges) if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "DiscardMerges") return } - for za0005, za0006 := range z.LastMinute { - err = en.WriteString(za0005) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - err = za0006.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastMinute", za0005) - return - } - } } if (zb0001Mask & 0x4000) == 0 { // if not omitted - // write "last_day" - err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + // write "discard_secotrs" + err = en.Append(0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x74, 0x72, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LastDaySegmented))) + err = en.WriteUint64(z.DiscardSectors) if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") + err = msgp.WrapError(err, "DiscardSectors") return } - for za0007, za0008 := range z.LastDaySegmented { - err = en.WriteString(za0007) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") - return - } - err = (*Segmented[DiskAction, *DiskAction])(&za0008).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented", za0007) - return - } - } } if (zb0001Mask & 0x8000) == 0 { // if not omitted - // write "last_hour" - err = en.Append(0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) + // write "discard_ticks" + err = en.Append(0xad, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LastHourSegmented))) + err = en.WriteUint64(z.DiscardTicks) if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") + err = msgp.WrapError(err, "DiscardTicks") return } - for za0009, za0010 := range z.LastHourSegmented { - err = en.WriteString(za0009) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") - return - } - err = (*Segmented[DiskAction, *DiskAction])(&za0010).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented", za0009) - return - } - } } if (zb0001Mask & 0x10000) == 0 { // if not omitted - // write "iostats" - err = en.Append(0xa7, 0x69, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x73) + // write "flush_ios" + err = en.Append(0xa9, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x6f, 0x73) if err != nil { return } - if z.IOStats == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = z.IOStats.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "IOStats") - return - } + err = en.WriteUint64(z.FlushIOs) + if err != nil { + err = msgp.WrapError(err, "FlushIOs") + return } } - // write "io_min" - err = en.Append(0xa6, 0x69, 0x6f, 0x5f, 0x6d, 0x69, 0x6e) - if err != nil { - return - } - err = z.IOStatsMinute.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "IOStatsMinute") - return - } - // write "io_day" - err = en.Append(0xa6, 0x69, 0x6f, 0x5f, 0x64, 0x61, 0x79) - if err != nil { - return - } - err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "IOStatsDay") - return - } - // write "io_hour" - err = en.Append(0xa7, 0x69, 0x6f, 0x5f, 0x68, 0x6f, 0x75, 0x72) - if err != nil { - return - } - err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "IOStatsHour") - return - } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // write "smart" - err = en.Append(0xa5, 0x73, 0x6d, 0x61, 0x72, 0x74) + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // write "flush_ticks" + err = en.Append(0xab, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) if err != nil { return } - if z.SMART == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = z.SMART.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "SMART") - return - } + err = en.WriteUint64(z.FlushTicks) + if err != nil { + err = msgp.WrapError(err, "FlushTicks") + return } } - if (zb0001Mask & 0x200000) == 0 { // if not omitted - // write "fsType" - err = en.Append(0xa6, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65) + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // write "bitrot_detected" + err = en.Append(0xaf, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.FSType))) + err = en.WriteUint64(z.BitrotDetected) if err != nil { - err = msgp.WrapError(err, "FSType") + err = msgp.WrapError(err, "BitrotDetected") return } - for za0011, za0012 := range z.FSType { - err = en.WriteString(za0011) - if err != nil { - err = msgp.WrapError(err, "FSType") - return - } - err = en.WriteInt(za0012) - if err != nil { - err = msgp.WrapError(err, "FSType", za0011) - return - } + } + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // write "bitrot_healed" + err = en.Append(0xad, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteUint64(z.BitrotHealed) + if err != nil { + err = msgp.WrapError(err, "BitrotHealed") + return } } } @@ -8168,285 +7793,203 @@ func (z *DiskMetric) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *DiskMetric) MarshalMsg(b []byte) (o []byte, err error) { +func (z *DiskIOStatsLegacy) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(22) - var zb0001Mask uint32 /* 22 bits */ + zb0001Len := uint32(20) + var zb0001Mask uint32 /* 20 bits */ _ = zb0001Mask - if z.DiskIdx == nil { + if z.N == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.ReadIOs == 0 { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.ReadMerges == 0 { zb0001Len-- zb0001Mask |= 0x4 } - if z.SetIdx == nil { + if z.ReadSectors == 0 { zb0001Len-- zb0001Mask |= 0x8 } - if z.PoolIdx == nil { + if z.ReadTicks == 0 { zb0001Len-- zb0001Mask |= 0x10 } - if z.State == nil { + if z.WriteIOs == 0 { zb0001Len-- zb0001Mask |= 0x20 } - if z.Offline == 0 { + if z.WriteMerges == 0 { zb0001Len-- zb0001Mask |= 0x40 } - if z.Hanging == 0 { + if z.WriteSectors == 0 { zb0001Len-- zb0001Mask |= 0x80 } - if z.Healing == 0 { + if z.WriteTicks == 0 { zb0001Len-- zb0001Mask |= 0x100 } - if z.HealingInfo == nil { + if z.CurrentIOs == 0 { zb0001Len-- zb0001Mask |= 0x200 } - if z.Cache == nil { + if z.TotalTicks == 0 { zb0001Len-- zb0001Mask |= 0x400 } - if z.LifetimeOps == nil { + if z.ReqTicks == 0 { + zb0001Len-- + zb0001Mask |= 0x800 + } + if z.DiscardIOs == 0 { zb0001Len-- zb0001Mask |= 0x1000 } - if z.LastMinute == nil { + if z.DiscardMerges == 0 { zb0001Len-- zb0001Mask |= 0x2000 } - if z.LastDaySegmented == nil { + if z.DiscardSectors == 0 { zb0001Len-- zb0001Mask |= 0x4000 } - if z.LastHourSegmented == nil { + if z.DiscardTicks == 0 { zb0001Len-- zb0001Mask |= 0x8000 } - if z.IOStats == nil { + if z.FlushIOs == 0 { zb0001Len-- zb0001Mask |= 0x10000 } - if z.SMART == nil { + if z.FlushTicks == 0 { zb0001Len-- - zb0001Mask |= 0x100000 + zb0001Mask |= 0x20000 } - if z.FSType == nil { + if z.BitrotDetected == 0 { zb0001Len-- - zb0001Mask |= 0x200000 + zb0001Mask |= 0x40000 + } + if z.BitrotHealed == 0 { + zb0001Len-- + zb0001Mask |= 0x80000 } // variable map header, size zb0001Len o = msgp.AppendMapHeader(o, zb0001Len) // skip if no fields are to be emitted if zb0001Len != 0 { - // string "collected" - o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendTime(o, z.CollectedAt) - // string "n_disks" - o = append(o, 0xa7, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x73) - o = msgp.AppendInt(o, z.NDisks) + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "n" + o = append(o, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "read_ios" + o = append(o, 0xa8, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x73) + o = msgp.AppendUint64(o, z.ReadIOs) + } if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "disk_idx" - o = append(o, 0xa8, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x78) - if z.DiskIdx == nil { - o = msgp.AppendNil(o) - } else { - o = msgp.AppendInt(o, *z.DiskIdx) - } + // string "read_merges" + o = append(o, 0xab, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) + o = msgp.AppendUint64(o, z.ReadMerges) } if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "set_idx" - o = append(o, 0xa7, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78) - if z.SetIdx == nil { - o = msgp.AppendNil(o) - } else { - o = msgp.AppendInt(o, *z.SetIdx) - } + // string "read_sectors" + o = append(o, 0xac, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + o = msgp.AppendUint64(o, z.ReadSectors) } if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "pool_idx" - o = append(o, 0xa8, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x78) - if z.PoolIdx == nil { - o = msgp.AppendNil(o) - } else { - o = msgp.AppendInt(o, *z.PoolIdx) - } + // string "read_ticks" + o = append(o, 0xaa, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.ReadTicks) } if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "state" - o = append(o, 0xa5, 0x73, 0x74, 0x61, 0x74, 0x65) - o = msgp.AppendMapHeader(o, uint32(len(z.State))) - for za0001, za0002 := range z.State { - o = msgp.AppendString(o, za0001) - o = msgp.AppendInt(o, za0002) - } + // string "write_ios" + o = append(o, 0xa9, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x73) + o = msgp.AppendUint64(o, z.WriteIOs) } if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "offline" - o = append(o, 0xa7, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65) - o = msgp.AppendInt(o, z.Offline) + // string "write_merges" + o = append(o, 0xac, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) + o = msgp.AppendUint64(o, z.WriteMerges) } if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "waiting" - o = append(o, 0xa7, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67) - o = msgp.AppendInt(o, z.Hanging) + // string "wrte_sectors" + o = append(o, 0xac, 0x77, 0x72, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73) + o = msgp.AppendUint64(o, z.WriteSectors) } if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "healing" - o = append(o, 0xa7, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67) - o = msgp.AppendInt(o, z.Healing) + // string "write_ticks" + o = append(o, 0xab, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.WriteTicks) } if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "healingInfo" - o = append(o, 0xab, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f) - if z.HealingInfo == nil { - o = msgp.AppendNil(o) - } else { - o, err = z.HealingInfo.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "HealingInfo") - return - } - } + // string "current_ios" + o = append(o, 0xab, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6f, 0x73) + o = msgp.AppendUint64(o, z.CurrentIOs) } if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "cache" - o = append(o, 0xa5, 0x63, 0x61, 0x63, 0x68, 0x65) - if z.Cache == nil { - o = msgp.AppendNil(o) - } else { - o, err = z.Cache.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "Cache") - return - } - } + // string "total_ticks" + o = append(o, 0xab, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.TotalTicks) } - // string "space" - o = append(o, 0xa5, 0x73, 0x70, 0x61, 0x63, 0x65) - o, err = z.Space.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "Space") - return + if (zb0001Mask & 0x800) == 0 { // if not omitted + // string "req_ticks" + o = append(o, 0xa9, 0x72, 0x65, 0x71, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.ReqTicks) } if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "lifetime_ops" - o = append(o, 0xac, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.LifetimeOps))) - for za0003, za0004 := range z.LifetimeOps { - o = msgp.AppendString(o, za0003) - o, err = za0004.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps", za0003) - return - } - } + // string "discard_ios" + o = append(o, 0xab, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x73) + o = msgp.AppendUint64(o, z.DiscardIOs) } if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "last_minute" - o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) - o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute))) - for za0005, za0006 := range z.LastMinute { - o = msgp.AppendString(o, za0005) - o, err = za0006.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastMinute", za0005) - return - } - } + // string "discard_merges" + o = append(o, 0xae, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73) + o = msgp.AppendUint64(o, z.DiscardMerges) } if (zb0001Mask & 0x4000) == 0 { // if not omitted - // string "last_day" - o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) - o = msgp.AppendMapHeader(o, uint32(len(z.LastDaySegmented))) - for za0007, za0008 := range z.LastDaySegmented { - o = msgp.AppendString(o, za0007) - o, err = (*Segmented[DiskAction, *DiskAction])(&za0008).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented", za0007) - return - } - } + // string "discard_secotrs" + o = append(o, 0xaf, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x74, 0x72, 0x73) + o = msgp.AppendUint64(o, z.DiscardSectors) } if (zb0001Mask & 0x8000) == 0 { // if not omitted - // string "last_hour" - o = append(o, 0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) - o = msgp.AppendMapHeader(o, uint32(len(z.LastHourSegmented))) - for za0009, za0010 := range z.LastHourSegmented { - o = msgp.AppendString(o, za0009) - o, err = (*Segmented[DiskAction, *DiskAction])(&za0010).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented", za0009) - return - } - } + // string "discard_ticks" + o = append(o, 0xad, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.DiscardTicks) } if (zb0001Mask & 0x10000) == 0 { // if not omitted - // string "iostats" - o = append(o, 0xa7, 0x69, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x73) - if z.IOStats == nil { - o = msgp.AppendNil(o) - } else { - o, err = z.IOStats.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "IOStats") - return - } - } - } - // string "io_min" - o = append(o, 0xa6, 0x69, 0x6f, 0x5f, 0x6d, 0x69, 0x6e) - o, err = z.IOStatsMinute.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "IOStatsMinute") - return - } - // string "io_day" - o = append(o, 0xa6, 0x69, 0x6f, 0x5f, 0x64, 0x61, 0x79) - o, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "IOStatsDay") - return + // string "flush_ios" + o = append(o, 0xa9, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x6f, 0x73) + o = msgp.AppendUint64(o, z.FlushIOs) } - // string "io_hour" - o = append(o, 0xa7, 0x69, 0x6f, 0x5f, 0x68, 0x6f, 0x75, 0x72) - o, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "IOStatsHour") - return + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // string "flush_ticks" + o = append(o, 0xab, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73) + o = msgp.AppendUint64(o, z.FlushTicks) } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // string "smart" - o = append(o, 0xa5, 0x73, 0x6d, 0x61, 0x72, 0x74) - if z.SMART == nil { - o = msgp.AppendNil(o) - } else { - o, err = z.SMART.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "SMART") - return - } - } + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // string "bitrot_detected" + o = append(o, 0xaf, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendUint64(o, z.BitrotDetected) } - if (zb0001Mask & 0x200000) == 0 { // if not omitted - // string "fsType" - o = append(o, 0xa6, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65) - o = msgp.AppendMapHeader(o, uint32(len(z.FSType))) - for za0011, za0012 := range z.FSType { - o = msgp.AppendString(o, za0011) - o = msgp.AppendInt(o, za0012) - } + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // string "bitrot_healed" + o = append(o, 0xad, 0x62, 0x69, 0x74, 0x72, 0x6f, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64) + o = msgp.AppendUint64(o, z.BitrotHealed) } } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *DiskIOStatsLegacy) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -8455,7 +7998,7 @@ func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 16 bits */ + var zb0001Mask uint32 /* 20 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -8465,363 +8008,146 @@ func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "collected": - z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "N") return } - case "n_disks": - z.NDisks, bts, err = msgp.ReadIntBytes(bts) + zb0001Mask |= 0x1 + case "read_ios": + z.ReadIOs, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "NDisks") + err = msgp.WrapError(err, "ReadIOs") return } - case "disk_idx": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.DiskIdx = nil - } else { - if z.DiskIdx == nil { - z.DiskIdx = new(int) - } - *z.DiskIdx, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "DiskIdx") - return - } - } - zb0001Mask |= 0x1 - case "set_idx": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.SetIdx = nil - } else { - if z.SetIdx == nil { - z.SetIdx = new(int) - } - *z.SetIdx, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "SetIdx") - return - } - } - zb0001Mask |= 0x2 - case "pool_idx": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.PoolIdx = nil - } else { - if z.PoolIdx == nil { - z.PoolIdx = new(int) - } - *z.PoolIdx, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "PoolIdx") - return - } + zb0001Mask |= 0x2 + case "read_merges": + z.ReadMerges, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "ReadMerges") + return } zb0001Mask |= 0x4 - case "state": - var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + case "read_sectors": + z.ReadSectors, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "State") + err = msgp.WrapError(err, "ReadSectors") return } - if z.State == nil { - z.State = make(map[string]int, zb0002) - } else if len(z.State) > 0 { - clear(z.State) - } - for zb0002 > 0 { - var za0002 int - zb0002-- - var za0001 string - za0001, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "State") - return - } - za0002, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "State", za0001) - return - } - z.State[za0001] = za0002 - } zb0001Mask |= 0x8 - case "offline": - z.Offline, bts, err = msgp.ReadIntBytes(bts) + case "read_ticks": + z.ReadTicks, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Offline") + err = msgp.WrapError(err, "ReadTicks") return } zb0001Mask |= 0x10 - case "waiting": - z.Hanging, bts, err = msgp.ReadIntBytes(bts) + case "write_ios": + z.WriteIOs, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Hanging") + err = msgp.WrapError(err, "WriteIOs") return } zb0001Mask |= 0x20 - case "healing": - z.Healing, bts, err = msgp.ReadIntBytes(bts) + case "write_merges": + z.WriteMerges, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Healing") + err = msgp.WrapError(err, "WriteMerges") return } zb0001Mask |= 0x40 - case "healingInfo": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.HealingInfo = nil - } else { - if z.HealingInfo == nil { - z.HealingInfo = new(DriveHealInfo) - } - bts, err = z.HealingInfo.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "HealingInfo") - return - } + case "wrte_sectors": + z.WriteSectors, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "WriteSectors") + return } zb0001Mask |= 0x80 - case "cache": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.Cache = nil - } else { - if z.Cache == nil { - z.Cache = new(CacheStats) - } - bts, err = z.Cache.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "Cache") - return - } + case "write_ticks": + z.WriteTicks, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "WriteTicks") + return } zb0001Mask |= 0x100 - case "space": - bts, err = z.Space.UnmarshalMsg(bts) + case "current_ios": + z.CurrentIOs, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Space") + err = msgp.WrapError(err, "CurrentIOs") return } - case "lifetime_ops": - var zb0003 uint32 - zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x200 + case "total_ticks": + z.TotalTicks, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LifetimeOps") + err = msgp.WrapError(err, "TotalTicks") return } - if z.LifetimeOps == nil { - z.LifetimeOps = make(map[string]DiskAction, zb0003) - } else if len(z.LifetimeOps) > 0 { - clear(z.LifetimeOps) - } - for zb0003 > 0 { - var za0004 DiskAction - zb0003-- - var za0003 string - za0003, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps") - return - } - bts, err = za0004.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LifetimeOps", za0003) - return - } - z.LifetimeOps[za0003] = za0004 + zb0001Mask |= 0x400 + case "req_ticks": + z.ReqTicks, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "ReqTicks") + return } - zb0001Mask |= 0x200 - case "last_minute": - var zb0004 uint32 - zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x800 + case "discard_ios": + z.DiscardIOs, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "DiscardIOs") return } - if z.LastMinute == nil { - z.LastMinute = make(map[string]DiskAction, zb0004) - } else if len(z.LastMinute) > 0 { - clear(z.LastMinute) + zb0001Mask |= 0x1000 + case "discard_merges": + z.DiscardMerges, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "DiscardMerges") + return } - for zb0004 > 0 { - var za0006 DiskAction - zb0004-- - var za0005 string - za0005, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - bts, err = za0006.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", za0005) - return - } - z.LastMinute[za0005] = za0006 + zb0001Mask |= 0x2000 + case "discard_secotrs": + z.DiscardSectors, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "DiscardSectors") + return } - zb0001Mask |= 0x400 - case "last_day": - var zb0005 uint32 - zb0005, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x4000 + case "discard_ticks": + z.DiscardTicks, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") + err = msgp.WrapError(err, "DiscardTicks") return } - if z.LastDaySegmented == nil { - z.LastDaySegmented = make(map[string]SegmentedDiskActions, zb0005) - } else if len(z.LastDaySegmented) > 0 { - clear(z.LastDaySegmented) + zb0001Mask |= 0x8000 + case "flush_ios": + z.FlushIOs, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FlushIOs") + return } - for zb0005 > 0 { - var za0008 SegmentedDiskActions - zb0005-- - var za0007 string - za0007, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented") - return - } - bts, err = (*Segmented[DiskAction, *DiskAction])(&za0008).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastDaySegmented", za0007) - return - } - z.LastDaySegmented[za0007] = za0008 + zb0001Mask |= 0x10000 + case "flush_ticks": + z.FlushTicks, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FlushTicks") + return } - zb0001Mask |= 0x800 - case "last_hour": - var zb0006 uint32 - zb0006, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x20000 + case "bitrot_detected": + z.BitrotDetected, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") + err = msgp.WrapError(err, "BitrotDetected") return } - if z.LastHourSegmented == nil { - z.LastHourSegmented = make(map[string]SegmentedDiskActions, zb0006) - } else if len(z.LastHourSegmented) > 0 { - clear(z.LastHourSegmented) - } - for zb0006 > 0 { - var za0010 SegmentedDiskActions - zb0006-- - var za0009 string - za0009, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented") - return - } - bts, err = (*Segmented[DiskAction, *DiskAction])(&za0010).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastHourSegmented", za0009) - return - } - z.LastHourSegmented[za0009] = za0010 - } - zb0001Mask |= 0x1000 - case "iostats": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.IOStats = nil - } else { - if z.IOStats == nil { - z.IOStats = new(DiskIOStatsLegacy) - } - bts, err = z.IOStats.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "IOStats") - return - } - } - zb0001Mask |= 0x2000 - case "io_min": - bts, err = z.IOStatsMinute.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "IOStatsMinute") - return - } - case "io_day": - bts, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "IOStatsDay") - return - } - case "io_hour": - bts, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "IOStatsHour") - return - } - case "smart": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.SMART = nil - } else { - if z.SMART == nil { - z.SMART = new(SMARTInfo) - } - bts, err = z.SMART.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "SMART") - return - } - } - zb0001Mask |= 0x4000 - case "fsType": - var zb0007 uint32 - zb0007, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x40000 + case "bitrot_healed": + z.BitrotHealed, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "FSType") + err = msgp.WrapError(err, "BitrotHealed") return } - if z.FSType == nil { - z.FSType = make(map[string]int, zb0007) - } else if len(z.FSType) > 0 { - clear(z.FSType) - } - for zb0007 > 0 { - var za0012 int - zb0007-- - var za0011 string - za0011, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "FSType") - return - } - za0012, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "FSType", za0011) - return - } - z.FSType[za0011] = za0012 - } - zb0001Mask |= 0x8000 + zb0001Mask |= 0x80000 default: bts, err = msgp.Skip(bts) if err != nil { @@ -8831,54 +8157,66 @@ func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0xffff { + if zb0001Mask != 0xfffff { if (zb0001Mask & 0x1) == 0 { - z.DiskIdx = nil + z.N = 0 } if (zb0001Mask & 0x2) == 0 { - z.SetIdx = nil + z.ReadIOs = 0 } if (zb0001Mask & 0x4) == 0 { - z.PoolIdx = nil + z.ReadMerges = 0 } if (zb0001Mask & 0x8) == 0 { - z.State = nil + z.ReadSectors = 0 } if (zb0001Mask & 0x10) == 0 { - z.Offline = 0 + z.ReadTicks = 0 } if (zb0001Mask & 0x20) == 0 { - z.Hanging = 0 + z.WriteIOs = 0 } if (zb0001Mask & 0x40) == 0 { - z.Healing = 0 + z.WriteMerges = 0 } if (zb0001Mask & 0x80) == 0 { - z.HealingInfo = nil + z.WriteSectors = 0 } if (zb0001Mask & 0x100) == 0 { - z.Cache = nil + z.WriteTicks = 0 } if (zb0001Mask & 0x200) == 0 { - z.LifetimeOps = nil + z.CurrentIOs = 0 } if (zb0001Mask & 0x400) == 0 { - z.LastMinute = nil + z.TotalTicks = 0 } if (zb0001Mask & 0x800) == 0 { - z.LastDaySegmented = nil + z.ReqTicks = 0 } if (zb0001Mask & 0x1000) == 0 { - z.LastHourSegmented = nil + z.DiscardIOs = 0 } if (zb0001Mask & 0x2000) == 0 { - z.IOStats = nil + z.DiscardMerges = 0 } if (zb0001Mask & 0x4000) == 0 { - z.SMART = nil + z.DiscardSectors = 0 } if (zb0001Mask & 0x8000) == 0 { - z.FSType = nil + z.DiscardTicks = 0 + } + if (zb0001Mask & 0x10000) == 0 { + z.FlushIOs = 0 + } + if (zb0001Mask & 0x20000) == 0 { + z.FlushTicks = 0 + } + if (zb0001Mask & 0x40000) == 0 { + z.BitrotDetected = 0 + } + if (zb0001Mask & 0x80000) == 0 { + z.BitrotHealed = 0 } } o = bts @@ -8886,96 +8224,13 @@ func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *DiskMetric) Msgsize() (s int) { - s = 3 + 10 + msgp.TimeSize + 8 + msgp.IntSize + 9 - if z.DiskIdx == nil { - s += msgp.NilSize - } else { - s += msgp.IntSize - } - s += 8 - if z.SetIdx == nil { - s += msgp.NilSize - } else { - s += msgp.IntSize - } - s += 9 - if z.PoolIdx == nil { - s += msgp.NilSize - } else { - s += msgp.IntSize - } - s += 6 + msgp.MapHeaderSize - if z.State != nil { - for za0001, za0002 := range z.State { - _ = za0002 - s += msgp.StringPrefixSize + len(za0001) + msgp.IntSize - } - } - s += 8 + msgp.IntSize + 8 + msgp.IntSize + 8 + msgp.IntSize + 12 - if z.HealingInfo == nil { - s += msgp.NilSize - } else { - s += z.HealingInfo.Msgsize() - } - s += 6 - if z.Cache == nil { - s += msgp.NilSize - } else { - s += z.Cache.Msgsize() - } - s += 6 + z.Space.Msgsize() + 13 + msgp.MapHeaderSize - if z.LifetimeOps != nil { - for za0003, za0004 := range z.LifetimeOps { - _ = za0004 - s += msgp.StringPrefixSize + len(za0003) + za0004.Msgsize() - } - } - s += 12 + msgp.MapHeaderSize - if z.LastMinute != nil { - for za0005, za0006 := range z.LastMinute { - _ = za0006 - s += msgp.StringPrefixSize + len(za0005) + za0006.Msgsize() - } - } - s += 9 + msgp.MapHeaderSize - if z.LastDaySegmented != nil { - for za0007, za0008 := range z.LastDaySegmented { - _ = za0008 - s += msgp.StringPrefixSize + len(za0007) + (*Segmented[DiskAction, *DiskAction])(&za0008).Msgsize() - } - } - s += 10 + msgp.MapHeaderSize - if z.LastHourSegmented != nil { - for za0009, za0010 := range z.LastHourSegmented { - _ = za0010 - s += msgp.StringPrefixSize + len(za0009) + (*Segmented[DiskAction, *DiskAction])(&za0010).Msgsize() - } - } - s += 8 - if z.IOStats == nil { - s += msgp.NilSize - } else { - s += z.IOStats.Msgsize() - } - s += 7 + z.IOStatsMinute.Msgsize() + 7 + (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).Msgsize() + 8 + (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).Msgsize() + 6 - if z.SMART == nil { - s += msgp.NilSize - } else { - s += z.SMART.Msgsize() - } - s += 7 + msgp.MapHeaderSize - if z.FSType != nil { - for za0011, za0012 := range z.FSType { - _ = za0012 - s += msgp.StringPrefixSize + len(za0011) + msgp.IntSize - } - } +func (z *DiskIOStatsLegacy) Msgsize() (s int) { + s = 3 + 2 + msgp.IntSize + 9 + msgp.Uint64Size + 12 + msgp.Uint64Size + 13 + msgp.Uint64Size + 11 + msgp.Uint64Size + 10 + msgp.Uint64Size + 13 + msgp.Uint64Size + 13 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 15 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size + 10 + msgp.Uint64Size + 12 + msgp.Uint64Size + 16 + msgp.Uint64Size + 14 + msgp.Uint64Size return } // DecodeMsg implements msgp.Decodable -func (z *DriveHealInfo) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *DiskMetric) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -8984,6 +8239,8 @@ func (z *DriveHealInfo) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } + var zb0001Mask uint16 /* 16 bits */ + _ = zb0001Mask for zb0001 > 0 { zb0001-- field, err = dc.ReadMapKeyPtr() @@ -8992,344 +8249,370 @@ func (z *DriveHealInfo) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "itemsHealed": - z.ItemsHealed, err = dc.ReadUint64() + case "collected": + z.CollectedAt, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "ItemsHealed") + err = msgp.WrapError(err, "CollectedAt") return } - case "itemsFailed": - z.ItemsFailed, err = dc.ReadUint64() + case "n_disks": + z.NDisks, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "ItemsFailed") + err = msgp.WrapError(err, "NDisks") return } - case "healID": - z.HealID, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "HealID") - return - } - case "finished": - z.Finished, err = dc.ReadBool() - if err != nil { - err = msgp.WrapError(err, "Finished") - return - } - case "started": - z.Started, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "Started") - return - } - case "updated": - z.Updated, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "Updated") - return + case "disk_idx": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "DiskIdx") + return + } + z.DiskIdx = nil + } else { + if z.DiskIdx == nil { + z.DiskIdx = new(int) + } + *z.DiskIdx, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "DiskIdx") + return + } } - default: - err = dc.Skip() - if err != nil { - err = msgp.WrapError(err) - return + zb0001Mask |= 0x1 + case "set_idx": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "SetIdx") + return + } + z.SetIdx = nil + } else { + if z.SetIdx == nil { + z.SetIdx = new(int) + } + *z.SetIdx, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "SetIdx") + return + } } - } - } - return -} - -// EncodeMsg implements msgp.Encodable -func (z *DriveHealInfo) EncodeMsg(en *msgp.Writer) (err error) { - // map header, size 6 - // write "itemsHealed" - err = en.Append(0x86, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteUint64(z.ItemsHealed) - if err != nil { - err = msgp.WrapError(err, "ItemsHealed") - return - } - // write "itemsFailed" - err = en.Append(0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteUint64(z.ItemsFailed) - if err != nil { - err = msgp.WrapError(err, "ItemsFailed") - return - } - // write "healID" - err = en.Append(0xa6, 0x68, 0x65, 0x61, 0x6c, 0x49, 0x44) - if err != nil { - return - } - err = en.WriteString(z.HealID) - if err != nil { - err = msgp.WrapError(err, "HealID") - return - } - // write "finished" - err = en.Append(0xa8, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteBool(z.Finished) - if err != nil { - err = msgp.WrapError(err, "Finished") - return - } - // write "started" - err = en.Append(0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteTime(z.Started) - if err != nil { - err = msgp.WrapError(err, "Started") - return - } - // write "updated" - err = en.Append(0xa7, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64) - if err != nil { - return - } - err = en.WriteTime(z.Updated) - if err != nil { - err = msgp.WrapError(err, "Updated") - return - } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *DriveHealInfo) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // map header, size 6 - // string "itemsHealed" - o = append(o, 0x86, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x65, 0x64) - o = msgp.AppendUint64(o, z.ItemsHealed) - // string "itemsFailed" - o = append(o, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - o = msgp.AppendUint64(o, z.ItemsFailed) - // string "healID" - o = append(o, 0xa6, 0x68, 0x65, 0x61, 0x6c, 0x49, 0x44) - o = msgp.AppendString(o, z.HealID) - // string "finished" - o = append(o, 0xa8, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64) - o = msgp.AppendBool(o, z.Finished) - // string "started" - o = append(o, 0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) - o = msgp.AppendTime(o, z.Started) - // string "updated" - o = append(o, 0xa7, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64) - o = msgp.AppendTime(o, z.Updated) - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *DriveHealInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "itemsHealed": - z.ItemsHealed, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ItemsHealed") - return + zb0001Mask |= 0x2 + case "pool_idx": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "PoolIdx") + return + } + z.PoolIdx = nil + } else { + if z.PoolIdx == nil { + z.PoolIdx = new(int) + } + *z.PoolIdx, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "PoolIdx") + return + } } - case "itemsFailed": - z.ItemsFailed, bts, err = msgp.ReadUint64Bytes(bts) + zb0001Mask |= 0x4 + case "state": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "ItemsFailed") + err = msgp.WrapError(err, "State") return } - case "healID": - z.HealID, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "HealID") - return + if z.State == nil { + z.State = make(map[string]int, zb0002) + } else if len(z.State) > 0 { + clear(z.State) } - case "finished": - z.Finished, bts, err = msgp.ReadBoolBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Finished") - return + for zb0002 > 0 { + zb0002-- + var za0001 string + za0001, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "State") + return + } + var za0002 int + za0002, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "State", za0001) + return + } + z.State[za0001] = za0002 } - case "started": - z.Started, bts, err = msgp.ReadTimeUTCBytes(bts) + zb0001Mask |= 0x8 + case "offline": + z.Offline, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "Started") + err = msgp.WrapError(err, "Offline") return } - case "updated": - z.Updated, bts, err = msgp.ReadTimeUTCBytes(bts) + zb0001Mask |= 0x10 + case "waiting": + z.Hanging, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "Updated") + err = msgp.WrapError(err, "Hanging") return } - default: - bts, err = msgp.Skip(bts) + zb0001Mask |= 0x20 + case "healing": + z.Healing, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "Healing") return } - } - } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *DriveHealInfo) Msgsize() (s int) { - s = 1 + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 7 + msgp.StringPrefixSize + len(z.HealID) + 9 + msgp.BoolSize + 8 + msgp.TimeSize + 8 + msgp.TimeSize - return -} - -// DecodeMsg implements msgp.Decodable -func (z *DriveSpaceInfo) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "n": - z.N, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "N") - return - } - case "free": - var zb0002 uint32 - zb0002, err = dc.ReadArrayHeader() - if err != nil { - err = msgp.WrapError(err, "Free") - return + zb0001Mask |= 0x40 + case "healingInfo": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "HealingInfo") + return + } + z.HealingInfo = nil + } else { + if z.HealingInfo == nil { + z.HealingInfo = new(DriveHealInfo) + } + err = z.HealingInfo.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "HealingInfo") + return + } } - if zb0002 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0002} - return + zb0001Mask |= 0x80 + case "cache": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "Cache") + return + } + z.Cache = nil + } else { + if z.Cache == nil { + z.Cache = new(CacheStats) + } + err = z.Cache.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "Cache") + return + } } - z.Free.Total, err = dc.ReadUint64() + zb0001Mask |= 0x100 + case "space": + err = z.Space.DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "Free", "Total") + err = msgp.WrapError(err, "Space") return } - z.Free.Min, err = dc.ReadUint64() + case "lifetime_ops": + var zb0003 uint32 + zb0003, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Free", "Min") + err = msgp.WrapError(err, "LifetimeOps") return } - z.Free.Max, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "Free", "Max") - return + if z.LifetimeOps == nil { + z.LifetimeOps = make(map[string]DiskAction, zb0003) + } else if len(z.LifetimeOps) > 0 { + clear(z.LifetimeOps) } - case "used": - var zb0003 uint32 - zb0003, err = dc.ReadArrayHeader() + for zb0003 > 0 { + zb0003-- + var za0003 string + za0003, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LifetimeOps") + return + } + var za0004 DiskAction + err = za0004.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps", za0003) + return + } + z.LifetimeOps[za0003] = za0004 + } + zb0001Mask |= 0x200 + case "last_minute": + var zb0004 uint32 + zb0004, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Used") + err = msgp.WrapError(err, "LastMinute") return } - if zb0003 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0003} - return + if z.LastMinute == nil { + z.LastMinute = make(map[string]DiskAction, zb0004) + } else if len(z.LastMinute) > 0 { + clear(z.LastMinute) } - z.Used.Total, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "Used", "Total") - return + for zb0004 > 0 { + zb0004-- + var za0005 string + za0005, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } + var za0006 DiskAction + err = za0006.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastMinute", za0005) + return + } + z.LastMinute[za0005] = za0006 } - z.Used.Min, err = dc.ReadUint64() + zb0001Mask |= 0x400 + case "last_day": + var zb0005 uint32 + zb0005, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Used", "Min") + err = msgp.WrapError(err, "LastDaySegmented") return } - z.Used.Max, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "Used", "Max") - return + if z.LastDaySegmented == nil { + z.LastDaySegmented = make(map[string]SegmentedDiskActions, zb0005) + } else if len(z.LastDaySegmented) > 0 { + clear(z.LastDaySegmented) } - case "used_inodes": - var zb0004 uint32 - zb0004, err = dc.ReadArrayHeader() + for zb0005 > 0 { + zb0005-- + var za0007 string + za0007, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented") + return + } + var za0008 SegmentedDiskActions + err = (*Segmented[DiskAction, *DiskAction])(&za0008).DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented", za0007) + return + } + z.LastDaySegmented[za0007] = za0008 + } + zb0001Mask |= 0x800 + case "last_hour": + var zb0006 uint32 + zb0006, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "UsedInodes") + err = msgp.WrapError(err, "LastHourSegmented") return } - if zb0004 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0004} - return + if z.LastHourSegmented == nil { + z.LastHourSegmented = make(map[string]SegmentedDiskActions, zb0006) + } else if len(z.LastHourSegmented) > 0 { + clear(z.LastHourSegmented) } - z.UsedInodes.Total, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Total") - return + for zb0006 > 0 { + zb0006-- + var za0009 string + za0009, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented") + return + } + var za0010 SegmentedDiskActions + err = (*Segmented[DiskAction, *DiskAction])(&za0010).DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented", za0009) + return + } + z.LastHourSegmented[za0009] = za0010 } - z.UsedInodes.Min, err = dc.ReadUint64() + zb0001Mask |= 0x1000 + case "iostats": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "IOStats") + return + } + z.IOStats = nil + } else { + if z.IOStats == nil { + z.IOStats = new(DiskIOStatsLegacy) + } + err = z.IOStats.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "IOStats") + return + } + } + zb0001Mask |= 0x2000 + case "io_min": + err = z.IOStatsMinute.DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Min") + err = msgp.WrapError(err, "IOStatsMinute") return } - z.UsedInodes.Max, err = dc.ReadUint64() + case "io_day": + err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Max") + err = msgp.WrapError(err, "IOStatsDay") return } - case "free_inodes": - var zb0005 uint32 - zb0005, err = dc.ReadArrayHeader() + case "io_hour": + err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "FreeInodes") + err = msgp.WrapError(err, "IOStatsHour") return } - if zb0005 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0005} - return + case "smart": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "SMART") + return + } + z.SMART = nil + } else { + if z.SMART == nil { + z.SMART = new(SMARTInfo) + } + err = z.SMART.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "SMART") + return + } } - z.FreeInodes.Total, err = dc.ReadUint64() + zb0001Mask |= 0x4000 + case "fsType": + var zb0007 uint32 + zb0007, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Total") + err = msgp.WrapError(err, "FSType") return } - z.FreeInodes.Min, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Min") - return + if z.FSType == nil { + z.FSType = make(map[string]int, zb0007) + } else if len(z.FSType) > 0 { + clear(z.FSType) } - z.FreeInodes.Max, err = dc.ReadUint64() - if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Max") - return + for zb0007 > 0 { + zb0007-- + var za0011 string + za0011, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "FSType") + return + } + var za0012 int + za0012, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "FSType", za0011) + return + } + z.FSType[za0011] = za0012 } + zb0001Mask |= 0x8000 default: err = dc.Skip() if err != nil { @@ -9338,929 +8621,1170 @@ func (z *DriveSpaceInfo) DecodeMsg(dc *msgp.Reader) (err error) { } } } + // Clear omitted fields. + if zb0001Mask != 0xffff { + if (zb0001Mask & 0x1) == 0 { + z.DiskIdx = nil + } + if (zb0001Mask & 0x2) == 0 { + z.SetIdx = nil + } + if (zb0001Mask & 0x4) == 0 { + z.PoolIdx = nil + } + if (zb0001Mask & 0x8) == 0 { + z.State = nil + } + if (zb0001Mask & 0x10) == 0 { + z.Offline = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Hanging = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.Healing = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.HealingInfo = nil + } + if (zb0001Mask & 0x100) == 0 { + z.Cache = nil + } + if (zb0001Mask & 0x200) == 0 { + z.LifetimeOps = nil + } + if (zb0001Mask & 0x400) == 0 { + z.LastMinute = nil + } + if (zb0001Mask & 0x800) == 0 { + z.LastDaySegmented = nil + } + if (zb0001Mask & 0x1000) == 0 { + z.LastHourSegmented = nil + } + if (zb0001Mask & 0x2000) == 0 { + z.IOStats = nil + } + if (zb0001Mask & 0x4000) == 0 { + z.SMART = nil + } + if (zb0001Mask & 0x8000) == 0 { + z.FSType = nil + } + } return } // EncodeMsg implements msgp.Encodable -func (z *DriveSpaceInfo) EncodeMsg(en *msgp.Writer) (err error) { - // map header, size 5 - // write "n" - err = en.Append(0x85, 0xa1, 0x6e) - if err != nil { - return - } - err = en.WriteInt(z.N) - if err != nil { - err = msgp.WrapError(err, "N") - return - } - // write "free" - err = en.Append(0xa4, 0x66, 0x72, 0x65, 0x65) - if err != nil { - return - } - // array header, size 3 - err = en.Append(0x93) - if err != nil { - return - } - err = en.WriteUint64(z.Free.Total) - if err != nil { - err = msgp.WrapError(err, "Free", "Total") - return - } - err = en.WriteUint64(z.Free.Min) - if err != nil { - err = msgp.WrapError(err, "Free", "Min") - return +func (z *DiskMetric) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(22) + var zb0001Mask uint32 /* 22 bits */ + _ = zb0001Mask + if z.DiskIdx == nil { + zb0001Len-- + zb0001Mask |= 0x4 } - err = en.WriteUint64(z.Free.Max) - if err != nil { - err = msgp.WrapError(err, "Free", "Max") - return + if z.SetIdx == nil { + zb0001Len-- + zb0001Mask |= 0x8 } - // write "used" - err = en.Append(0xa4, 0x75, 0x73, 0x65, 0x64) - if err != nil { - return + if z.PoolIdx == nil { + zb0001Len-- + zb0001Mask |= 0x10 } - // array header, size 3 - err = en.Append(0x93) - if err != nil { - return + if z.State == nil { + zb0001Len-- + zb0001Mask |= 0x20 } - err = en.WriteUint64(z.Used.Total) - if err != nil { - err = msgp.WrapError(err, "Used", "Total") - return + if z.Offline == 0 { + zb0001Len-- + zb0001Mask |= 0x40 } - err = en.WriteUint64(z.Used.Min) - if err != nil { - err = msgp.WrapError(err, "Used", "Min") - return + if z.Hanging == 0 { + zb0001Len-- + zb0001Mask |= 0x80 } - err = en.WriteUint64(z.Used.Max) - if err != nil { - err = msgp.WrapError(err, "Used", "Max") - return + if z.Healing == 0 { + zb0001Len-- + zb0001Mask |= 0x100 } - // write "used_inodes" - err = en.Append(0xab, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) - if err != nil { - return + if z.HealingInfo == nil { + zb0001Len-- + zb0001Mask |= 0x200 } - // array header, size 3 - err = en.Append(0x93) - if err != nil { - return + if z.Cache == nil { + zb0001Len-- + zb0001Mask |= 0x400 } - err = en.WriteUint64(z.UsedInodes.Total) - if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Total") - return + if z.LifetimeOps == nil { + zb0001Len-- + zb0001Mask |= 0x1000 } - err = en.WriteUint64(z.UsedInodes.Min) - if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Min") - return + if z.LastMinute == nil { + zb0001Len-- + zb0001Mask |= 0x2000 } - err = en.WriteUint64(z.UsedInodes.Max) - if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Max") - return + if z.LastDaySegmented == nil { + zb0001Len-- + zb0001Mask |= 0x4000 } - // write "free_inodes" - err = en.Append(0xab, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) - if err != nil { - return + if z.LastHourSegmented == nil { + zb0001Len-- + zb0001Mask |= 0x8000 } - // array header, size 3 - err = en.Append(0x93) - if err != nil { - return + if z.IOStats == nil { + zb0001Len-- + zb0001Mask |= 0x10000 } - err = en.WriteUint64(z.FreeInodes.Total) - if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Total") - return + if z.SMART == nil { + zb0001Len-- + zb0001Mask |= 0x100000 } - err = en.WriteUint64(z.FreeInodes.Min) - if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Min") - return + if z.FSType == nil { + zb0001Len-- + zb0001Mask |= 0x200000 } - err = en.WriteUint64(z.FreeInodes.Max) + // variable map header, size zb0001Len + err = en.WriteMapHeader(zb0001Len) if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Max") return } - return -} -// MarshalMsg implements msgp.Marshaler -func (z *DriveSpaceInfo) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // map header, size 5 - // string "n" - o = append(o, 0x85, 0xa1, 0x6e) - o = msgp.AppendInt(o, z.N) - // string "free" - o = append(o, 0xa4, 0x66, 0x72, 0x65, 0x65) - // array header, size 3 - o = append(o, 0x93) - o = msgp.AppendUint64(o, z.Free.Total) - o = msgp.AppendUint64(o, z.Free.Min) - o = msgp.AppendUint64(o, z.Free.Max) - // string "used" - o = append(o, 0xa4, 0x75, 0x73, 0x65, 0x64) - // array header, size 3 - o = append(o, 0x93) - o = msgp.AppendUint64(o, z.Used.Total) - o = msgp.AppendUint64(o, z.Used.Min) - o = msgp.AppendUint64(o, z.Used.Max) - // string "used_inodes" - o = append(o, 0xab, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) - // array header, size 3 - o = append(o, 0x93) - o = msgp.AppendUint64(o, z.UsedInodes.Total) - o = msgp.AppendUint64(o, z.UsedInodes.Min) - o = msgp.AppendUint64(o, z.UsedInodes.Max) - // string "free_inodes" - o = append(o, 0xab, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) - // array header, size 3 - o = append(o, 0x93) - o = msgp.AppendUint64(o, z.FreeInodes.Total) - o = msgp.AppendUint64(o, z.FreeInodes.Min) - o = msgp.AppendUint64(o, z.FreeInodes.Max) - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *DriveSpaceInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "collected" + err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) if err != nil { - err = msgp.WrapError(err) return } - switch msgp.UnsafeString(field) { - case "n": - z.N, bts, err = msgp.ReadIntBytes(bts) + err = en.WriteTime(z.CollectedAt) + if err != nil { + err = msgp.WrapError(err, "CollectedAt") + return + } + // write "n_disks" + err = en.Append(0xa7, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.NDisks) + if err != nil { + err = msgp.WrapError(err, "NDisks") + return + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "disk_idx" + err = en.Append(0xa8, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x78) if err != nil { - err = msgp.WrapError(err, "N") return } - case "free": - var zb0002 uint32 - zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) + if z.DiskIdx == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = en.WriteInt(*z.DiskIdx) + if err != nil { + err = msgp.WrapError(err, "DiskIdx") + return + } + } + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "set_idx" + err = en.Append(0xa7, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78) if err != nil { - err = msgp.WrapError(err, "Free") return } - if zb0002 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0002} - return + if z.SetIdx == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = en.WriteInt(*z.SetIdx) + if err != nil { + err = msgp.WrapError(err, "SetIdx") + return + } } - z.Free.Total, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "pool_idx" + err = en.Append(0xa8, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x78) if err != nil { - err = msgp.WrapError(err, "Free", "Total") return } - z.Free.Min, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "Free", "Min") - return + if z.PoolIdx == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = en.WriteInt(*z.PoolIdx) + if err != nil { + err = msgp.WrapError(err, "PoolIdx") + return + } } - z.Free.Max, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "state" + err = en.Append(0xa5, 0x73, 0x74, 0x61, 0x74, 0x65) if err != nil { - err = msgp.WrapError(err, "Free", "Max") return } - case "used": - var zb0003 uint32 - zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) + err = en.WriteMapHeader(uint32(len(z.State))) if err != nil { - err = msgp.WrapError(err, "Used") + err = msgp.WrapError(err, "State") return } - if zb0003 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0003} - return + for za0001, za0002 := range z.State { + err = en.WriteString(za0001) + if err != nil { + err = msgp.WrapError(err, "State") + return + } + err = en.WriteInt(za0002) + if err != nil { + err = msgp.WrapError(err, "State", za0001) + return + } } - z.Used.Total, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // write "offline" + err = en.Append(0xa7, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65) if err != nil { - err = msgp.WrapError(err, "Used", "Total") return } - z.Used.Min, bts, err = msgp.ReadUint64Bytes(bts) + err = en.WriteInt(z.Offline) if err != nil { - err = msgp.WrapError(err, "Used", "Min") + err = msgp.WrapError(err, "Offline") return } - z.Used.Max, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "waiting" + err = en.Append(0xa7, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67) if err != nil { - err = msgp.WrapError(err, "Used", "Max") return } - case "used_inodes": - var zb0004 uint32 - zb0004, bts, err = msgp.ReadArrayHeaderBytes(bts) + err = en.WriteInt(z.Hanging) if err != nil { - err = msgp.WrapError(err, "UsedInodes") - return - } - if zb0004 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0004} + err = msgp.WrapError(err, "Hanging") return } - z.UsedInodes.Total, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "healing" + err = en.Append(0xa7, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67) if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Total") return } - z.UsedInodes.Min, bts, err = msgp.ReadUint64Bytes(bts) + err = en.WriteInt(z.Healing) if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Min") + err = msgp.WrapError(err, "Healing") return } - z.UsedInodes.Max, bts, err = msgp.ReadUint64Bytes(bts) + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "healingInfo" + err = en.Append(0xab, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f) if err != nil { - err = msgp.WrapError(err, "UsedInodes", "Max") return } - case "free_inodes": - var zb0005 uint32 - zb0005, bts, err = msgp.ReadArrayHeaderBytes(bts) + if z.HealingInfo == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = z.HealingInfo.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "HealingInfo") + return + } + } + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // write "cache" + err = en.Append(0xa5, 0x63, 0x61, 0x63, 0x68, 0x65) if err != nil { - err = msgp.WrapError(err, "FreeInodes") return } - if zb0005 != 3 { - err = msgp.ArrayError{Wanted: 3, Got: zb0005} - return + if z.Cache == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = z.Cache.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "Cache") + return + } } - z.FreeInodes.Total, bts, err = msgp.ReadUint64Bytes(bts) + } + // write "space" + err = en.Append(0xa5, 0x73, 0x70, 0x61, 0x63, 0x65) + if err != nil { + return + } + err = z.Space.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "Space") + return + } + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // write "lifetime_ops" + err = en.Append(0xac, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Total") return } - z.FreeInodes.Min, bts, err = msgp.ReadUint64Bytes(bts) + err = en.WriteMapHeader(uint32(len(z.LifetimeOps))) if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Min") + err = msgp.WrapError(err, "LifetimeOps") return } - z.FreeInodes.Max, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "FreeInodes", "Max") + for za0003, za0004 := range z.LifetimeOps { + err = en.WriteString(za0003) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps") + return + } + err = za0004.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps", za0003) + return + } + } + } + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // write "last_minute" + err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + if err != nil { return } - default: - bts, err = msgp.Skip(bts) + err = en.WriteMapHeader(uint32(len(z.LastMinute))) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "LastMinute") return } + for za0005, za0006 := range z.LastMinute { + err = en.WriteString(za0005) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } + err = za0006.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastMinute", za0005) + return + } + } } - } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *DriveSpaceInfo) Msgsize() (s int) { - s = 1 + 2 + msgp.IntSize + 5 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 5 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 12 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 12 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size - return -} - -// DecodeMsg implements msgp.Decodable -func (z *ExpirationInfo) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "lastBucket": - z.Bucket, err = dc.ReadString() + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // write "last_day" + err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) if err != nil { - err = msgp.WrapError(err, "Bucket") return } - case "lastObject": - z.Object, err = dc.ReadString() + err = en.WriteMapHeader(uint32(len(z.LastDaySegmented))) if err != nil { - err = msgp.WrapError(err, "Object") + err = msgp.WrapError(err, "LastDaySegmented") return } - case "objects": - z.Objects, err = dc.ReadInt64() + for za0007, za0008 := range z.LastDaySegmented { + err = en.WriteString(za0007) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented") + return + } + err = (*Segmented[DiskAction, *DiskAction])(&za0008).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented", za0007) + return + } + } + } + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // write "last_hour" + err = en.Append(0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) if err != nil { - err = msgp.WrapError(err, "Objects") return } - case "objectsFailed": - z.ObjectsFailed, err = dc.ReadInt64() + err = en.WriteMapHeader(uint32(len(z.LastHourSegmented))) if err != nil { - err = msgp.WrapError(err, "ObjectsFailed") + err = msgp.WrapError(err, "LastHourSegmented") return } - case "deleteMarkers": - z.DeleteMarkers, err = dc.ReadInt64() + for za0009, za0010 := range z.LastHourSegmented { + err = en.WriteString(za0009) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented") + return + } + err = (*Segmented[DiskAction, *DiskAction])(&za0010).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented", za0009) + return + } + } + } + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // write "iostats" + err = en.Append(0xa7, 0x69, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x73) if err != nil { - err = msgp.WrapError(err, "DeleteMarkers") return } - case "deleteMarkersFailed": - z.DeleteMarkersFailed, err = dc.ReadInt64() + if z.IOStats == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = z.IOStats.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "IOStats") + return + } + } + } + // write "io_min" + err = en.Append(0xa6, 0x69, 0x6f, 0x5f, 0x6d, 0x69, 0x6e) + if err != nil { + return + } + err = z.IOStatsMinute.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "IOStatsMinute") + return + } + // write "io_day" + err = en.Append(0xa6, 0x69, 0x6f, 0x5f, 0x64, 0x61, 0x79) + if err != nil { + return + } + err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "IOStatsDay") + return + } + // write "io_hour" + err = en.Append(0xa7, 0x69, 0x6f, 0x5f, 0x68, 0x6f, 0x75, 0x72) + if err != nil { + return + } + err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "IOStatsHour") + return + } + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // write "smart" + err = en.Append(0xa5, 0x73, 0x6d, 0x61, 0x72, 0x74) if err != nil { - err = msgp.WrapError(err, "DeleteMarkersFailed") return } - default: - err = dc.Skip() + if z.SMART == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = z.SMART.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "SMART") + return + } + } + } + if (zb0001Mask & 0x200000) == 0 { // if not omitted + // write "fsType" + err = en.Append(0xa6, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65) if err != nil { - err = msgp.WrapError(err) return } + err = en.WriteMapHeader(uint32(len(z.FSType))) + if err != nil { + err = msgp.WrapError(err, "FSType") + return + } + for za0011, za0012 := range z.FSType { + err = en.WriteString(za0011) + if err != nil { + err = msgp.WrapError(err, "FSType") + return + } + err = en.WriteInt(za0012) + if err != nil { + err = msgp.WrapError(err, "FSType", za0011) + return + } + } } } return } -// EncodeMsg implements msgp.Encodable -func (z *ExpirationInfo) EncodeMsg(en *msgp.Writer) (err error) { - // map header, size 6 - // write "lastBucket" - err = en.Append(0x86, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) - if err != nil { - return +// MarshalMsg implements msgp.Marshaler +func (z *DiskMetric) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(22) + var zb0001Mask uint32 /* 22 bits */ + _ = zb0001Mask + if z.DiskIdx == nil { + zb0001Len-- + zb0001Mask |= 0x4 } - err = en.WriteString(z.Bucket) - if err != nil { - err = msgp.WrapError(err, "Bucket") - return + if z.SetIdx == nil { + zb0001Len-- + zb0001Mask |= 0x8 } - // write "lastObject" - err = en.Append(0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) - if err != nil { - return + if z.PoolIdx == nil { + zb0001Len-- + zb0001Mask |= 0x10 } - err = en.WriteString(z.Object) - if err != nil { - err = msgp.WrapError(err, "Object") - return + if z.State == nil { + zb0001Len-- + zb0001Mask |= 0x20 } - // write "objects" - err = en.Append(0xa7, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73) - if err != nil { - return + if z.Offline == 0 { + zb0001Len-- + zb0001Mask |= 0x40 } - err = en.WriteInt64(z.Objects) - if err != nil { - err = msgp.WrapError(err, "Objects") - return + if z.Hanging == 0 { + zb0001Len-- + zb0001Mask |= 0x80 } - // write "objectsFailed" - err = en.Append(0xad, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - if err != nil { - return + if z.Healing == 0 { + zb0001Len-- + zb0001Mask |= 0x100 } - err = en.WriteInt64(z.ObjectsFailed) - if err != nil { - err = msgp.WrapError(err, "ObjectsFailed") - return + if z.HealingInfo == nil { + zb0001Len-- + zb0001Mask |= 0x200 } - // write "deleteMarkers" - err = en.Append(0xad, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73) - if err != nil { - return + if z.Cache == nil { + zb0001Len-- + zb0001Mask |= 0x400 } - err = en.WriteInt64(z.DeleteMarkers) - if err != nil { - err = msgp.WrapError(err, "DeleteMarkers") - return + if z.LifetimeOps == nil { + zb0001Len-- + zb0001Mask |= 0x1000 } - // write "deleteMarkersFailed" - err = en.Append(0xb3, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - if err != nil { - return + if z.LastMinute == nil { + zb0001Len-- + zb0001Mask |= 0x2000 } - err = en.WriteInt64(z.DeleteMarkersFailed) - if err != nil { - err = msgp.WrapError(err, "DeleteMarkersFailed") - return + if z.LastDaySegmented == nil { + zb0001Len-- + zb0001Mask |= 0x4000 } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *ExpirationInfo) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // map header, size 6 - // string "lastBucket" - o = append(o, 0x86, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) - o = msgp.AppendString(o, z.Bucket) - // string "lastObject" - o = append(o, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) - o = msgp.AppendString(o, z.Object) - // string "objects" - o = append(o, 0xa7, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73) - o = msgp.AppendInt64(o, z.Objects) - // string "objectsFailed" - o = append(o, 0xad, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - o = msgp.AppendInt64(o, z.ObjectsFailed) - // string "deleteMarkers" - o = append(o, 0xad, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73) - o = msgp.AppendInt64(o, z.DeleteMarkers) - // string "deleteMarkersFailed" - o = append(o, 0xb3, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) - o = msgp.AppendInt64(o, z.DeleteMarkersFailed) - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *ExpirationInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return + if z.LastHourSegmented == nil { + zb0001Len-- + zb0001Mask |= 0x8000 } - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "lastBucket": - z.Bucket, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - case "lastObject": - z.Object, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Object") - return + if z.IOStats == nil { + zb0001Len-- + zb0001Mask |= 0x10000 + } + if z.SMART == nil { + zb0001Len-- + zb0001Mask |= 0x100000 + } + if z.FSType == nil { + zb0001Len-- + zb0001Mask |= 0x200000 + } + // variable map header, size zb0001Len + o = msgp.AppendMapHeader(o, zb0001Len) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // string "collected" + o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendTime(o, z.CollectedAt) + // string "n_disks" + o = append(o, 0xa7, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x73) + o = msgp.AppendInt(o, z.NDisks) + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "disk_idx" + o = append(o, 0xa8, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x78) + if z.DiskIdx == nil { + o = msgp.AppendNil(o) + } else { + o = msgp.AppendInt(o, *z.DiskIdx) } - case "objects": - z.Objects, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "Objects") - return + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // string "set_idx" + o = append(o, 0xa7, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x78) + if z.SetIdx == nil { + o = msgp.AppendNil(o) + } else { + o = msgp.AppendInt(o, *z.SetIdx) } - case "objectsFailed": - z.ObjectsFailed, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ObjectsFailed") - return + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "pool_idx" + o = append(o, 0xa8, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x78) + if z.PoolIdx == nil { + o = msgp.AppendNil(o) + } else { + o = msgp.AppendInt(o, *z.PoolIdx) } - case "deleteMarkers": - z.DeleteMarkers, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DeleteMarkers") - return + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "state" + o = append(o, 0xa5, 0x73, 0x74, 0x61, 0x74, 0x65) + o = msgp.AppendMapHeader(o, uint32(len(z.State))) + for za0001, za0002 := range z.State { + o = msgp.AppendString(o, za0001) + o = msgp.AppendInt(o, za0002) } - case "deleteMarkersFailed": - z.DeleteMarkersFailed, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DeleteMarkersFailed") - return + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // string "offline" + o = append(o, 0xa7, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65) + o = msgp.AppendInt(o, z.Offline) + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // string "waiting" + o = append(o, 0xa7, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67) + o = msgp.AppendInt(o, z.Hanging) + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // string "healing" + o = append(o, 0xa7, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67) + o = msgp.AppendInt(o, z.Healing) + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // string "healingInfo" + o = append(o, 0xab, 0x68, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f) + if z.HealingInfo == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.HealingInfo.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "HealingInfo") + return + } } - default: - bts, err = msgp.Skip(bts) - if err != nil { - err = msgp.WrapError(err) - return + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // string "cache" + o = append(o, 0xa5, 0x63, 0x61, 0x63, 0x68, 0x65) + if z.Cache == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.Cache.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "Cache") + return + } } } - } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ExpirationInfo) Msgsize() (s int) { - s = 1 + 11 + msgp.StringPrefixSize + len(z.Bucket) + 11 + msgp.StringPrefixSize + len(z.Object) + 8 + msgp.Int64Size + 14 + msgp.Int64Size + 14 + msgp.Int64Size + 20 + msgp.Int64Size - return -} - -// DecodeMsg implements msgp.Decodable -func (z *ExpiryObject) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() + // string "space" + o = append(o, 0xa5, 0x73, 0x70, 0x61, 0x63, 0x65) + o, err = z.Space.MarshalMsg(o) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "Space") return } - switch msgp.UnsafeString(field) { - case "bucket": - z.Bucket, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - case "object": - z.Object, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Object") - return + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // string "lifetime_ops" + o = append(o, 0xac, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.LifetimeOps))) + for za0003, za0004 := range z.LifetimeOps { + o = msgp.AppendString(o, za0003) + o, err = za0004.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps", za0003) + return + } } - case "versions": - z.Versions, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "Versions") - return + } + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // string "last_minute" + o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute))) + for za0005, za0006 := range z.LastMinute { + o = msgp.AppendString(o, za0005) + o, err = za0006.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastMinute", za0005) + return + } } - case "queued_at": - z.QueuedAt, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "QueuedAt") - return + } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // string "last_day" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + o = msgp.AppendMapHeader(o, uint32(len(z.LastDaySegmented))) + for za0007, za0008 := range z.LastDaySegmented { + o = msgp.AppendString(o, za0007) + o, err = (*Segmented[DiskAction, *DiskAction])(&za0008).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented", za0007) + return + } } - default: - err = dc.Skip() - if err != nil { - err = msgp.WrapError(err) - return + } + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // string "last_hour" + o = append(o, 0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) + o = msgp.AppendMapHeader(o, uint32(len(z.LastHourSegmented))) + for za0009, za0010 := range z.LastHourSegmented { + o = msgp.AppendString(o, za0009) + o, err = (*Segmented[DiskAction, *DiskAction])(&za0010).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented", za0009) + return + } } } - } - return -} - -// EncodeMsg implements msgp.Encodable -func (z *ExpiryObject) EncodeMsg(en *msgp.Writer) (err error) { - // map header, size 4 - // write "bucket" - err = en.Append(0x84, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) - if err != nil { - return - } - err = en.WriteString(z.Bucket) - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - // write "object" - err = en.Append(0xa6, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74) - if err != nil { - return - } - err = en.WriteString(z.Object) - if err != nil { - err = msgp.WrapError(err, "Object") - return - } - // write "versions" - err = en.Append(0xa8, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.Versions) - if err != nil { - err = msgp.WrapError(err, "Versions") - return - } - // write "queued_at" - err = en.Append(0xa9, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74) - if err != nil { - return - } - err = en.WriteTime(z.QueuedAt) - if err != nil { - err = msgp.WrapError(err, "QueuedAt") - return - } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *ExpiryObject) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // map header, size 4 - // string "bucket" - o = append(o, 0x84, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) - o = msgp.AppendString(o, z.Bucket) - // string "object" - o = append(o, 0xa6, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74) - o = msgp.AppendString(o, z.Object) - // string "versions" - o = append(o, 0xa8, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73) - o = msgp.AppendInt(o, z.Versions) - // string "queued_at" - o = append(o, 0xa9, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74) - o = msgp.AppendTime(o, z.QueuedAt) - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *ExpiryObject) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // string "iostats" + o = append(o, 0xa7, 0x69, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x73) + if z.IOStats == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.IOStats.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "IOStats") + return + } + } + } + // string "io_min" + o = append(o, 0xa6, 0x69, 0x6f, 0x5f, 0x6d, 0x69, 0x6e) + o, err = z.IOStatsMinute.MarshalMsg(o) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "IOStatsMinute") return } - switch msgp.UnsafeString(field) { - case "bucket": - z.Bucket, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - case "object": - z.Object, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Object") - return - } - case "versions": - z.Versions, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "Versions") - return - } - case "queued_at": - z.QueuedAt, bts, err = msgp.ReadTimeUTCBytes(bts) - if err != nil { - err = msgp.WrapError(err, "QueuedAt") - return + // string "io_day" + o = append(o, 0xa6, 0x69, 0x6f, 0x5f, 0x64, 0x61, 0x79) + o, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "IOStatsDay") + return + } + // string "io_hour" + o = append(o, 0xa7, 0x69, 0x6f, 0x5f, 0x68, 0x6f, 0x75, 0x72) + o, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "IOStatsHour") + return + } + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // string "smart" + o = append(o, 0xa5, 0x73, 0x6d, 0x61, 0x72, 0x74) + if z.SMART == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.SMART.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "SMART") + return + } } - default: - bts, err = msgp.Skip(bts) - if err != nil { - err = msgp.WrapError(err) - return + } + if (zb0001Mask & 0x200000) == 0 { // if not omitted + // string "fsType" + o = append(o, 0xa6, 0x66, 0x73, 0x54, 0x79, 0x70, 0x65) + o = msgp.AppendMapHeader(o, uint32(len(z.FSType))) + for za0011, za0012 := range z.FSType { + o = msgp.AppendString(o, za0011) + o = msgp.AppendInt(o, za0012) } } } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ExpiryObject) Msgsize() (s int) { - s = 1 + 7 + msgp.StringPrefixSize + len(z.Bucket) + 7 + msgp.StringPrefixSize + len(z.Object) + 9 + msgp.IntSize + 10 + msgp.TimeSize return } -// DecodeMsg implements msgp.Decodable -func (z *HealBucketStats) DecodeMsg(dc *msgp.Reader) (err error) { +// UnmarshalMsg implements msgp.Unmarshaler +func (z *DiskMetric) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 3 bits */ + var zb0001Mask uint16 /* 16 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- - field, err = dc.ReadMapKeyPtr() + field, bts, err = msgp.ReadMapKeyZC(bts) if err != nil { err = msgp.WrapError(err) return } switch msgp.UnsafeString(field) { - case "started": - z.Started, err = dc.ReadInt64() + case "collected": + z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { - err = msgp.WrapError(err, "Started") + err = msgp.WrapError(err, "CollectedAt") return } - zb0001Mask |= 0x1 - case "completed": - z.Completed, err = dc.ReadInt64() + case "n_disks": + z.NDisks, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "Completed") + err = msgp.WrapError(err, "NDisks") return } + case "disk_idx": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.DiskIdx = nil + } else { + if z.DiskIdx == nil { + z.DiskIdx = new(int) + } + *z.DiskIdx, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "DiskIdx") + return + } + } + zb0001Mask |= 0x1 + case "set_idx": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.SetIdx = nil + } else { + if z.SetIdx == nil { + z.SetIdx = new(int) + } + *z.SetIdx, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "SetIdx") + return + } + } zb0001Mask |= 0x2 - case "failed": - z.Failed, err = dc.ReadInt64() + case "pool_idx": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.PoolIdx = nil + } else { + if z.PoolIdx == nil { + z.PoolIdx = new(int) + } + *z.PoolIdx, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "PoolIdx") + return + } + } + zb0001Mask |= 0x4 + case "state": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Failed") + err = msgp.WrapError(err, "State") return } - zb0001Mask |= 0x4 - default: - err = dc.Skip() + if z.State == nil { + z.State = make(map[string]int, zb0002) + } else if len(z.State) > 0 { + clear(z.State) + } + for zb0002 > 0 { + var za0002 int + zb0002-- + var za0001 string + za0001, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "State") + return + } + za0002, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "State", za0001) + return + } + z.State[za0001] = za0002 + } + zb0001Mask |= 0x8 + case "offline": + z.Offline, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "Offline") return } - } - } - // Clear omitted fields. - if zb0001Mask != 0x7 { - if (zb0001Mask & 0x1) == 0 { - z.Started = 0 - } - if (zb0001Mask & 0x2) == 0 { - z.Completed = 0 - } - if (zb0001Mask & 0x4) == 0 { - z.Failed = 0 - } - } - return -} - -// EncodeMsg implements msgp.Encodable -func (z HealBucketStats) EncodeMsg(en *msgp.Writer) (err error) { - // check for omitted fields - zb0001Len := uint32(3) - var zb0001Mask uint8 /* 3 bits */ - _ = zb0001Mask - if z.Started == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.Completed == 0 { - zb0001Len-- - zb0001Mask |= 0x2 - } - if z.Failed == 0 { - zb0001Len-- - zb0001Mask |= 0x4 - } - // variable map header, size zb0001Len - err = en.Append(0x80 | uint8(zb0001Len)) - if err != nil { - return - } - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "started" - err = en.Append(0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) + zb0001Mask |= 0x10 + case "waiting": + z.Hanging, bts, err = msgp.ReadIntBytes(bts) if err != nil { + err = msgp.WrapError(err, "Hanging") return } - err = en.WriteInt64(z.Started) + zb0001Mask |= 0x20 + case "healing": + z.Healing, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "Started") + err = msgp.WrapError(err, "Healing") return } - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "completed" - err = en.Append(0xa9, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64) + zb0001Mask |= 0x40 + case "healingInfo": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.HealingInfo = nil + } else { + if z.HealingInfo == nil { + z.HealingInfo = new(DriveHealInfo) + } + bts, err = z.HealingInfo.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "HealingInfo") + return + } + } + zb0001Mask |= 0x80 + case "cache": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.Cache = nil + } else { + if z.Cache == nil { + z.Cache = new(CacheStats) + } + bts, err = z.Cache.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "Cache") + return + } + } + zb0001Mask |= 0x100 + case "space": + bts, err = z.Space.UnmarshalMsg(bts) if err != nil { + err = msgp.WrapError(err, "Space") return } - err = en.WriteInt64(z.Completed) + case "lifetime_ops": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Completed") + err = msgp.WrapError(err, "LifetimeOps") return } - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "failed" - err = en.Append(0xa6, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64) + if z.LifetimeOps == nil { + z.LifetimeOps = make(map[string]DiskAction, zb0003) + } else if len(z.LifetimeOps) > 0 { + clear(z.LifetimeOps) + } + for zb0003 > 0 { + var za0004 DiskAction + zb0003-- + var za0003 string + za0003, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps") + return + } + bts, err = za0004.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LifetimeOps", za0003) + return + } + z.LifetimeOps[za0003] = za0004 + } + zb0001Mask |= 0x200 + case "last_minute": + var zb0004 uint32 + zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { + err = msgp.WrapError(err, "LastMinute") return } - err = en.WriteInt64(z.Failed) + if z.LastMinute == nil { + z.LastMinute = make(map[string]DiskAction, zb0004) + } else if len(z.LastMinute) > 0 { + clear(z.LastMinute) + } + for zb0004 > 0 { + var za0006 DiskAction + zb0004-- + var za0005 string + za0005, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } + bts, err = za0006.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", za0005) + return + } + z.LastMinute[za0005] = za0006 + } + zb0001Mask |= 0x400 + case "last_day": + var zb0005 uint32 + zb0005, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Failed") + err = msgp.WrapError(err, "LastDaySegmented") return } - } - } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z HealBucketStats) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // check for omitted fields - zb0001Len := uint32(3) - var zb0001Mask uint8 /* 3 bits */ - _ = zb0001Mask - if z.Started == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.Completed == 0 { - zb0001Len-- - zb0001Mask |= 0x2 - } - if z.Failed == 0 { - zb0001Len-- - zb0001Mask |= 0x4 - } - // variable map header, size zb0001Len - o = append(o, 0x80|uint8(zb0001Len)) - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "started" - o = append(o, 0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) - o = msgp.AppendInt64(o, z.Started) - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "completed" - o = append(o, 0xa9, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64) - o = msgp.AppendInt64(o, z.Completed) - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "failed" - o = append(o, 0xa6, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64) - o = msgp.AppendInt64(o, z.Failed) - } - } - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *HealBucketStats) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - var zb0001Mask uint8 /* 3 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "started": - z.Started, bts, err = msgp.ReadInt64Bytes(bts) + if z.LastDaySegmented == nil { + z.LastDaySegmented = make(map[string]SegmentedDiskActions, zb0005) + } else if len(z.LastDaySegmented) > 0 { + clear(z.LastDaySegmented) + } + for zb0005 > 0 { + var za0008 SegmentedDiskActions + zb0005-- + var za0007 string + za0007, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented") + return + } + bts, err = (*Segmented[DiskAction, *DiskAction])(&za0008).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastDaySegmented", za0007) + return + } + z.LastDaySegmented[za0007] = za0008 + } + zb0001Mask |= 0x800 + case "last_hour": + var zb0006 uint32 + zb0006, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Started") + err = msgp.WrapError(err, "LastHourSegmented") return } - zb0001Mask |= 0x1 - case "completed": - z.Completed, bts, err = msgp.ReadInt64Bytes(bts) + if z.LastHourSegmented == nil { + z.LastHourSegmented = make(map[string]SegmentedDiskActions, zb0006) + } else if len(z.LastHourSegmented) > 0 { + clear(z.LastHourSegmented) + } + for zb0006 > 0 { + var za0010 SegmentedDiskActions + zb0006-- + var za0009 string + za0009, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented") + return + } + bts, err = (*Segmented[DiskAction, *DiskAction])(&za0010).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastHourSegmented", za0009) + return + } + z.LastHourSegmented[za0009] = za0010 + } + zb0001Mask |= 0x1000 + case "iostats": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.IOStats = nil + } else { + if z.IOStats == nil { + z.IOStats = new(DiskIOStatsLegacy) + } + bts, err = z.IOStats.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "IOStats") + return + } + } + zb0001Mask |= 0x2000 + case "io_min": + bts, err = z.IOStatsMinute.UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "Completed") + err = msgp.WrapError(err, "IOStatsMinute") return } - zb0001Mask |= 0x2 - case "failed": - z.Failed, bts, err = msgp.ReadInt64Bytes(bts) + case "io_day": + bts, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "Failed") + err = msgp.WrapError(err, "IOStatsDay") return } - zb0001Mask |= 0x4 + case "io_hour": + bts, err = (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "IOStatsHour") + return + } + case "smart": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.SMART = nil + } else { + if z.SMART == nil { + z.SMART = new(SMARTInfo) + } + bts, err = z.SMART.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "SMART") + return + } + } + zb0001Mask |= 0x4000 + case "fsType": + var zb0007 uint32 + zb0007, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "FSType") + return + } + if z.FSType == nil { + z.FSType = make(map[string]int, zb0007) + } else if len(z.FSType) > 0 { + clear(z.FSType) + } + for zb0007 > 0 { + var za0012 int + zb0007-- + var za0011 string + za0011, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "FSType") + return + } + za0012, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "FSType", za0011) + return + } + z.FSType[za0011] = za0012 + } + zb0001Mask |= 0x8000 default: bts, err = msgp.Skip(bts) if err != nil { @@ -10270,15 +9794,54 @@ func (z *HealBucketStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0x7 { + if zb0001Mask != 0xffff { if (zb0001Mask & 0x1) == 0 { - z.Started = 0 + z.DiskIdx = nil } if (zb0001Mask & 0x2) == 0 { - z.Completed = 0 + z.SetIdx = nil } if (zb0001Mask & 0x4) == 0 { - z.Failed = 0 + z.PoolIdx = nil + } + if (zb0001Mask & 0x8) == 0 { + z.State = nil + } + if (zb0001Mask & 0x10) == 0 { + z.Offline = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Hanging = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.Healing = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.HealingInfo = nil + } + if (zb0001Mask & 0x100) == 0 { + z.Cache = nil + } + if (zb0001Mask & 0x200) == 0 { + z.LifetimeOps = nil + } + if (zb0001Mask & 0x400) == 0 { + z.LastMinute = nil + } + if (zb0001Mask & 0x800) == 0 { + z.LastDaySegmented = nil + } + if (zb0001Mask & 0x1000) == 0 { + z.LastHourSegmented = nil + } + if (zb0001Mask & 0x2000) == 0 { + z.IOStats = nil + } + if (zb0001Mask & 0x4000) == 0 { + z.SMART = nil + } + if (zb0001Mask & 0x8000) == 0 { + z.FSType = nil } } o = bts @@ -10286,13 +9849,96 @@ func (z *HealBucketStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z HealBucketStats) Msgsize() (s int) { - s = 1 + 8 + msgp.Int64Size + 10 + msgp.Int64Size + 7 + msgp.Int64Size - return -} - -// DecodeMsg implements msgp.Decodable -func (z *HealSession) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *DiskMetric) Msgsize() (s int) { + s = 3 + 10 + msgp.TimeSize + 8 + msgp.IntSize + 9 + if z.DiskIdx == nil { + s += msgp.NilSize + } else { + s += msgp.IntSize + } + s += 8 + if z.SetIdx == nil { + s += msgp.NilSize + } else { + s += msgp.IntSize + } + s += 9 + if z.PoolIdx == nil { + s += msgp.NilSize + } else { + s += msgp.IntSize + } + s += 6 + msgp.MapHeaderSize + if z.State != nil { + for za0001, za0002 := range z.State { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + msgp.IntSize + } + } + s += 8 + msgp.IntSize + 8 + msgp.IntSize + 8 + msgp.IntSize + 12 + if z.HealingInfo == nil { + s += msgp.NilSize + } else { + s += z.HealingInfo.Msgsize() + } + s += 6 + if z.Cache == nil { + s += msgp.NilSize + } else { + s += z.Cache.Msgsize() + } + s += 6 + z.Space.Msgsize() + 13 + msgp.MapHeaderSize + if z.LifetimeOps != nil { + for za0003, za0004 := range z.LifetimeOps { + _ = za0004 + s += msgp.StringPrefixSize + len(za0003) + za0004.Msgsize() + } + } + s += 12 + msgp.MapHeaderSize + if z.LastMinute != nil { + for za0005, za0006 := range z.LastMinute { + _ = za0006 + s += msgp.StringPrefixSize + len(za0005) + za0006.Msgsize() + } + } + s += 9 + msgp.MapHeaderSize + if z.LastDaySegmented != nil { + for za0007, za0008 := range z.LastDaySegmented { + _ = za0008 + s += msgp.StringPrefixSize + len(za0007) + (*Segmented[DiskAction, *DiskAction])(&za0008).Msgsize() + } + } + s += 10 + msgp.MapHeaderSize + if z.LastHourSegmented != nil { + for za0009, za0010 := range z.LastHourSegmented { + _ = za0010 + s += msgp.StringPrefixSize + len(za0009) + (*Segmented[DiskAction, *DiskAction])(&za0010).Msgsize() + } + } + s += 8 + if z.IOStats == nil { + s += msgp.NilSize + } else { + s += z.IOStats.Msgsize() + } + s += 7 + z.IOStatsMinute.Msgsize() + 7 + (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsDay).Msgsize() + 8 + (*Segmented[DiskIOStats, *DiskIOStats])(&z.IOStatsHour).Msgsize() + 6 + if z.SMART == nil { + s += msgp.NilSize + } else { + s += z.SMART.Msgsize() + } + s += 7 + msgp.MapHeaderSize + if z.FSType != nil { + for za0011, za0012 := range z.FSType { + _ = za0012 + s += msgp.StringPrefixSize + len(za0011) + msgp.IntSize + } + } + return +} + +// DecodeMsg implements msgp.Decodable +func (z *DriveHealInfo) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -10301,8 +9947,6 @@ func (z *HealSession) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 7 bits */ - _ = zb0001Mask for zb0001 > 0 { zb0001-- field, err = dc.ReadMapKeyPtr() @@ -10311,157 +9955,42 @@ func (z *HealSession) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "client_token": - z.ClientToken, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "ClientToken") - return - } - case "bucket": - z.Bucket, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Bucket") - return - } - zb0001Mask |= 0x1 - case "prefix": - z.Prefix, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Prefix") - return - } - zb0001Mask |= 0x2 - case "status": - z.Status, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "Status") - return - } - case "start_time": - z.StartTime, err = dc.ReadTimeUTC() - if err != nil { - err = msgp.WrapError(err, "StartTime") - return - } - case "end_time": - z.EndTime, err = dc.ReadTimeUTC() + case "itemsHealed": + z.ItemsHealed, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "EndTime") + err = msgp.WrapError(err, "ItemsHealed") return } - zb0001Mask |= 0x4 - case "settings": - err = z.Settings.DecodeMsg(dc) + case "itemsFailed": + z.ItemsFailed, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Settings") + err = msgp.WrapError(err, "ItemsFailed") return } - case "scanned_items": - var zb0002 uint32 - zb0002, err = dc.ReadMapHeader() + case "healID": + z.HealID, err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "ScannedItems") + err = msgp.WrapError(err, "HealID") return } - if z.ScannedItems == nil { - z.ScannedItems = make(map[HealItemType]int64, zb0002) - } else if len(z.ScannedItems) > 0 { - clear(z.ScannedItems) - } - for zb0002 > 0 { - zb0002-- - var za0001 HealItemType - { - var zb0003 string - zb0003, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "ScannedItems", za0001) - return - } - za0001 = HealItemType(zb0003) - } - var za0002 int64 - za0002, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "ScannedItems", za0001) - return - } - z.ScannedItems[za0001] = za0002 - } - zb0001Mask |= 0x8 - case "healed_items": - var zb0004 uint32 - zb0004, err = dc.ReadMapHeader() + case "finished": + z.Finished, err = dc.ReadBool() if err != nil { - err = msgp.WrapError(err, "HealedItems") + err = msgp.WrapError(err, "Finished") return } - if z.HealedItems == nil { - z.HealedItems = make(map[HealItemType]int64, zb0004) - } else if len(z.HealedItems) > 0 { - clear(z.HealedItems) - } - for zb0004 > 0 { - zb0004-- - var za0003 HealItemType - { - var zb0005 string - zb0005, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "HealedItems", za0003) - return - } - za0003 = HealItemType(zb0005) - } - var za0004 int64 - za0004, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "HealedItems", za0003) - return - } - z.HealedItems[za0003] = za0004 - } - zb0001Mask |= 0x10 - case "failed_items": - var zb0006 uint32 - zb0006, err = dc.ReadMapHeader() + case "started": + z.Started, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "FailedItems") + err = msgp.WrapError(err, "Started") return } - if z.FailedItems == nil { - z.FailedItems = make(map[HealItemType]int64, zb0006) - } else if len(z.FailedItems) > 0 { - clear(z.FailedItems) - } - for zb0006 > 0 { - zb0006-- - var za0005 HealItemType - { - var zb0007 string - zb0007, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "FailedItems", za0005) - return - } - za0005 = HealItemType(zb0007) - } - var za0006 int64 - za0006, err = dc.ReadInt64() - if err != nil { - err = msgp.WrapError(err, "FailedItems", za0005) - return - } - z.FailedItems[za0005] = za0006 - } - zb0001Mask |= 0x20 - case "last_activity": - z.LastActivity, err = dc.ReadTimeUTC() + case "updated": + z.Updated, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "LastActivity") + err = msgp.WrapError(err, "Updated") return } - zb0001Mask |= 0x40 default: err = dc.Skip() if err != nil { @@ -10470,421 +9999,1855 @@ func (z *HealSession) DecodeMsg(dc *msgp.Reader) (err error) { } } } - // Clear omitted fields. - if zb0001Mask != 0x7f { - if (zb0001Mask & 0x1) == 0 { - z.Bucket = "" - } - if (zb0001Mask & 0x2) == 0 { - z.Prefix = "" - } - if (zb0001Mask & 0x4) == 0 { - z.EndTime = (time.Time{}) - } - if (zb0001Mask & 0x8) == 0 { - z.ScannedItems = nil - } - if (zb0001Mask & 0x10) == 0 { - z.HealedItems = nil - } - if (zb0001Mask & 0x20) == 0 { - z.FailedItems = nil - } - if (zb0001Mask & 0x40) == 0 { - z.LastActivity = (time.Time{}) - } - } return } // EncodeMsg implements msgp.Encodable -func (z *HealSession) EncodeMsg(en *msgp.Writer) (err error) { - // check for omitted fields - zb0001Len := uint32(11) - var zb0001Mask uint16 /* 11 bits */ - _ = zb0001Mask - if z.Bucket == "" { - zb0001Len-- - zb0001Mask |= 0x2 +func (z *DriveHealInfo) EncodeMsg(en *msgp.Writer) (err error) { + // map header, size 6 + // write "itemsHealed" + err = en.Append(0x86, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x65, 0x64) + if err != nil { + return } - if z.Prefix == "" { - zb0001Len-- - zb0001Mask |= 0x4 + err = en.WriteUint64(z.ItemsHealed) + if err != nil { + err = msgp.WrapError(err, "ItemsHealed") + return } - if z.EndTime == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x20 + // write "itemsFailed" + err = en.Append(0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + if err != nil { + return } - if z.ScannedItems == nil { - zb0001Len-- - zb0001Mask |= 0x80 + err = en.WriteUint64(z.ItemsFailed) + if err != nil { + err = msgp.WrapError(err, "ItemsFailed") + return } - if z.HealedItems == nil { - zb0001Len-- - zb0001Mask |= 0x100 + // write "healID" + err = en.Append(0xa6, 0x68, 0x65, 0x61, 0x6c, 0x49, 0x44) + if err != nil { + return } - if z.FailedItems == nil { - zb0001Len-- - zb0001Mask |= 0x200 + err = en.WriteString(z.HealID) + if err != nil { + err = msgp.WrapError(err, "HealID") + return } - if z.LastActivity == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x400 + // write "finished" + err = en.Append(0xa8, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64) + if err != nil { + return } - // variable map header, size zb0001Len - err = en.Append(0x80 | uint8(zb0001Len)) + err = en.WriteBool(z.Finished) + if err != nil { + err = msgp.WrapError(err, "Finished") + return + } + // write "started" + err = en.Append(0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteTime(z.Started) if err != nil { + err = msgp.WrapError(err, "Started") + return + } + // write "updated" + err = en.Append(0xa7, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteTime(z.Updated) + if err != nil { + err = msgp.WrapError(err, "Updated") return } + return +} - // skip if no fields are to be emitted - if zb0001Len != 0 { - // write "client_token" - err = en.Append(0xac, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e) - if err != nil { - return - } - err = en.WriteString(z.ClientToken) +// MarshalMsg implements msgp.Marshaler +func (z *DriveHealInfo) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 6 + // string "itemsHealed" + o = append(o, 0x86, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x65, 0x64) + o = msgp.AppendUint64(o, z.ItemsHealed) + // string "itemsFailed" + o = append(o, 0xab, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + o = msgp.AppendUint64(o, z.ItemsFailed) + // string "healID" + o = append(o, 0xa6, 0x68, 0x65, 0x61, 0x6c, 0x49, 0x44) + o = msgp.AppendString(o, z.HealID) + // string "finished" + o = append(o, 0xa8, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64) + o = msgp.AppendBool(o, z.Finished) + // string "started" + o = append(o, 0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) + o = msgp.AppendTime(o, z.Started) + // string "updated" + o = append(o, 0xa7, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64) + o = msgp.AppendTime(o, z.Updated) + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *DriveHealInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) if err != nil { - err = msgp.WrapError(err, "ClientToken") + err = msgp.WrapError(err) return } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "bucket" - err = en.Append(0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + switch msgp.UnsafeString(field) { + case "itemsHealed": + z.ItemsHealed, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "ItemsHealed") return } - err = en.WriteString(z.Bucket) + case "itemsFailed": + z.ItemsFailed, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Bucket") + err = msgp.WrapError(err, "ItemsFailed") return } - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "prefix" - err = en.Append(0xa6, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78) + case "healID": + z.HealID, bts, err = msgp.ReadStringBytes(bts) if err != nil { + err = msgp.WrapError(err, "HealID") return } - err = en.WriteString(z.Prefix) + case "finished": + z.Finished, bts, err = msgp.ReadBoolBytes(bts) if err != nil { - err = msgp.WrapError(err, "Prefix") + err = msgp.WrapError(err, "Finished") return } - } - // write "status" - err = en.Append(0xa6, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73) - if err != nil { - return - } - err = en.WriteString(z.Status) - if err != nil { - err = msgp.WrapError(err, "Status") - return - } - // write "start_time" - err = en.Append(0xaa, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65) - if err != nil { - return - } - err = en.WriteTime(z.StartTime) - if err != nil { - err = msgp.WrapError(err, "StartTime") - return - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "end_time" - err = en.Append(0xa8, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65) + case "started": + z.Started, bts, err = msgp.ReadTimeUTCBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Started") + return + } + case "updated": + z.Updated, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { + err = msgp.WrapError(err, "Updated") return } - err = en.WriteTime(z.EndTime) + default: + bts, err = msgp.Skip(bts) if err != nil { - err = msgp.WrapError(err, "EndTime") + err = msgp.WrapError(err) return } } - // write "settings" - err = en.Append(0xa8, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73) - if err != nil { - return - } - err = z.Settings.EncodeMsg(en) + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *DriveHealInfo) Msgsize() (s int) { + s = 1 + 12 + msgp.Uint64Size + 12 + msgp.Uint64Size + 7 + msgp.StringPrefixSize + len(z.HealID) + 9 + msgp.BoolSize + 8 + msgp.TimeSize + 8 + msgp.TimeSize + return +} + +// DecodeMsg implements msgp.Decodable +func (z *DriveSpaceInfo) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() if err != nil { - err = msgp.WrapError(err, "Settings") + err = msgp.WrapError(err) return } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "scanned_items" - err = en.Append(0xad, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + switch msgp.UnsafeString(field) { + case "n": + z.N, err = dc.ReadInt() if err != nil { + err = msgp.WrapError(err, "N") return } - err = en.WriteMapHeader(uint32(len(z.ScannedItems))) + case "free": + var zb0002 uint32 + zb0002, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "ScannedItems") + err = msgp.WrapError(err, "Free") return } - for za0001, za0002 := range z.ScannedItems { - err = en.WriteString(string(za0001)) - if err != nil { - err = msgp.WrapError(err, "ScannedItems", za0001) - return - } - err = en.WriteInt64(za0002) - if err != nil { - err = msgp.WrapError(err, "ScannedItems", za0001) - return - } + if zb0002 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0002} + return } - } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "healed_items" - err = en.Append(0xac, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + z.Free.Total, err = dc.ReadUint64() if err != nil { + err = msgp.WrapError(err, "Free", "Total") return } - err = en.WriteMapHeader(uint32(len(z.HealedItems))) + z.Free.Min, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "HealedItems") + err = msgp.WrapError(err, "Free", "Min") return } - for za0003, za0004 := range z.HealedItems { - err = en.WriteString(string(za0003)) - if err != nil { - err = msgp.WrapError(err, "HealedItems", za0003) - return - } - err = en.WriteInt64(za0004) - if err != nil { - err = msgp.WrapError(err, "HealedItems", za0003) - return - } - } - } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "failed_items" - err = en.Append(0xac, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + z.Free.Max, err = dc.ReadUint64() if err != nil { + err = msgp.WrapError(err, "Free", "Max") return } - err = en.WriteMapHeader(uint32(len(z.FailedItems))) + case "used": + var zb0003 uint32 + zb0003, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "FailedItems") + err = msgp.WrapError(err, "Used") return } - for za0005, za0006 := range z.FailedItems { - err = en.WriteString(string(za0005)) - if err != nil { - err = msgp.WrapError(err, "FailedItems", za0005) - return - } - err = en.WriteInt64(za0006) - if err != nil { - err = msgp.WrapError(err, "FailedItems", za0005) - return - } + if zb0003 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0003} + return } - } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "last_activity" - err = en.Append(0xad, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79) + z.Used.Total, err = dc.ReadUint64() if err != nil { + err = msgp.WrapError(err, "Used", "Total") return } - err = en.WriteTime(z.LastActivity) + z.Used.Min, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "LastActivity") + err = msgp.WrapError(err, "Used", "Min") return } - } - } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *HealSession) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // check for omitted fields - zb0001Len := uint32(11) - var zb0001Mask uint16 /* 11 bits */ - _ = zb0001Mask - if z.Bucket == "" { - zb0001Len-- - zb0001Mask |= 0x2 - } - if z.Prefix == "" { - zb0001Len-- - zb0001Mask |= 0x4 - } - if z.EndTime == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.ScannedItems == nil { - zb0001Len-- - zb0001Mask |= 0x80 - } - if z.HealedItems == nil { - zb0001Len-- - zb0001Mask |= 0x100 - } - if z.FailedItems == nil { - zb0001Len-- - zb0001Mask |= 0x200 - } - if z.LastActivity == (time.Time{}) { - zb0001Len-- - zb0001Mask |= 0x400 - } - // variable map header, size zb0001Len - o = append(o, 0x80|uint8(zb0001Len)) - - // skip if no fields are to be emitted - if zb0001Len != 0 { - // string "client_token" - o = append(o, 0xac, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e) - o = msgp.AppendString(o, z.ClientToken) - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "bucket" - o = append(o, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) - o = msgp.AppendString(o, z.Bucket) - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "prefix" - o = append(o, 0xa6, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78) - o = msgp.AppendString(o, z.Prefix) - } - // string "status" - o = append(o, 0xa6, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73) - o = msgp.AppendString(o, z.Status) - // string "start_time" - o = append(o, 0xaa, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65) - o = msgp.AppendTime(o, z.StartTime) - if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "end_time" - o = append(o, 0xa8, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65) - o = msgp.AppendTime(o, z.EndTime) - } - // string "settings" - o = append(o, 0xa8, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73) - o, err = z.Settings.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "Settings") - return - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "scanned_items" - o = append(o, 0xad, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.ScannedItems))) - for za0001, za0002 := range z.ScannedItems { - o = msgp.AppendString(o, string(za0001)) - o = msgp.AppendInt64(o, za0002) + z.Used.Max, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "Used", "Max") + return } - } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "healed_items" - o = append(o, 0xac, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.HealedItems))) - for za0003, za0004 := range z.HealedItems { - o = msgp.AppendString(o, string(za0003)) - o = msgp.AppendInt64(o, za0004) + case "used_inodes": + var zb0004 uint32 + zb0004, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "UsedInodes") + return } - } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "failed_items" - o = append(o, 0xac, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.FailedItems))) - for za0005, za0006 := range z.FailedItems { - o = msgp.AppendString(o, string(za0005)) - o = msgp.AppendInt64(o, za0006) + if zb0004 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0004} + return } - } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "last_activity" - o = append(o, 0xad, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79) - o = msgp.AppendTime(o, z.LastActivity) - } - } - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *HealSession) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - var zb0001Mask uint8 /* 7 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "client_token": - z.ClientToken, bts, err = msgp.ReadStringBytes(bts) + z.UsedInodes.Total, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "ClientToken") + err = msgp.WrapError(err, "UsedInodes", "Total") return } - case "bucket": - z.Bucket, bts, err = msgp.ReadStringBytes(bts) + z.UsedInodes.Min, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Bucket") + err = msgp.WrapError(err, "UsedInodes", "Min") return } - zb0001Mask |= 0x1 - case "prefix": - z.Prefix, bts, err = msgp.ReadStringBytes(bts) + z.UsedInodes.Max, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Prefix") + err = msgp.WrapError(err, "UsedInodes", "Max") return } - zb0001Mask |= 0x2 - case "status": - z.Status, bts, err = msgp.ReadStringBytes(bts) + case "free_inodes": + var zb0005 uint32 + zb0005, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "Status") + err = msgp.WrapError(err, "FreeInodes") return } - case "start_time": - z.StartTime, bts, err = msgp.ReadTimeUTCBytes(bts) - if err != nil { - err = msgp.WrapError(err, "StartTime") + if zb0005 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0005} return } - case "end_time": - z.EndTime, bts, err = msgp.ReadTimeUTCBytes(bts) + z.FreeInodes.Total, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "EndTime") + err = msgp.WrapError(err, "FreeInodes", "Total") return } - zb0001Mask |= 0x4 - case "settings": - bts, err = z.Settings.UnmarshalMsg(bts) + z.FreeInodes.Min, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "Settings") + err = msgp.WrapError(err, "FreeInodes", "Min") return } - case "scanned_items": - var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + z.FreeInodes.Max, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "ScannedItems") + err = msgp.WrapError(err, "FreeInodes", "Max") return } - if z.ScannedItems == nil { - z.ScannedItems = make(map[HealItemType]int64, zb0002) - } else if len(z.ScannedItems) > 0 { + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *DriveSpaceInfo) EncodeMsg(en *msgp.Writer) (err error) { + // map header, size 5 + // write "n" + err = en.Append(0x85, 0xa1, 0x6e) + if err != nil { + return + } + err = en.WriteInt(z.N) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + // write "free" + err = en.Append(0xa4, 0x66, 0x72, 0x65, 0x65) + if err != nil { + return + } + // array header, size 3 + err = en.Append(0x93) + if err != nil { + return + } + err = en.WriteUint64(z.Free.Total) + if err != nil { + err = msgp.WrapError(err, "Free", "Total") + return + } + err = en.WriteUint64(z.Free.Min) + if err != nil { + err = msgp.WrapError(err, "Free", "Min") + return + } + err = en.WriteUint64(z.Free.Max) + if err != nil { + err = msgp.WrapError(err, "Free", "Max") + return + } + // write "used" + err = en.Append(0xa4, 0x75, 0x73, 0x65, 0x64) + if err != nil { + return + } + // array header, size 3 + err = en.Append(0x93) + if err != nil { + return + } + err = en.WriteUint64(z.Used.Total) + if err != nil { + err = msgp.WrapError(err, "Used", "Total") + return + } + err = en.WriteUint64(z.Used.Min) + if err != nil { + err = msgp.WrapError(err, "Used", "Min") + return + } + err = en.WriteUint64(z.Used.Max) + if err != nil { + err = msgp.WrapError(err, "Used", "Max") + return + } + // write "used_inodes" + err = en.Append(0xab, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) + if err != nil { + return + } + // array header, size 3 + err = en.Append(0x93) + if err != nil { + return + } + err = en.WriteUint64(z.UsedInodes.Total) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Total") + return + } + err = en.WriteUint64(z.UsedInodes.Min) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Min") + return + } + err = en.WriteUint64(z.UsedInodes.Max) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Max") + return + } + // write "free_inodes" + err = en.Append(0xab, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) + if err != nil { + return + } + // array header, size 3 + err = en.Append(0x93) + if err != nil { + return + } + err = en.WriteUint64(z.FreeInodes.Total) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Total") + return + } + err = en.WriteUint64(z.FreeInodes.Min) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Min") + return + } + err = en.WriteUint64(z.FreeInodes.Max) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Max") + return + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *DriveSpaceInfo) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 5 + // string "n" + o = append(o, 0x85, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) + // string "free" + o = append(o, 0xa4, 0x66, 0x72, 0x65, 0x65) + // array header, size 3 + o = append(o, 0x93) + o = msgp.AppendUint64(o, z.Free.Total) + o = msgp.AppendUint64(o, z.Free.Min) + o = msgp.AppendUint64(o, z.Free.Max) + // string "used" + o = append(o, 0xa4, 0x75, 0x73, 0x65, 0x64) + // array header, size 3 + o = append(o, 0x93) + o = msgp.AppendUint64(o, z.Used.Total) + o = msgp.AppendUint64(o, z.Used.Min) + o = msgp.AppendUint64(o, z.Used.Max) + // string "used_inodes" + o = append(o, 0xab, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) + // array header, size 3 + o = append(o, 0x93) + o = msgp.AppendUint64(o, z.UsedInodes.Total) + o = msgp.AppendUint64(o, z.UsedInodes.Min) + o = msgp.AppendUint64(o, z.UsedInodes.Max) + // string "free_inodes" + o = append(o, 0xab, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x73) + // array header, size 3 + o = append(o, 0x93) + o = msgp.AppendUint64(o, z.FreeInodes.Total) + o = msgp.AppendUint64(o, z.FreeInodes.Min) + o = msgp.AppendUint64(o, z.FreeInodes.Max) + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *DriveSpaceInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + case "free": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Free") + return + } + if zb0002 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0002} + return + } + z.Free.Total, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Free", "Total") + return + } + z.Free.Min, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Free", "Min") + return + } + z.Free.Max, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Free", "Max") + return + } + case "used": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Used") + return + } + if zb0003 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0003} + return + } + z.Used.Total, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Used", "Total") + return + } + z.Used.Min, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Used", "Min") + return + } + z.Used.Max, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Used", "Max") + return + } + case "used_inodes": + var zb0004 uint32 + zb0004, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "UsedInodes") + return + } + if zb0004 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0004} + return + } + z.UsedInodes.Total, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Total") + return + } + z.UsedInodes.Min, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Min") + return + } + z.UsedInodes.Max, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "UsedInodes", "Max") + return + } + case "free_inodes": + var zb0005 uint32 + zb0005, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "FreeInodes") + return + } + if zb0005 != 3 { + err = msgp.ArrayError{Wanted: 3, Got: zb0005} + return + } + z.FreeInodes.Total, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Total") + return + } + z.FreeInodes.Min, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Min") + return + } + z.FreeInodes.Max, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FreeInodes", "Max") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *DriveSpaceInfo) Msgsize() (s int) { + s = 1 + 2 + msgp.IntSize + 5 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 5 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 12 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + 12 + 1 + msgp.Uint64Size + msgp.Uint64Size + msgp.Uint64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *ExpirationInfo) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "lastBucket": + z.Bucket, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + case "lastObject": + z.Object, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + case "objects": + z.Objects, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Objects") + return + } + case "objectsFailed": + z.ObjectsFailed, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ObjectsFailed") + return + } + case "deleteMarkers": + z.DeleteMarkers, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DeleteMarkers") + return + } + case "deleteMarkersFailed": + z.DeleteMarkersFailed, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DeleteMarkersFailed") + return + } + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *ExpirationInfo) EncodeMsg(en *msgp.Writer) (err error) { + // map header, size 6 + // write "lastBucket" + err = en.Append(0x86, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Bucket) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + // write "lastObject" + err = en.Append(0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Object) + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + // write "objects" + err = en.Append(0xa7, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.Objects) + if err != nil { + err = msgp.WrapError(err, "Objects") + return + } + // write "objectsFailed" + err = en.Append(0xad, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.ObjectsFailed) + if err != nil { + err = msgp.WrapError(err, "ObjectsFailed") + return + } + // write "deleteMarkers" + err = en.Append(0xad, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.DeleteMarkers) + if err != nil { + err = msgp.WrapError(err, "DeleteMarkers") + return + } + // write "deleteMarkersFailed" + err = en.Append(0xb3, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.DeleteMarkersFailed) + if err != nil { + err = msgp.WrapError(err, "DeleteMarkersFailed") + return + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *ExpirationInfo) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 6 + // string "lastBucket" + o = append(o, 0x86, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74) + o = msgp.AppendString(o, z.Bucket) + // string "lastObject" + o = append(o, 0xaa, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74) + o = msgp.AppendString(o, z.Object) + // string "objects" + o = append(o, 0xa7, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73) + o = msgp.AppendInt64(o, z.Objects) + // string "objectsFailed" + o = append(o, 0xad, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + o = msgp.AppendInt64(o, z.ObjectsFailed) + // string "deleteMarkers" + o = append(o, 0xad, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73) + o = msgp.AppendInt64(o, z.DeleteMarkers) + // string "deleteMarkersFailed" + o = append(o, 0xb3, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64) + o = msgp.AppendInt64(o, z.DeleteMarkersFailed) + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *ExpirationInfo) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "lastBucket": + z.Bucket, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + case "lastObject": + z.Object, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + case "objects": + z.Objects, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Objects") + return + } + case "objectsFailed": + z.ObjectsFailed, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "ObjectsFailed") + return + } + case "deleteMarkers": + z.DeleteMarkers, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "DeleteMarkers") + return + } + case "deleteMarkersFailed": + z.DeleteMarkersFailed, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "DeleteMarkersFailed") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *ExpirationInfo) Msgsize() (s int) { + s = 1 + 11 + msgp.StringPrefixSize + len(z.Bucket) + 11 + msgp.StringPrefixSize + len(z.Object) + 8 + msgp.Int64Size + 14 + msgp.Int64Size + 14 + msgp.Int64Size + 20 + msgp.Int64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *ExpiryObject) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "bucket": + z.Bucket, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + case "object": + z.Object, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + case "versions": + z.Versions, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "Versions") + return + } + case "queued_at": + z.QueuedAt, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "QueuedAt") + return + } + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *ExpiryObject) EncodeMsg(en *msgp.Writer) (err error) { + // map header, size 4 + // write "bucket" + err = en.Append(0x84, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Bucket) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + // write "object" + err = en.Append(0xa6, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Object) + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + // write "versions" + err = en.Append(0xa8, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.Versions) + if err != nil { + err = msgp.WrapError(err, "Versions") + return + } + // write "queued_at" + err = en.Append(0xa9, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74) + if err != nil { + return + } + err = en.WriteTime(z.QueuedAt) + if err != nil { + err = msgp.WrapError(err, "QueuedAt") + return + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *ExpiryObject) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 4 + // string "bucket" + o = append(o, 0x84, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + o = msgp.AppendString(o, z.Bucket) + // string "object" + o = append(o, 0xa6, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74) + o = msgp.AppendString(o, z.Object) + // string "versions" + o = append(o, 0xa8, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73) + o = msgp.AppendInt(o, z.Versions) + // string "queued_at" + o = append(o, 0xa9, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74) + o = msgp.AppendTime(o, z.QueuedAt) + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *ExpiryObject) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "bucket": + z.Bucket, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + case "object": + z.Object, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Object") + return + } + case "versions": + z.Versions, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Versions") + return + } + case "queued_at": + z.QueuedAt, bts, err = msgp.ReadTimeUTCBytes(bts) + if err != nil { + err = msgp.WrapError(err, "QueuedAt") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *ExpiryObject) Msgsize() (s int) { + s = 1 + 7 + msgp.StringPrefixSize + len(z.Bucket) + 7 + msgp.StringPrefixSize + len(z.Object) + 9 + msgp.IntSize + 10 + msgp.TimeSize + return +} + +// DecodeMsg implements msgp.Decodable +func (z *HealBucketStats) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "started": + z.Started, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Started") + return + } + zb0001Mask |= 0x1 + case "completed": + z.Completed, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Completed") + return + } + zb0001Mask |= 0x2 + case "failed": + z.Failed, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Failed") + return + } + zb0001Mask |= 0x4 + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + // Clear omitted fields. + if zb0001Mask != 0x7 { + if (zb0001Mask & 0x1) == 0 { + z.Started = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.Completed = 0 + } + if (zb0001Mask & 0x4) == 0 { + z.Failed = 0 + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z HealBucketStats) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + if z.Started == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.Completed == 0 { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.Failed == 0 { + zb0001Len-- + zb0001Mask |= 0x4 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "started" + err = en.Append(0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.Started) + if err != nil { + err = msgp.WrapError(err, "Started") + return + } + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "completed" + err = en.Append(0xa9, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.Completed) + if err != nil { + err = msgp.WrapError(err, "Completed") + return + } + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "failed" + err = en.Append(0xa6, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.Failed) + if err != nil { + err = msgp.WrapError(err, "Failed") + return + } + } + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z HealBucketStats) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + if z.Started == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.Completed == 0 { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.Failed == 0 { + zb0001Len-- + zb0001Mask |= 0x4 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "started" + o = append(o, 0xa7, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64) + o = msgp.AppendInt64(o, z.Started) + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "completed" + o = append(o, 0xa9, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64) + o = msgp.AppendInt64(o, z.Completed) + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "failed" + o = append(o, 0xa6, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64) + o = msgp.AppendInt64(o, z.Failed) + } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *HealBucketStats) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "started": + z.Started, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Started") + return + } + zb0001Mask |= 0x1 + case "completed": + z.Completed, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Completed") + return + } + zb0001Mask |= 0x2 + case "failed": + z.Failed, bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Failed") + return + } + zb0001Mask |= 0x4 + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + // Clear omitted fields. + if zb0001Mask != 0x7 { + if (zb0001Mask & 0x1) == 0 { + z.Started = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.Completed = 0 + } + if (zb0001Mask & 0x4) == 0 { + z.Failed = 0 + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z HealBucketStats) Msgsize() (s int) { + s = 1 + 8 + msgp.Int64Size + 10 + msgp.Int64Size + 7 + msgp.Int64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *HealSession) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 7 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "client_token": + z.ClientToken, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "ClientToken") + return + } + case "bucket": + z.Bucket, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + zb0001Mask |= 0x1 + case "prefix": + z.Prefix, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Prefix") + return + } + zb0001Mask |= 0x2 + case "status": + z.Status, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Status") + return + } + case "start_time": + z.StartTime, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "StartTime") + return + } + case "end_time": + z.EndTime, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "EndTime") + return + } + zb0001Mask |= 0x4 + case "settings": + err = z.Settings.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "Settings") + return + } + case "scanned_items": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "ScannedItems") + return + } + if z.ScannedItems == nil { + z.ScannedItems = make(map[HealItemType]int64, zb0002) + } else if len(z.ScannedItems) > 0 { + clear(z.ScannedItems) + } + for zb0002 > 0 { + zb0002-- + var za0001 HealItemType + { + var zb0003 string + zb0003, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "ScannedItems", za0001) + return + } + za0001 = HealItemType(zb0003) + } + var za0002 int64 + za0002, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ScannedItems", za0001) + return + } + z.ScannedItems[za0001] = za0002 + } + zb0001Mask |= 0x8 + case "healed_items": + var zb0004 uint32 + zb0004, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "HealedItems") + return + } + if z.HealedItems == nil { + z.HealedItems = make(map[HealItemType]int64, zb0004) + } else if len(z.HealedItems) > 0 { + clear(z.HealedItems) + } + for zb0004 > 0 { + zb0004-- + var za0003 HealItemType + { + var zb0005 string + zb0005, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "HealedItems", za0003) + return + } + za0003 = HealItemType(zb0005) + } + var za0004 int64 + za0004, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "HealedItems", za0003) + return + } + z.HealedItems[za0003] = za0004 + } + zb0001Mask |= 0x10 + case "failed_items": + var zb0006 uint32 + zb0006, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "FailedItems") + return + } + if z.FailedItems == nil { + z.FailedItems = make(map[HealItemType]int64, zb0006) + } else if len(z.FailedItems) > 0 { + clear(z.FailedItems) + } + for zb0006 > 0 { + zb0006-- + var za0005 HealItemType + { + var zb0007 string + zb0007, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "FailedItems", za0005) + return + } + za0005 = HealItemType(zb0007) + } + var za0006 int64 + za0006, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "FailedItems", za0005) + return + } + z.FailedItems[za0005] = za0006 + } + zb0001Mask |= 0x20 + case "last_activity": + z.LastActivity, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "LastActivity") + return + } + zb0001Mask |= 0x40 + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + // Clear omitted fields. + if zb0001Mask != 0x7f { + if (zb0001Mask & 0x1) == 0 { + z.Bucket = "" + } + if (zb0001Mask & 0x2) == 0 { + z.Prefix = "" + } + if (zb0001Mask & 0x4) == 0 { + z.EndTime = (time.Time{}) + } + if (zb0001Mask & 0x8) == 0 { + z.ScannedItems = nil + } + if (zb0001Mask & 0x10) == 0 { + z.HealedItems = nil + } + if (zb0001Mask & 0x20) == 0 { + z.FailedItems = nil + } + if (zb0001Mask & 0x40) == 0 { + z.LastActivity = (time.Time{}) + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *HealSession) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ + _ = zb0001Mask + if z.Bucket == "" { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.Prefix == "" { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.EndTime == (time.Time{}) { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.ScannedItems == nil { + zb0001Len-- + zb0001Mask |= 0x80 + } + if z.HealedItems == nil { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.FailedItems == nil { + zb0001Len-- + zb0001Mask |= 0x200 + } + if z.LastActivity == (time.Time{}) { + zb0001Len-- + zb0001Mask |= 0x400 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "client_token" + err = en.Append(0xac, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e) + if err != nil { + return + } + err = en.WriteString(z.ClientToken) + if err != nil { + err = msgp.WrapError(err, "ClientToken") + return + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "bucket" + err = en.Append(0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + if err != nil { + return + } + err = en.WriteString(z.Bucket) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "prefix" + err = en.Append(0xa6, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78) + if err != nil { + return + } + err = en.WriteString(z.Prefix) + if err != nil { + err = msgp.WrapError(err, "Prefix") + return + } + } + // write "status" + err = en.Append(0xa6, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73) + if err != nil { + return + } + err = en.WriteString(z.Status) + if err != nil { + err = msgp.WrapError(err, "Status") + return + } + // write "start_time" + err = en.Append(0xaa, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65) + if err != nil { + return + } + err = en.WriteTime(z.StartTime) + if err != nil { + err = msgp.WrapError(err, "StartTime") + return + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "end_time" + err = en.Append(0xa8, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65) + if err != nil { + return + } + err = en.WriteTime(z.EndTime) + if err != nil { + err = msgp.WrapError(err, "EndTime") + return + } + } + // write "settings" + err = en.Append(0xa8, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73) + if err != nil { + return + } + err = z.Settings.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "Settings") + return + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "scanned_items" + err = en.Append(0xad, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.ScannedItems))) + if err != nil { + err = msgp.WrapError(err, "ScannedItems") + return + } + for za0001, za0002 := range z.ScannedItems { + err = en.WriteString(string(za0001)) + if err != nil { + err = msgp.WrapError(err, "ScannedItems", za0001) + return + } + err = en.WriteInt64(za0002) + if err != nil { + err = msgp.WrapError(err, "ScannedItems", za0001) + return + } + } + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "healed_items" + err = en.Append(0xac, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.HealedItems))) + if err != nil { + err = msgp.WrapError(err, "HealedItems") + return + } + for za0003, za0004 := range z.HealedItems { + err = en.WriteString(string(za0003)) + if err != nil { + err = msgp.WrapError(err, "HealedItems", za0003) + return + } + err = en.WriteInt64(za0004) + if err != nil { + err = msgp.WrapError(err, "HealedItems", za0003) + return + } + } + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "failed_items" + err = en.Append(0xac, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.FailedItems))) + if err != nil { + err = msgp.WrapError(err, "FailedItems") + return + } + for za0005, za0006 := range z.FailedItems { + err = en.WriteString(string(za0005)) + if err != nil { + err = msgp.WrapError(err, "FailedItems", za0005) + return + } + err = en.WriteInt64(za0006) + if err != nil { + err = msgp.WrapError(err, "FailedItems", za0005) + return + } + } + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // write "last_activity" + err = en.Append(0xad, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79) + if err != nil { + return + } + err = en.WriteTime(z.LastActivity) + if err != nil { + err = msgp.WrapError(err, "LastActivity") + return + } + } + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *HealSession) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ + _ = zb0001Mask + if z.Bucket == "" { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.Prefix == "" { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.EndTime == (time.Time{}) { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.ScannedItems == nil { + zb0001Len-- + zb0001Mask |= 0x80 + } + if z.HealedItems == nil { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.FailedItems == nil { + zb0001Len-- + zb0001Mask |= 0x200 + } + if z.LastActivity == (time.Time{}) { + zb0001Len-- + zb0001Mask |= 0x400 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // string "client_token" + o = append(o, 0xac, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e) + o = msgp.AppendString(o, z.ClientToken) + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "bucket" + o = append(o, 0xa6, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74) + o = msgp.AppendString(o, z.Bucket) + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "prefix" + o = append(o, 0xa6, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78) + o = msgp.AppendString(o, z.Prefix) + } + // string "status" + o = append(o, 0xa6, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73) + o = msgp.AppendString(o, z.Status) + // string "start_time" + o = append(o, 0xaa, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65) + o = msgp.AppendTime(o, z.StartTime) + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "end_time" + o = append(o, 0xa8, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65) + o = msgp.AppendTime(o, z.EndTime) + } + // string "settings" + o = append(o, 0xa8, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73) + o, err = z.Settings.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "Settings") + return + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // string "scanned_items" + o = append(o, 0xad, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.ScannedItems))) + for za0001, za0002 := range z.ScannedItems { + o = msgp.AppendString(o, string(za0001)) + o = msgp.AppendInt64(o, za0002) + } + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // string "healed_items" + o = append(o, 0xac, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.HealedItems))) + for za0003, za0004 := range z.HealedItems { + o = msgp.AppendString(o, string(za0003)) + o = msgp.AppendInt64(o, za0004) + } + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // string "failed_items" + o = append(o, 0xac, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.FailedItems))) + for za0005, za0006 := range z.FailedItems { + o = msgp.AppendString(o, string(za0005)) + o = msgp.AppendInt64(o, za0006) + } + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // string "last_activity" + o = append(o, 0xad, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79) + o = msgp.AppendTime(o, z.LastActivity) + } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *HealSession) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 7 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "client_token": + z.ClientToken, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ClientToken") + return + } + case "bucket": + z.Bucket, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Bucket") + return + } + zb0001Mask |= 0x1 + case "prefix": + z.Prefix, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Prefix") + return + } + zb0001Mask |= 0x2 + case "status": + z.Status, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Status") + return + } + case "start_time": + z.StartTime, bts, err = msgp.ReadTimeUTCBytes(bts) + if err != nil { + err = msgp.WrapError(err, "StartTime") + return + } + case "end_time": + z.EndTime, bts, err = msgp.ReadTimeUTCBytes(bts) + if err != nil { + err = msgp.WrapError(err, "EndTime") + return + } + zb0001Mask |= 0x4 + case "settings": + bts, err = z.Settings.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "Settings") + return + } + case "scanned_items": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ScannedItems") + return + } + if z.ScannedItems == nil { + z.ScannedItems = make(map[HealItemType]int64, zb0002) + } else if len(z.ScannedItems) > 0 { clear(z.ScannedItems) } for zb0002 > 0 { @@ -15452,7 +16415,7 @@ func (z *Metrics) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 14 bits */ + var zb0001Mask uint16 /* 15 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -15728,6 +16691,25 @@ func (z *Metrics) DecodeMsg(dc *msgp.Reader) (err error) { } } zb0001Mask |= 0x2000 + case "buckets": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + z.Buckets = nil + } else { + if z.Buckets == nil { + z.Buckets = new(BucketAPIMetrics) + } + err = z.Buckets.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + } + zb0001Mask |= 0x4000 default: err = dc.Skip() if err != nil { @@ -15737,7 +16719,7 @@ func (z *Metrics) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0x3fff { + if zb0001Mask != 0x7fff { if (zb0001Mask & 0x1) == 0 { z.Scanner = nil } @@ -15780,6 +16762,9 @@ func (z *Metrics) DecodeMsg(dc *msgp.Reader) (err error) { if (zb0001Mask & 0x2000) == 0 { z.Healing = nil } + if (zb0001Mask & 0x4000) == 0 { + z.Buckets = nil + } } return } @@ -15787,8 +16772,8 @@ func (z *Metrics) DecodeMsg(dc *msgp.Reader) (err error) { // EncodeMsg implements msgp.Encodable func (z *Metrics) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(14) - var zb0001Mask uint16 /* 14 bits */ + zb0001Len := uint32(15) + var zb0001Mask uint16 /* 15 bits */ _ = zb0001Mask if z.Scanner == nil { zb0001Len-- @@ -15846,6 +16831,10 @@ func (z *Metrics) EncodeMsg(en *msgp.Writer) (err error) { zb0001Len-- zb0001Mask |= 0x2000 } + if z.Buckets == nil { + zb0001Len-- + zb0001Mask |= 0x4000 + } // variable map header, size zb0001Len err = en.Append(0x80 | uint8(zb0001Len)) if err != nil { @@ -16120,6 +17109,25 @@ func (z *Metrics) EncodeMsg(en *msgp.Writer) (err error) { } } } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // write "buckets" + err = en.Append(0xa7, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + if err != nil { + return + } + if z.Buckets == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = z.Buckets.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + } + } } return } @@ -16128,8 +17136,8 @@ func (z *Metrics) EncodeMsg(en *msgp.Writer) (err error) { func (z *Metrics) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(14) - var zb0001Mask uint16 /* 14 bits */ + zb0001Len := uint32(15) + var zb0001Mask uint16 /* 15 bits */ _ = zb0001Mask if z.Scanner == nil { zb0001Len-- @@ -16187,6 +17195,10 @@ func (z *Metrics) MarshalMsg(b []byte) (o []byte, err error) { zb0001Len-- zb0001Mask |= 0x2000 } + if z.Buckets == nil { + zb0001Len-- + zb0001Mask |= 0x4000 + } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) @@ -16374,6 +17386,19 @@ func (z *Metrics) MarshalMsg(b []byte) (o []byte, err error) { } } } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // string "buckets" + o = append(o, 0xa7, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + if z.Buckets == nil { + o = msgp.AppendNil(o) + } else { + o, err = z.Buckets.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + } + } } return } @@ -16388,7 +17413,7 @@ func (z *Metrics) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint16 /* 14 bits */ + var zb0001Mask uint16 /* 15 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -16650,6 +17675,24 @@ func (z *Metrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } } zb0001Mask |= 0x2000 + case "buckets": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.Buckets = nil + } else { + if z.Buckets == nil { + z.Buckets = new(BucketAPIMetrics) + } + bts, err = z.Buckets.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + } + zb0001Mask |= 0x4000 default: bts, err = msgp.Skip(bts) if err != nil { @@ -16659,7 +17702,7 @@ func (z *Metrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0x3fff { + if zb0001Mask != 0x7fff { if (zb0001Mask & 0x1) == 0 { z.Scanner = nil } @@ -16702,6 +17745,9 @@ func (z *Metrics) UnmarshalMsg(bts []byte) (o []byte, err error) { if (zb0001Mask & 0x2000) == 0 { z.Healing = nil } + if (zb0001Mask & 0x4000) == 0 { + z.Buckets = nil + } } o = bts return @@ -16793,6 +17839,12 @@ func (z *Metrics) Msgsize() (s int) { } else { s += z.Healing.Msgsize() } + s += 8 + if z.Buckets == nil { + s += msgp.NilSize + } else { + s += z.Buckets.Msgsize() + } return } @@ -16941,6 +17993,25 @@ func (z *MetricsOptions) DecodeMsg(dc *msgp.Reader) (err error) { return } } + case "Buckets": + var zb0009 uint32 + zb0009, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + if cap(z.Buckets) >= int(zb0009) { + z.Buckets = (z.Buckets)[:zb0009] + } else { + z.Buckets = make([]string, zb0009) + } + for za0006 := range z.Buckets { + z.Buckets[za0006], err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Buckets", za0006) + return + } + } case "ByJobID": z.ByJobID, err = dc.ReadString() if err != nil { @@ -16978,9 +18049,9 @@ func (z *MetricsOptions) DecodeMsg(dc *msgp.Reader) (err error) { // EncodeMsg implements msgp.Encodable func (z *MetricsOptions) EncodeMsg(en *msgp.Writer) (err error) { - // map header, size 13 + // map header, size 14 // write "Type" - err = en.Append(0x8d, 0xa4, 0x54, 0x79, 0x70, 0x65) + err = en.Append(0x8e, 0xa4, 0x54, 0x79, 0x70, 0x65) if err != nil { return } @@ -17104,6 +18175,23 @@ func (z *MetricsOptions) EncodeMsg(en *msgp.Writer) (err error) { return } } + // write "Buckets" + err = en.Append(0xa7, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + if err != nil { + return + } + err = en.WriteArrayHeader(uint32(len(z.Buckets))) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + for za0006 := range z.Buckets { + err = en.WriteString(z.Buckets[za0006]) + if err != nil { + err = msgp.WrapError(err, "Buckets", za0006) + return + } + } // write "ByJobID" err = en.Append(0xa7, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x44) if err != nil { @@ -17150,9 +18238,9 @@ func (z *MetricsOptions) EncodeMsg(en *msgp.Writer) (err error) { // MarshalMsg implements msgp.Marshaler func (z *MetricsOptions) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) - // map header, size 13 + // map header, size 14 // string "Type" - o = append(o, 0x8d, 0xa4, 0x54, 0x79, 0x70, 0x65) + o = append(o, 0x8e, 0xa4, 0x54, 0x79, 0x70, 0x65) o = msgp.AppendUint32(o, uint32(z.Type)) // string "Flags" o = append(o, 0xa5, 0x46, 0x6c, 0x61, 0x67, 0x73) @@ -17193,6 +18281,12 @@ func (z *MetricsOptions) MarshalMsg(b []byte) (o []byte, err error) { for za0005 := range z.Disks { o = msgp.AppendString(o, z.Disks[za0005]) } + // string "Buckets" + o = append(o, 0xa7, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Buckets))) + for za0006 := range z.Buckets { + o = msgp.AppendString(o, z.Buckets[za0006]) + } // string "ByJobID" o = append(o, 0xa7, 0x42, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x44) o = msgp.AppendString(o, z.ByJobID) @@ -17349,7 +18443,26 @@ func (z *MetricsOptions) UnmarshalMsg(bts []byte) (o []byte, err error) { for za0005 := range z.Disks { z.Disks[za0005], bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "Disks", za0005) + err = msgp.WrapError(err, "Disks", za0005) + return + } + } + case "Buckets": + var zb0009 uint32 + zb0009, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Buckets") + return + } + if cap(z.Buckets) >= int(zb0009) { + z.Buckets = (z.Buckets)[:zb0009] + } else { + z.Buckets = make([]string, zb0009) + } + for za0006 := range z.Buckets { + z.Buckets[za0006], bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Buckets", za0006) return } } @@ -17399,6 +18512,10 @@ func (z *MetricsOptions) Msgsize() (s int) { for za0005 := range z.Disks { s += msgp.StringPrefixSize + len(z.Disks[za0005]) } + s += 8 + msgp.ArrayHeaderSize + for za0006 := range z.Buckets { + s += msgp.StringPrefixSize + len(z.Buckets[za0006]) + } s += 8 + msgp.StringPrefixSize + len(z.ByJobID) + 8 + msgp.StringPrefixSize + len(z.ByDepID) + 7 + msgp.BoolSize + 7 + msgp.BoolSize return } @@ -27802,363 +28919,844 @@ func (z *ReplicationReceivedStats) UnmarshalMsg(bts []byte) (o []byte, err error } } default: - bts, err = msgp.Skip(bts) + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *ReplicationReceivedStats) Msgsize() (s int) { + s = 1 + 11 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 9 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 8 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 11 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *ReplicationStats) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint32 /* 28 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "nodes": + z.Nodes, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "Nodes") + return + } + zb0001Mask |= 0x1 + case "startTime": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "StartTime") + return + } + z.StartTime = nil + } else { + if z.StartTime == nil { + z.StartTime = new(time.Time) + } + *z.StartTime, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "StartTime") + return + } + } + zb0001Mask |= 0x2 + case "endTime": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "EndTime") + return + } + z.EndTime = nil + } else { + if z.EndTime == nil { + z.EndTime = new(time.Time) + } + *z.EndTime, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "EndTime") + return + } + } + zb0001Mask |= 0x4 + case "wallTimeSecs": + z.WallTimeSecs, err = dc.ReadFloat64() + if err != nil { + err = msgp.WrapError(err, "WallTimeSecs") + return + } + zb0001Mask |= 0x8 + case "events": + z.Events, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Events") + return + } + zb0001Mask |= 0x10 + case "bytes": + z.Bytes, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Bytes") + return + } + zb0001Mask |= 0x20 + case "timeSecs": + z.EventTimeSecs, err = dc.ReadFloat64() + if err != nil { + err = msgp.WrapError(err, "EventTimeSecs") + return + } + zb0001Mask |= 0x40 + case "latency": + z.LatencySecs, err = dc.ReadFloat64() + if err != nil { + err = msgp.WrapError(err, "LatencySecs") + return + } + zb0001Mask |= 0x80 + case "maxLatency": + z.MaxLatencySecs, err = dc.ReadFloat64() + if err != nil { + err = msgp.WrapError(err, "MaxLatencySecs") + return + } + zb0001Mask |= 0x100 + case "put": + z.PutObject, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "PutObject") + return + } + zb0001Mask |= 0x200 + case "updateMeta": + z.UpdateMeta, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "UpdateMeta") + return + } + zb0001Mask |= 0x400 + case "del": + z.DelObject, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DelObject") + return + } + zb0001Mask |= 0x800 + case "delTag": + z.DelTag, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DelTag") + return + } + zb0001Mask |= 0x1000 + case "putErrs": + z.PutErrors, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "PutErrors") + return + } + zb0001Mask |= 0x2000 + case "putTagErrs": + z.UpdateMetaErrors, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "UpdateMetaErrors") + return + } + zb0001Mask |= 0x4000 + case "delErrs": + z.DelErrors, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DelErrors") + return + } + zb0001Mask |= 0x8000 + case "delTagErrs": + z.DelTagErrors, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "DelTagErrors") + return + } + zb0001Mask |= 0x10000 + case "synced": + z.Synced, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Synced") + return + } + zb0001Mask |= 0x20000 + case "alreadyOK": + z.AlreadyOK, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "AlreadyOK") + return + } + zb0001Mask |= 0x40000 + case "rejected": + z.Rejected, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "Rejected") + return + } + zb0001Mask |= 0x80000 + case "proxy": + z.ProxyEvents, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyEvents") + return + } + zb0001Mask |= 0x100000 + case "proxyBytes": + z.ProxyBytes, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyBytes") + return + } + zb0001Mask |= 0x200000 + case "proxyHead": + z.ProxyHead, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyHead") + return + } + zb0001Mask |= 0x400000 + case "proxyGet": + z.ProxyGet, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyGet") + return + } + zb0001Mask |= 0x800000 + case "proxyGetTag": + z.ProxyGetTag, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyGetTag") + return + } + zb0001Mask |= 0x1000000 + case "proxyHeadOK": + z.ProxyHeadOK, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyHeadOK") + return + } + zb0001Mask |= 0x2000000 + case "proxyGetOK": + z.ProxyGetOK, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyGetOK") + return + } + zb0001Mask |= 0x4000000 + case "proxyGetTagOK": + z.ProxyGetTagOK, err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "ProxyGetTagOK") + return + } + zb0001Mask |= 0x8000000 + default: + err = dc.Skip() if err != nil { err = msgp.WrapError(err) return } } } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ReplicationReceivedStats) Msgsize() (s int) { - s = 1 + 11 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 9 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 8 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + 11 + 1 + 6 + msgp.Int64Size + 6 + msgp.Int64Size + // Clear omitted fields. + if zb0001Mask != 0xfffffff { + if (zb0001Mask & 0x1) == 0 { + z.Nodes = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.StartTime = nil + } + if (zb0001Mask & 0x4) == 0 { + z.EndTime = nil + } + if (zb0001Mask & 0x8) == 0 { + z.WallTimeSecs = 0 + } + if (zb0001Mask & 0x10) == 0 { + z.Events = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Bytes = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.EventTimeSecs = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.LatencySecs = 0 + } + if (zb0001Mask & 0x100) == 0 { + z.MaxLatencySecs = 0 + } + if (zb0001Mask & 0x200) == 0 { + z.PutObject = 0 + } + if (zb0001Mask & 0x400) == 0 { + z.UpdateMeta = 0 + } + if (zb0001Mask & 0x800) == 0 { + z.DelObject = 0 + } + if (zb0001Mask & 0x1000) == 0 { + z.DelTag = 0 + } + if (zb0001Mask & 0x2000) == 0 { + z.PutErrors = 0 + } + if (zb0001Mask & 0x4000) == 0 { + z.UpdateMetaErrors = 0 + } + if (zb0001Mask & 0x8000) == 0 { + z.DelErrors = 0 + } + if (zb0001Mask & 0x10000) == 0 { + z.DelTagErrors = 0 + } + if (zb0001Mask & 0x20000) == 0 { + z.Synced = 0 + } + if (zb0001Mask & 0x40000) == 0 { + z.AlreadyOK = 0 + } + if (zb0001Mask & 0x80000) == 0 { + z.Rejected = 0 + } + if (zb0001Mask & 0x100000) == 0 { + z.ProxyEvents = 0 + } + if (zb0001Mask & 0x200000) == 0 { + z.ProxyBytes = 0 + } + if (zb0001Mask & 0x400000) == 0 { + z.ProxyHead = 0 + } + if (zb0001Mask & 0x800000) == 0 { + z.ProxyGet = 0 + } + if (zb0001Mask & 0x1000000) == 0 { + z.ProxyGetTag = 0 + } + if (zb0001Mask & 0x2000000) == 0 { + z.ProxyHeadOK = 0 + } + if (zb0001Mask & 0x4000000) == 0 { + z.ProxyGetOK = 0 + } + if (zb0001Mask & 0x8000000) == 0 { + z.ProxyGetTagOK = 0 + } + } return } -// DecodeMsg implements msgp.Decodable -func (z *ReplicationStats) DecodeMsg(dc *msgp.Reader) (err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() +// EncodeMsg implements msgp.Encodable +func (z *ReplicationStats) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(28) + var zb0001Mask uint32 /* 28 bits */ + _ = zb0001Mask + if z.Nodes == 0 { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.StartTime == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.EndTime == nil { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.WallTimeSecs == 0 { + zb0001Len-- + zb0001Mask |= 0x8 + } + if z.Events == 0 { + zb0001Len-- + zb0001Mask |= 0x10 + } + if z.Bytes == 0 { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.EventTimeSecs == 0 { + zb0001Len-- + zb0001Mask |= 0x40 + } + if z.LatencySecs == 0 { + zb0001Len-- + zb0001Mask |= 0x80 + } + if z.MaxLatencySecs == 0 { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.PutObject == 0 { + zb0001Len-- + zb0001Mask |= 0x200 + } + if z.UpdateMeta == 0 { + zb0001Len-- + zb0001Mask |= 0x400 + } + if z.DelObject == 0 { + zb0001Len-- + zb0001Mask |= 0x800 + } + if z.DelTag == 0 { + zb0001Len-- + zb0001Mask |= 0x1000 + } + if z.PutErrors == 0 { + zb0001Len-- + zb0001Mask |= 0x2000 + } + if z.UpdateMetaErrors == 0 { + zb0001Len-- + zb0001Mask |= 0x4000 + } + if z.DelErrors == 0 { + zb0001Len-- + zb0001Mask |= 0x8000 + } + if z.DelTagErrors == 0 { + zb0001Len-- + zb0001Mask |= 0x10000 + } + if z.Synced == 0 { + zb0001Len-- + zb0001Mask |= 0x20000 + } + if z.AlreadyOK == 0 { + zb0001Len-- + zb0001Mask |= 0x40000 + } + if z.Rejected == 0 { + zb0001Len-- + zb0001Mask |= 0x80000 + } + if z.ProxyEvents == 0 { + zb0001Len-- + zb0001Mask |= 0x100000 + } + if z.ProxyBytes == 0 { + zb0001Len-- + zb0001Mask |= 0x200000 + } + if z.ProxyHead == 0 { + zb0001Len-- + zb0001Mask |= 0x400000 + } + if z.ProxyGet == 0 { + zb0001Len-- + zb0001Mask |= 0x800000 + } + if z.ProxyGetTag == 0 { + zb0001Len-- + zb0001Mask |= 0x1000000 + } + if z.ProxyHeadOK == 0 { + zb0001Len-- + zb0001Mask |= 0x2000000 + } + if z.ProxyGetOK == 0 { + zb0001Len-- + zb0001Mask |= 0x4000000 + } + if z.ProxyGetTagOK == 0 { + zb0001Len-- + zb0001Mask |= 0x8000000 + } + // variable map header, size zb0001Len + err = en.WriteMapHeader(zb0001Len) if err != nil { - err = msgp.WrapError(err) return } - var zb0001Mask uint32 /* 28 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, err = dc.ReadMapKeyPtr() - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "nodes": - z.Nodes, err = dc.ReadInt() + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "nodes" + err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.Nodes) if err != nil { err = msgp.WrapError(err, "Nodes") return } - zb0001Mask |= 0x1 - case "startTime": - if dc.IsNil() { - err = dc.ReadNil() + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "startTime" + err = en.Append(0xa9, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65) + if err != nil { + return + } + if z.StartTime == nil { + err = en.WriteNil() if err != nil { - err = msgp.WrapError(err, "StartTime") return } - z.StartTime = nil } else { - if z.StartTime == nil { - z.StartTime = new(time.Time) - } - *z.StartTime, err = dc.ReadTimeUTC() + err = en.WriteTime(*z.StartTime) if err != nil { err = msgp.WrapError(err, "StartTime") return } } - zb0001Mask |= 0x2 - case "endTime": - if dc.IsNil() { - err = dc.ReadNil() + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "endTime" + err = en.Append(0xa7, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65) + if err != nil { + return + } + if z.EndTime == nil { + err = en.WriteNil() if err != nil { - err = msgp.WrapError(err, "EndTime") return } - z.EndTime = nil } else { - if z.EndTime == nil { - z.EndTime = new(time.Time) - } - *z.EndTime, err = dc.ReadTimeUTC() + err = en.WriteTime(*z.EndTime) if err != nil { err = msgp.WrapError(err, "EndTime") return } } - zb0001Mask |= 0x4 - case "wallTimeSecs": - z.WallTimeSecs, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "wallTimeSecs" + err = en.Append(0xac, 0x77, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) + if err != nil { + return + } + err = en.WriteFloat64(z.WallTimeSecs) if err != nil { err = msgp.WrapError(err, "WallTimeSecs") return } - zb0001Mask |= 0x8 - case "events": - z.Events, err = dc.ReadInt64() + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "events" + err = en.Append(0xa6, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.Events) if err != nil { err = msgp.WrapError(err, "Events") return } - zb0001Mask |= 0x10 - case "bytes": - z.Bytes, err = dc.ReadInt64() + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "bytes" + err = en.Append(0xa5, 0x62, 0x79, 0x74, 0x65, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.Bytes) if err != nil { err = msgp.WrapError(err, "Bytes") return } - zb0001Mask |= 0x20 - case "timeSecs": - z.EventTimeSecs, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // write "timeSecs" + err = en.Append(0xa8, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) + if err != nil { + return + } + err = en.WriteFloat64(z.EventTimeSecs) if err != nil { err = msgp.WrapError(err, "EventTimeSecs") return } - zb0001Mask |= 0x40 - case "latency": - z.LatencySecs, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "latency" + err = en.Append(0xa7, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) + if err != nil { + return + } + err = en.WriteFloat64(z.LatencySecs) if err != nil { err = msgp.WrapError(err, "LatencySecs") return } - zb0001Mask |= 0x80 - case "maxLatency": - z.MaxLatencySecs, err = dc.ReadFloat64() + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "maxLatency" + err = en.Append(0xaa, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) + if err != nil { + return + } + err = en.WriteFloat64(z.MaxLatencySecs) if err != nil { err = msgp.WrapError(err, "MaxLatencySecs") return } - zb0001Mask |= 0x100 - case "put": - z.PutObject, err = dc.ReadInt64() + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "put" + err = en.Append(0xa3, 0x70, 0x75, 0x74) + if err != nil { + return + } + err = en.WriteInt64(z.PutObject) if err != nil { err = msgp.WrapError(err, "PutObject") return } - zb0001Mask |= 0x200 - case "updateMeta": - z.UpdateMeta, err = dc.ReadInt64() + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // write "updateMeta" + err = en.Append(0xaa, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61) + if err != nil { + return + } + err = en.WriteInt64(z.UpdateMeta) if err != nil { err = msgp.WrapError(err, "UpdateMeta") return } - zb0001Mask |= 0x400 - case "del": - z.DelObject, err = dc.ReadInt64() + } + if (zb0001Mask & 0x800) == 0 { // if not omitted + // write "del" + err = en.Append(0xa3, 0x64, 0x65, 0x6c) + if err != nil { + return + } + err = en.WriteInt64(z.DelObject) if err != nil { err = msgp.WrapError(err, "DelObject") return } - zb0001Mask |= 0x800 - case "delTag": - z.DelTag, err = dc.ReadInt64() + } + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // write "delTag" + err = en.Append(0xa6, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67) + if err != nil { + return + } + err = en.WriteInt64(z.DelTag) if err != nil { err = msgp.WrapError(err, "DelTag") return } - zb0001Mask |= 0x1000 - case "putErrs": - z.PutErrors, err = dc.ReadInt64() + } + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // write "putErrs" + err = en.Append(0xa7, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.PutErrors) if err != nil { err = msgp.WrapError(err, "PutErrors") return } - zb0001Mask |= 0x2000 - case "putTagErrs": - z.UpdateMetaErrors, err = dc.ReadInt64() + } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // write "putTagErrs" + err = en.Append(0xaa, 0x70, 0x75, 0x74, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.UpdateMetaErrors) if err != nil { err = msgp.WrapError(err, "UpdateMetaErrors") return } - zb0001Mask |= 0x4000 - case "delErrs": - z.DelErrors, err = dc.ReadInt64() + } + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // write "delErrs" + err = en.Append(0xa7, 0x64, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.DelErrors) if err != nil { err = msgp.WrapError(err, "DelErrors") return } - zb0001Mask |= 0x8000 - case "delTagErrs": - z.DelTagErrors, err = dc.ReadInt64() + } + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // write "delTagErrs" + err = en.Append(0xaa, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.DelTagErrors) if err != nil { err = msgp.WrapError(err, "DelTagErrors") return } - zb0001Mask |= 0x10000 - case "synced": - z.Synced, err = dc.ReadInt64() + } + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // write "synced" + err = en.Append(0xa6, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.Synced) if err != nil { err = msgp.WrapError(err, "Synced") return } - zb0001Mask |= 0x20000 - case "alreadyOK": - z.AlreadyOK, err = dc.ReadInt64() + } + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // write "alreadyOK" + err = en.Append(0xa9, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4f, 0x4b) + if err != nil { + return + } + err = en.WriteInt64(z.AlreadyOK) if err != nil { err = msgp.WrapError(err, "AlreadyOK") return } - zb0001Mask |= 0x40000 - case "rejected": - z.Rejected, err = dc.ReadInt64() + } + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // write "rejected" + err = en.Append(0xa8, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.Rejected) + if err != nil { + err = msgp.WrapError(err, "Rejected") + return + } + } + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // write "proxy" + err = en.Append(0xa5, 0x70, 0x72, 0x6f, 0x78, 0x79) + if err != nil { + return + } + err = en.WriteInt64(z.ProxyEvents) + if err != nil { + err = msgp.WrapError(err, "ProxyEvents") + return + } + } + if (zb0001Mask & 0x200000) == 0 { // if not omitted + // write "proxyBytes" + err = en.Append(0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73) + if err != nil { + return + } + err = en.WriteInt64(z.ProxyBytes) + if err != nil { + err = msgp.WrapError(err, "ProxyBytes") + return + } + } + if (zb0001Mask & 0x400000) == 0 { // if not omitted + // write "proxyHead" + err = en.Append(0xa9, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64) + if err != nil { + return + } + err = en.WriteInt64(z.ProxyHead) if err != nil { - err = msgp.WrapError(err, "Rejected") + err = msgp.WrapError(err, "ProxyHead") return } - zb0001Mask |= 0x80000 - case "proxy": - z.ProxyEvents, err = dc.ReadInt64() + } + if (zb0001Mask & 0x800000) == 0 { // if not omitted + // write "proxyGet" + err = en.Append(0xa8, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74) if err != nil { - err = msgp.WrapError(err, "ProxyEvents") return } - zb0001Mask |= 0x100000 - case "proxyBytes": - z.ProxyBytes, err = dc.ReadInt64() + err = en.WriteInt64(z.ProxyGet) if err != nil { - err = msgp.WrapError(err, "ProxyBytes") + err = msgp.WrapError(err, "ProxyGet") return } - zb0001Mask |= 0x200000 - case "proxyHead": - z.ProxyHead, err = dc.ReadInt64() + } + if (zb0001Mask & 0x1000000) == 0 { // if not omitted + // write "proxyGetTag" + err = en.Append(0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67) if err != nil { - err = msgp.WrapError(err, "ProxyHead") return } - zb0001Mask |= 0x400000 - case "proxyGet": - z.ProxyGet, err = dc.ReadInt64() + err = en.WriteInt64(z.ProxyGetTag) if err != nil { - err = msgp.WrapError(err, "ProxyGet") + err = msgp.WrapError(err, "ProxyGetTag") return } - zb0001Mask |= 0x800000 - case "proxyGetTag": - z.ProxyGetTag, err = dc.ReadInt64() + } + if (zb0001Mask & 0x2000000) == 0 { // if not omitted + // write "proxyHeadOK" + err = en.Append(0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x4b) if err != nil { - err = msgp.WrapError(err, "ProxyGetTag") return } - zb0001Mask |= 0x1000000 - case "proxyHeadOK": - z.ProxyHeadOK, err = dc.ReadInt64() + err = en.WriteInt64(z.ProxyHeadOK) if err != nil { err = msgp.WrapError(err, "ProxyHeadOK") return } - zb0001Mask |= 0x2000000 - case "proxyGetOK": - z.ProxyGetOK, err = dc.ReadInt64() + } + if (zb0001Mask & 0x4000000) == 0 { // if not omitted + // write "proxyGetOK" + err = en.Append(0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4f, 0x4b) + if err != nil { + return + } + err = en.WriteInt64(z.ProxyGetOK) if err != nil { err = msgp.WrapError(err, "ProxyGetOK") return } - zb0001Mask |= 0x4000000 - case "proxyGetTagOK": - z.ProxyGetTagOK, err = dc.ReadInt64() + } + if (zb0001Mask & 0x8000000) == 0 { // if not omitted + // write "proxyGetTagOK" + err = en.Append(0xad, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x4b) if err != nil { - err = msgp.WrapError(err, "ProxyGetTagOK") return } - zb0001Mask |= 0x8000000 - default: - err = dc.Skip() + err = en.WriteInt64(z.ProxyGetTagOK) if err != nil { - err = msgp.WrapError(err) + err = msgp.WrapError(err, "ProxyGetTagOK") return } } } - // Clear omitted fields. - if zb0001Mask != 0xfffffff { - if (zb0001Mask & 0x1) == 0 { - z.Nodes = 0 - } - if (zb0001Mask & 0x2) == 0 { - z.StartTime = nil - } - if (zb0001Mask & 0x4) == 0 { - z.EndTime = nil - } - if (zb0001Mask & 0x8) == 0 { - z.WallTimeSecs = 0 - } - if (zb0001Mask & 0x10) == 0 { - z.Events = 0 - } - if (zb0001Mask & 0x20) == 0 { - z.Bytes = 0 - } - if (zb0001Mask & 0x40) == 0 { - z.EventTimeSecs = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.LatencySecs = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.MaxLatencySecs = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.PutObject = 0 - } - if (zb0001Mask & 0x400) == 0 { - z.UpdateMeta = 0 - } - if (zb0001Mask & 0x800) == 0 { - z.DelObject = 0 - } - if (zb0001Mask & 0x1000) == 0 { - z.DelTag = 0 - } - if (zb0001Mask & 0x2000) == 0 { - z.PutErrors = 0 - } - if (zb0001Mask & 0x4000) == 0 { - z.UpdateMetaErrors = 0 - } - if (zb0001Mask & 0x8000) == 0 { - z.DelErrors = 0 - } - if (zb0001Mask & 0x10000) == 0 { - z.DelTagErrors = 0 - } - if (zb0001Mask & 0x20000) == 0 { - z.Synced = 0 - } - if (zb0001Mask & 0x40000) == 0 { - z.AlreadyOK = 0 - } - if (zb0001Mask & 0x80000) == 0 { - z.Rejected = 0 - } - if (zb0001Mask & 0x100000) == 0 { - z.ProxyEvents = 0 - } - if (zb0001Mask & 0x200000) == 0 { - z.ProxyBytes = 0 - } - if (zb0001Mask & 0x400000) == 0 { - z.ProxyHead = 0 - } - if (zb0001Mask & 0x800000) == 0 { - z.ProxyGet = 0 - } - if (zb0001Mask & 0x1000000) == 0 { - z.ProxyGetTag = 0 - } - if (zb0001Mask & 0x2000000) == 0 { - z.ProxyHeadOK = 0 - } - if (zb0001Mask & 0x4000000) == 0 { - z.ProxyGetOK = 0 - } - if (zb0001Mask & 0x8000000) == 0 { - z.ProxyGetTagOK = 0 - } - } return } -// EncodeMsg implements msgp.Encodable -func (z *ReplicationStats) EncodeMsg(en *msgp.Writer) (err error) { +// MarshalMsg implements msgp.Marshaler +func (z *ReplicationStats) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) // check for omitted fields zb0001Len := uint32(28) var zb0001Mask uint32 /* 28 bits */ @@ -28275,975 +29873,1451 @@ func (z *ReplicationStats) EncodeMsg(en *msgp.Writer) (err error) { zb0001Len-- zb0001Mask |= 0x8000000 } - // variable map header, size zb0001Len - err = en.WriteMapHeader(zb0001Len) + // variable map header, size zb0001Len + o = msgp.AppendMapHeader(o, zb0001Len) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "nodes" + o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + o = msgp.AppendInt(o, z.Nodes) + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "startTime" + o = append(o, 0xa9, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65) + if z.StartTime == nil { + o = msgp.AppendNil(o) + } else { + o = msgp.AppendTime(o, *z.StartTime) + } + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "endTime" + o = append(o, 0xa7, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65) + if z.EndTime == nil { + o = msgp.AppendNil(o) + } else { + o = msgp.AppendTime(o, *z.EndTime) + } + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // string "wallTimeSecs" + o = append(o, 0xac, 0x77, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) + o = msgp.AppendFloat64(o, z.WallTimeSecs) + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "events" + o = append(o, 0xa6, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73) + o = msgp.AppendInt64(o, z.Events) + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "bytes" + o = append(o, 0xa5, 0x62, 0x79, 0x74, 0x65, 0x73) + o = msgp.AppendInt64(o, z.Bytes) + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // string "timeSecs" + o = append(o, 0xa8, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) + o = msgp.AppendFloat64(o, z.EventTimeSecs) + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // string "latency" + o = append(o, 0xa7, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) + o = msgp.AppendFloat64(o, z.LatencySecs) + } + if (zb0001Mask & 0x100) == 0 { // if not omitted + // string "maxLatency" + o = append(o, 0xaa, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) + o = msgp.AppendFloat64(o, z.MaxLatencySecs) + } + if (zb0001Mask & 0x200) == 0 { // if not omitted + // string "put" + o = append(o, 0xa3, 0x70, 0x75, 0x74) + o = msgp.AppendInt64(o, z.PutObject) + } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // string "updateMeta" + o = append(o, 0xaa, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61) + o = msgp.AppendInt64(o, z.UpdateMeta) + } + if (zb0001Mask & 0x800) == 0 { // if not omitted + // string "del" + o = append(o, 0xa3, 0x64, 0x65, 0x6c) + o = msgp.AppendInt64(o, z.DelObject) + } + if (zb0001Mask & 0x1000) == 0 { // if not omitted + // string "delTag" + o = append(o, 0xa6, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67) + o = msgp.AppendInt64(o, z.DelTag) + } + if (zb0001Mask & 0x2000) == 0 { // if not omitted + // string "putErrs" + o = append(o, 0xa7, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x73) + o = msgp.AppendInt64(o, z.PutErrors) + } + if (zb0001Mask & 0x4000) == 0 { // if not omitted + // string "putTagErrs" + o = append(o, 0xaa, 0x70, 0x75, 0x74, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + o = msgp.AppendInt64(o, z.UpdateMetaErrors) + } + if (zb0001Mask & 0x8000) == 0 { // if not omitted + // string "delErrs" + o = append(o, 0xa7, 0x64, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x73) + o = msgp.AppendInt64(o, z.DelErrors) + } + if (zb0001Mask & 0x10000) == 0 { // if not omitted + // string "delTagErrs" + o = append(o, 0xaa, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + o = msgp.AppendInt64(o, z.DelTagErrors) + } + if (zb0001Mask & 0x20000) == 0 { // if not omitted + // string "synced" + o = append(o, 0xa6, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64) + o = msgp.AppendInt64(o, z.Synced) + } + if (zb0001Mask & 0x40000) == 0 { // if not omitted + // string "alreadyOK" + o = append(o, 0xa9, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4f, 0x4b) + o = msgp.AppendInt64(o, z.AlreadyOK) + } + if (zb0001Mask & 0x80000) == 0 { // if not omitted + // string "rejected" + o = append(o, 0xa8, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendInt64(o, z.Rejected) + } + if (zb0001Mask & 0x100000) == 0 { // if not omitted + // string "proxy" + o = append(o, 0xa5, 0x70, 0x72, 0x6f, 0x78, 0x79) + o = msgp.AppendInt64(o, z.ProxyEvents) + } + if (zb0001Mask & 0x200000) == 0 { // if not omitted + // string "proxyBytes" + o = append(o, 0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73) + o = msgp.AppendInt64(o, z.ProxyBytes) + } + if (zb0001Mask & 0x400000) == 0 { // if not omitted + // string "proxyHead" + o = append(o, 0xa9, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64) + o = msgp.AppendInt64(o, z.ProxyHead) + } + if (zb0001Mask & 0x800000) == 0 { // if not omitted + // string "proxyGet" + o = append(o, 0xa8, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74) + o = msgp.AppendInt64(o, z.ProxyGet) + } + if (zb0001Mask & 0x1000000) == 0 { // if not omitted + // string "proxyGetTag" + o = append(o, 0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67) + o = msgp.AppendInt64(o, z.ProxyGetTag) + } + if (zb0001Mask & 0x2000000) == 0 { // if not omitted + // string "proxyHeadOK" + o = append(o, 0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x4b) + o = msgp.AppendInt64(o, z.ProxyHeadOK) + } + if (zb0001Mask & 0x4000000) == 0 { // if not omitted + // string "proxyGetOK" + o = append(o, 0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4f, 0x4b) + o = msgp.AppendInt64(o, z.ProxyGetOK) + } + if (zb0001Mask & 0x8000000) == 0 { // if not omitted + // string "proxyGetTagOK" + o = append(o, 0xad, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x4b) + o = msgp.AppendInt64(o, z.ProxyGetTagOK) + } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *ReplicationStats) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { + err = msgp.WrapError(err) return } - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "nodes" - err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.Nodes) - if err != nil { - err = msgp.WrapError(err, "Nodes") - return - } + var zb0001Mask uint32 /* 28 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "startTime" - err = en.Append(0xa9, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65) + switch msgp.UnsafeString(field) { + case "nodes": + z.Nodes, bts, err = msgp.ReadIntBytes(bts) if err != nil { + err = msgp.WrapError(err, "Nodes") return } - if z.StartTime == nil { - err = en.WriteNil() + zb0001Mask |= 0x1 + case "startTime": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) if err != nil { return } + z.StartTime = nil } else { - err = en.WriteTime(*z.StartTime) + if z.StartTime == nil { + z.StartTime = new(time.Time) + } + *z.StartTime, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { err = msgp.WrapError(err, "StartTime") return } } - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "endTime" - err = en.Append(0xa7, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65) - if err != nil { - return - } - if z.EndTime == nil { - err = en.WriteNil() + zb0001Mask |= 0x2 + case "endTime": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) if err != nil { return } + z.EndTime = nil } else { - err = en.WriteTime(*z.EndTime) + if z.EndTime == nil { + z.EndTime = new(time.Time) + } + *z.EndTime, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { err = msgp.WrapError(err, "EndTime") return } } - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "wallTimeSecs" - err = en.Append(0xac, 0x77, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) - if err != nil { - return - } - err = en.WriteFloat64(z.WallTimeSecs) + zb0001Mask |= 0x4 + case "wallTimeSecs": + z.WallTimeSecs, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { err = msgp.WrapError(err, "WallTimeSecs") return } - } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "events" - err = en.Append(0xa6, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.Events) + zb0001Mask |= 0x8 + case "events": + z.Events, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { err = msgp.WrapError(err, "Events") return } - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "bytes" - err = en.Append(0xa5, 0x62, 0x79, 0x74, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.Bytes) + zb0001Mask |= 0x10 + case "bytes": + z.Bytes, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { err = msgp.WrapError(err, "Bytes") return } - } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "timeSecs" - err = en.Append(0xa8, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) - if err != nil { - return - } - err = en.WriteFloat64(z.EventTimeSecs) + zb0001Mask |= 0x20 + case "timeSecs": + z.EventTimeSecs, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { err = msgp.WrapError(err, "EventTimeSecs") return } - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "latency" - err = en.Append(0xa7, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) - if err != nil { - return - } - err = en.WriteFloat64(z.LatencySecs) - if err != nil { - err = msgp.WrapError(err, "LatencySecs") - return - } - } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "maxLatency" - err = en.Append(0xaa, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) - if err != nil { - return - } - err = en.WriteFloat64(z.MaxLatencySecs) - if err != nil { - err = msgp.WrapError(err, "MaxLatencySecs") - return - } - } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "put" - err = en.Append(0xa3, 0x70, 0x75, 0x74) - if err != nil { - return - } - err = en.WriteInt64(z.PutObject) - if err != nil { - err = msgp.WrapError(err, "PutObject") - return - } - } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // write "updateMeta" - err = en.Append(0xaa, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61) - if err != nil { - return - } - err = en.WriteInt64(z.UpdateMeta) - if err != nil { - err = msgp.WrapError(err, "UpdateMeta") - return - } - } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // write "del" - err = en.Append(0xa3, 0x64, 0x65, 0x6c) - if err != nil { - return - } - err = en.WriteInt64(z.DelObject) - if err != nil { - err = msgp.WrapError(err, "DelObject") - return - } - } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // write "delTag" - err = en.Append(0xa6, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67) - if err != nil { - return - } - err = en.WriteInt64(z.DelTag) - if err != nil { - err = msgp.WrapError(err, "DelTag") - return - } - } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // write "putErrs" - err = en.Append(0xa7, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x73) - if err != nil { - return - } - err = en.WriteInt64(z.PutErrors) + zb0001Mask |= 0x40 + case "latency": + z.LatencySecs, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "PutErrors") + err = msgp.WrapError(err, "LatencySecs") return } - } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // write "putTagErrs" - err = en.Append(0xaa, 0x70, 0x75, 0x74, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + zb0001Mask |= 0x80 + case "maxLatency": + z.MaxLatencySecs, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "MaxLatencySecs") return } - err = en.WriteInt64(z.UpdateMetaErrors) + zb0001Mask |= 0x100 + case "put": + z.PutObject, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "UpdateMetaErrors") + err = msgp.WrapError(err, "PutObject") return } - } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // write "delErrs" - err = en.Append(0xa7, 0x64, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x73) + zb0001Mask |= 0x200 + case "updateMeta": + z.UpdateMeta, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "UpdateMeta") return } - err = en.WriteInt64(z.DelErrors) + zb0001Mask |= 0x400 + case "del": + z.DelObject, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "DelErrors") + err = msgp.WrapError(err, "DelObject") return } - } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // write "delTagErrs" - err = en.Append(0xaa, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) + zb0001Mask |= 0x800 + case "delTag": + z.DelTag, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "DelTag") return } - err = en.WriteInt64(z.DelTagErrors) + zb0001Mask |= 0x1000 + case "putErrs": + z.PutErrors, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "DelTagErrors") + err = msgp.WrapError(err, "PutErrors") return } - } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // write "synced" - err = en.Append(0xa6, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64) + zb0001Mask |= 0x2000 + case "putTagErrs": + z.UpdateMetaErrors, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "UpdateMetaErrors") return } - err = en.WriteInt64(z.Synced) + zb0001Mask |= 0x4000 + case "delErrs": + z.DelErrors, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "Synced") + err = msgp.WrapError(err, "DelErrors") return } - } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // write "alreadyOK" - err = en.Append(0xa9, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4f, 0x4b) + zb0001Mask |= 0x8000 + case "delTagErrs": + z.DelTagErrors, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "DelTagErrors") return } - err = en.WriteInt64(z.AlreadyOK) + zb0001Mask |= 0x10000 + case "synced": + z.Synced, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "AlreadyOK") + err = msgp.WrapError(err, "Synced") return } - } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // write "rejected" - err = en.Append(0xa8, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64) + zb0001Mask |= 0x20000 + case "alreadyOK": + z.AlreadyOK, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "AlreadyOK") return } - err = en.WriteInt64(z.Rejected) + zb0001Mask |= 0x40000 + case "rejected": + z.Rejected, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { err = msgp.WrapError(err, "Rejected") return } - } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // write "proxy" - err = en.Append(0xa5, 0x70, 0x72, 0x6f, 0x78, 0x79) - if err != nil { - return - } - err = en.WriteInt64(z.ProxyEvents) + zb0001Mask |= 0x80000 + case "proxy": + z.ProxyEvents, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { err = msgp.WrapError(err, "ProxyEvents") return } - } - if (zb0001Mask & 0x200000) == 0 { // if not omitted - // write "proxyBytes" - err = en.Append(0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73) + zb0001Mask |= 0x100000 + case "proxyBytes": + z.ProxyBytes, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "ProxyBytes") return } - err = en.WriteInt64(z.ProxyBytes) + zb0001Mask |= 0x200000 + case "proxyHead": + z.ProxyHead, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyBytes") + err = msgp.WrapError(err, "ProxyHead") return } - } - if (zb0001Mask & 0x400000) == 0 { // if not omitted - // write "proxyHead" - err = en.Append(0xa9, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64) + zb0001Mask |= 0x400000 + case "proxyGet": + z.ProxyGet, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "ProxyGet") return } - err = en.WriteInt64(z.ProxyHead) + zb0001Mask |= 0x800000 + case "proxyGetTag": + z.ProxyGetTag, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyHead") + err = msgp.WrapError(err, "ProxyGetTag") return } - } - if (zb0001Mask & 0x800000) == 0 { // if not omitted - // write "proxyGet" - err = en.Append(0xa8, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74) + zb0001Mask |= 0x1000000 + case "proxyHeadOK": + z.ProxyHeadOK, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "ProxyHeadOK") return } - err = en.WriteInt64(z.ProxyGet) + zb0001Mask |= 0x2000000 + case "proxyGetOK": + z.ProxyGetOK, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyGet") + err = msgp.WrapError(err, "ProxyGetOK") return } - } - if (zb0001Mask & 0x1000000) == 0 { // if not omitted - // write "proxyGetTag" - err = en.Append(0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67) + zb0001Mask |= 0x4000000 + case "proxyGetTagOK": + z.ProxyGetTagOK, bts, err = msgp.ReadInt64Bytes(bts) if err != nil { + err = msgp.WrapError(err, "ProxyGetTagOK") return } - err = en.WriteInt64(z.ProxyGetTag) + zb0001Mask |= 0x8000000 + default: + bts, err = msgp.Skip(bts) if err != nil { - err = msgp.WrapError(err, "ProxyGetTag") + err = msgp.WrapError(err) return } } - if (zb0001Mask & 0x2000000) == 0 { // if not omitted - // write "proxyHeadOK" - err = en.Append(0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x4b) + } + // Clear omitted fields. + if zb0001Mask != 0xfffffff { + if (zb0001Mask & 0x1) == 0 { + z.Nodes = 0 + } + if (zb0001Mask & 0x2) == 0 { + z.StartTime = nil + } + if (zb0001Mask & 0x4) == 0 { + z.EndTime = nil + } + if (zb0001Mask & 0x8) == 0 { + z.WallTimeSecs = 0 + } + if (zb0001Mask & 0x10) == 0 { + z.Events = 0 + } + if (zb0001Mask & 0x20) == 0 { + z.Bytes = 0 + } + if (zb0001Mask & 0x40) == 0 { + z.EventTimeSecs = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.LatencySecs = 0 + } + if (zb0001Mask & 0x100) == 0 { + z.MaxLatencySecs = 0 + } + if (zb0001Mask & 0x200) == 0 { + z.PutObject = 0 + } + if (zb0001Mask & 0x400) == 0 { + z.UpdateMeta = 0 + } + if (zb0001Mask & 0x800) == 0 { + z.DelObject = 0 + } + if (zb0001Mask & 0x1000) == 0 { + z.DelTag = 0 + } + if (zb0001Mask & 0x2000) == 0 { + z.PutErrors = 0 + } + if (zb0001Mask & 0x4000) == 0 { + z.UpdateMetaErrors = 0 + } + if (zb0001Mask & 0x8000) == 0 { + z.DelErrors = 0 + } + if (zb0001Mask & 0x10000) == 0 { + z.DelTagErrors = 0 + } + if (zb0001Mask & 0x20000) == 0 { + z.Synced = 0 + } + if (zb0001Mask & 0x40000) == 0 { + z.AlreadyOK = 0 + } + if (zb0001Mask & 0x80000) == 0 { + z.Rejected = 0 + } + if (zb0001Mask & 0x100000) == 0 { + z.ProxyEvents = 0 + } + if (zb0001Mask & 0x200000) == 0 { + z.ProxyBytes = 0 + } + if (zb0001Mask & 0x400000) == 0 { + z.ProxyHead = 0 + } + if (zb0001Mask & 0x800000) == 0 { + z.ProxyGet = 0 + } + if (zb0001Mask & 0x1000000) == 0 { + z.ProxyGetTag = 0 + } + if (zb0001Mask & 0x2000000) == 0 { + z.ProxyHeadOK = 0 + } + if (zb0001Mask & 0x4000000) == 0 { + z.ProxyGetOK = 0 + } + if (zb0001Mask & 0x8000000) == 0 { + z.ProxyGetTagOK = 0 + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *ReplicationStats) Msgsize() (s int) { + s = 3 + 6 + msgp.IntSize + 10 + if z.StartTime == nil { + s += msgp.NilSize + } else { + s += msgp.TimeSize + } + s += 8 + if z.EndTime == nil { + s += msgp.NilSize + } else { + s += msgp.TimeSize + } + s += 13 + msgp.Float64Size + 7 + msgp.Int64Size + 6 + msgp.Int64Size + 9 + msgp.Float64Size + 8 + msgp.Float64Size + 11 + msgp.Float64Size + 4 + msgp.Int64Size + 11 + msgp.Int64Size + 4 + msgp.Int64Size + 7 + msgp.Int64Size + 8 + msgp.Int64Size + 11 + msgp.Int64Size + 8 + msgp.Int64Size + 11 + msgp.Int64Size + 7 + msgp.Int64Size + 10 + msgp.Int64Size + 9 + msgp.Int64Size + 6 + msgp.Int64Size + 11 + msgp.Int64Size + 10 + msgp.Int64Size + 9 + msgp.Int64Size + 12 + msgp.Int64Size + 12 + msgp.Int64Size + 11 + msgp.Int64Size + 14 + msgp.Int64Size + return +} + +// DecodeMsg implements msgp.Decodable +func (z *ReplicationTargetStats) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "nodes": + z.Nodes, err = dc.ReadInt() if err != nil { + err = msgp.WrapError(err, "Nodes") return } - err = en.WriteInt64(z.ProxyHeadOK) + case "last_minute": + err = z.LastMinute.DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "ProxyHeadOK") + err = msgp.WrapError(err, "LastMinute") return } - } - if (zb0001Mask & 0x4000000) == 0 { // if not omitted - // write "proxyGetOK" - err = en.Append(0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4f, 0x4b) + zb0001Mask |= 0x1 + case "last_hour": + err = z.LastHour.DecodeMsg(dc) if err != nil { + err = msgp.WrapError(err, "LastHour") return } - err = en.WriteInt64(z.ProxyGetOK) - if err != nil { - err = msgp.WrapError(err, "ProxyGetOK") - return + zb0001Mask |= 0x2 + case "last_day": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedReplicationStats) + } + err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } - } - if (zb0001Mask & 0x8000000) == 0 { // if not omitted - // write "proxyGetTagOK" - err = en.Append(0xad, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x4b) + zb0001Mask |= 0x4 + case "since_start": + err = z.SinceStart.DecodeMsg(dc) if err != nil { + err = msgp.WrapError(err, "SinceStart") return } - err = en.WriteInt64(z.ProxyGetTagOK) + default: + err = dc.Skip() if err != nil { - err = msgp.WrapError(err, "ProxyGetTagOK") + err = msgp.WrapError(err) return } } } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *ReplicationStats) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // check for omitted fields - zb0001Len := uint32(28) - var zb0001Mask uint32 /* 28 bits */ - _ = zb0001Mask - if z.Nodes == 0 { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.StartTime == nil { - zb0001Len-- - zb0001Mask |= 0x2 - } - if z.EndTime == nil { - zb0001Len-- - zb0001Mask |= 0x4 - } - if z.WallTimeSecs == 0 { - zb0001Len-- - zb0001Mask |= 0x8 - } - if z.Events == 0 { - zb0001Len-- - zb0001Mask |= 0x10 - } - if z.Bytes == 0 { - zb0001Len-- - zb0001Mask |= 0x20 - } - if z.EventTimeSecs == 0 { - zb0001Len-- - zb0001Mask |= 0x40 - } - if z.LatencySecs == 0 { - zb0001Len-- - zb0001Mask |= 0x80 - } - if z.MaxLatencySecs == 0 { - zb0001Len-- - zb0001Mask |= 0x100 - } - if z.PutObject == 0 { - zb0001Len-- - zb0001Mask |= 0x200 - } - if z.UpdateMeta == 0 { - zb0001Len-- - zb0001Mask |= 0x400 - } - if z.DelObject == 0 { - zb0001Len-- - zb0001Mask |= 0x800 - } - if z.DelTag == 0 { - zb0001Len-- - zb0001Mask |= 0x1000 - } - if z.PutErrors == 0 { - zb0001Len-- - zb0001Mask |= 0x2000 - } - if z.UpdateMetaErrors == 0 { - zb0001Len-- - zb0001Mask |= 0x4000 - } - if z.DelErrors == 0 { - zb0001Len-- - zb0001Mask |= 0x8000 - } - if z.DelTagErrors == 0 { - zb0001Len-- - zb0001Mask |= 0x10000 - } - if z.Synced == 0 { - zb0001Len-- - zb0001Mask |= 0x20000 - } - if z.AlreadyOK == 0 { - zb0001Len-- - zb0001Mask |= 0x40000 - } - if z.Rejected == 0 { - zb0001Len-- - zb0001Mask |= 0x80000 - } - if z.ProxyEvents == 0 { - zb0001Len-- - zb0001Mask |= 0x100000 - } - if z.ProxyBytes == 0 { - zb0001Len-- - zb0001Mask |= 0x200000 - } - if z.ProxyHead == 0 { - zb0001Len-- - zb0001Mask |= 0x400000 - } - if z.ProxyGet == 0 { - zb0001Len-- - zb0001Mask |= 0x800000 - } - if z.ProxyGetTag == 0 { - zb0001Len-- - zb0001Mask |= 0x1000000 - } - if z.ProxyHeadOK == 0 { - zb0001Len-- - zb0001Mask |= 0x2000000 - } - if z.ProxyGetOK == 0 { - zb0001Len-- - zb0001Mask |= 0x4000000 - } - if z.ProxyGetTagOK == 0 { - zb0001Len-- - zb0001Mask |= 0x8000000 - } - // variable map header, size zb0001Len - o = msgp.AppendMapHeader(o, zb0001Len) - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "nodes" - o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - o = msgp.AppendInt(o, z.Nodes) - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "startTime" - o = append(o, 0xa9, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65) - if z.StartTime == nil { - o = msgp.AppendNil(o) - } else { - o = msgp.AppendTime(o, *z.StartTime) - } - } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "endTime" - o = append(o, 0xa7, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65) - if z.EndTime == nil { - o = msgp.AppendNil(o) - } else { - o = msgp.AppendTime(o, *z.EndTime) - } - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "wallTimeSecs" - o = append(o, 0xac, 0x77, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) - o = msgp.AppendFloat64(o, z.WallTimeSecs) - } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "events" - o = append(o, 0xa6, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73) - o = msgp.AppendInt64(o, z.Events) - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "bytes" - o = append(o, 0xa5, 0x62, 0x79, 0x74, 0x65, 0x73) - o = msgp.AppendInt64(o, z.Bytes) - } - if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "timeSecs" - o = append(o, 0xa8, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x73) - o = msgp.AppendFloat64(o, z.EventTimeSecs) - } - if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "latency" - o = append(o, 0xa7, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) - o = msgp.AppendFloat64(o, z.LatencySecs) + // Clear omitted fields. + if zb0001Mask != 0x7 { + if (zb0001Mask & 0x1) == 0 { + z.LastMinute = ReplicationStats{} } - if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "maxLatency" - o = append(o, 0xaa, 0x6d, 0x61, 0x78, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79) - o = msgp.AppendFloat64(o, z.MaxLatencySecs) + if (zb0001Mask & 0x2) == 0 { + z.LastHour = ReplicationStats{} } - if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "put" - o = append(o, 0xa3, 0x70, 0x75, 0x74) - o = msgp.AppendInt64(o, z.PutObject) + if (zb0001Mask & 0x4) == 0 { + z.LastDay = nil } - if (zb0001Mask & 0x400) == 0 { // if not omitted - // string "updateMeta" - o = append(o, 0xaa, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61) - o = msgp.AppendInt64(o, z.UpdateMeta) + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *ReplicationTargetStats) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(5) + var zb0001Mask uint8 /* 5 bits */ + _ = zb0001Mask + if z.LastDay == nil { + zb0001Len-- + zb0001Mask |= 0x8 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // write "nodes" + err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + if err != nil { + return } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // string "del" - o = append(o, 0xa3, 0x64, 0x65, 0x6c) - o = msgp.AppendInt64(o, z.DelObject) + err = en.WriteInt(z.Nodes) + if err != nil { + err = msgp.WrapError(err, "Nodes") + return } - if (zb0001Mask & 0x1000) == 0 { // if not omitted - // string "delTag" - o = append(o, 0xa6, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67) - o = msgp.AppendInt64(o, z.DelTag) + // write "last_minute" + err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + if err != nil { + return } - if (zb0001Mask & 0x2000) == 0 { // if not omitted - // string "putErrs" - o = append(o, 0xa7, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x73) - o = msgp.AppendInt64(o, z.PutErrors) + err = z.LastMinute.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return } - if (zb0001Mask & 0x4000) == 0 { // if not omitted - // string "putTagErrs" - o = append(o, 0xaa, 0x70, 0x75, 0x74, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) - o = msgp.AppendInt64(o, z.UpdateMetaErrors) + // write "last_hour" + err = en.Append(0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) + if err != nil { + return } - if (zb0001Mask & 0x8000) == 0 { // if not omitted - // string "delErrs" - o = append(o, 0xa7, 0x64, 0x65, 0x6c, 0x45, 0x72, 0x72, 0x73) - o = msgp.AppendInt64(o, z.DelErrors) + err = z.LastHour.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return } - if (zb0001Mask & 0x10000) == 0 { // if not omitted - // string "delTagErrs" - o = append(o, 0xaa, 0x64, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x45, 0x72, 0x72, 0x73) - o = msgp.AppendInt64(o, z.DelTagErrors) + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "last_day" + err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + if err != nil { + return + } + if z.LastDay == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } } - if (zb0001Mask & 0x20000) == 0 { // if not omitted - // string "synced" - o = append(o, 0xa6, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64) - o = msgp.AppendInt64(o, z.Synced) + // write "since_start" + err = en.Append(0xab, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74) + if err != nil { + return } - if (zb0001Mask & 0x40000) == 0 { // if not omitted - // string "alreadyOK" - o = append(o, 0xa9, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4f, 0x4b) - o = msgp.AppendInt64(o, z.AlreadyOK) + err = z.SinceStart.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "SinceStart") + return } - if (zb0001Mask & 0x80000) == 0 { // if not omitted - // string "rejected" - o = append(o, 0xa8, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendInt64(o, z.Rejected) + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *ReplicationTargetStats) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(5) + var zb0001Mask uint8 /* 5 bits */ + _ = zb0001Mask + if z.LastDay == nil { + zb0001Len-- + zb0001Mask |= 0x8 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + // string "nodes" + o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) + o = msgp.AppendInt(o, z.Nodes) + // string "last_minute" + o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + o, err = z.LastMinute.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return } - if (zb0001Mask & 0x100000) == 0 { // if not omitted - // string "proxy" - o = append(o, 0xa5, 0x70, 0x72, 0x6f, 0x78, 0x79) - o = msgp.AppendInt64(o, z.ProxyEvents) + // string "last_hour" + o = append(o, 0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) + o, err = z.LastHour.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return } - if (zb0001Mask & 0x200000) == 0 { // if not omitted - // string "proxyBytes" - o = append(o, 0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73) - o = msgp.AppendInt64(o, z.ProxyBytes) + if (zb0001Mask & 0x8) == 0 { // if not omitted + // string "last_day" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + if z.LastDay == nil { + o = msgp.AppendNil(o) + } else { + o, err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } } - if (zb0001Mask & 0x400000) == 0 { // if not omitted - // string "proxyHead" - o = append(o, 0xa9, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64) - o = msgp.AppendInt64(o, z.ProxyHead) + // string "since_start" + o = append(o, 0xab, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74) + o, err = z.SinceStart.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "SinceStart") + return } - if (zb0001Mask & 0x800000) == 0 { // if not omitted - // string "proxyGet" - o = append(o, 0xa8, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74) - o = msgp.AppendInt64(o, z.ProxyGet) + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 3 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return } - if (zb0001Mask & 0x1000000) == 0 { // if not omitted - // string "proxyGetTag" - o = append(o, 0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67) - o = msgp.AppendInt64(o, z.ProxyGetTag) + switch msgp.UnsafeString(field) { + case "nodes": + z.Nodes, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Nodes") + return + } + case "last_minute": + bts, err = z.LastMinute.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } + zb0001Mask |= 0x1 + case "last_hour": + bts, err = z.LastHour.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + zb0001Mask |= 0x2 + case "last_day": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedReplicationStats) + } + bts, err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } + zb0001Mask |= 0x4 + case "since_start": + bts, err = z.SinceStart.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "SinceStart") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } } - if (zb0001Mask & 0x2000000) == 0 { // if not omitted - // string "proxyHeadOK" - o = append(o, 0xab, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x4b) - o = msgp.AppendInt64(o, z.ProxyHeadOK) + } + // Clear omitted fields. + if zb0001Mask != 0x7 { + if (zb0001Mask & 0x1) == 0 { + z.LastMinute = ReplicationStats{} } - if (zb0001Mask & 0x4000000) == 0 { // if not omitted - // string "proxyGetOK" - o = append(o, 0xaa, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x4f, 0x4b) - o = msgp.AppendInt64(o, z.ProxyGetOK) + if (zb0001Mask & 0x2) == 0 { + z.LastHour = ReplicationStats{} } - if (zb0001Mask & 0x8000000) == 0 { // if not omitted - // string "proxyGetTagOK" - o = append(o, 0xad, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x4b) - o = msgp.AppendInt64(o, z.ProxyGetTagOK) + if (zb0001Mask & 0x4) == 0 { + z.LastDay = nil } } + o = bts return } -// UnmarshalMsg implements msgp.Unmarshaler -func (z *ReplicationStats) UnmarshalMsg(bts []byte) (o []byte, err error) { +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *ReplicationTargetStats) Msgsize() (s int) { + s = 1 + 6 + msgp.IntSize + 12 + z.LastMinute.Msgsize() + 10 + z.LastHour.Msgsize() + 9 + if z.LastDay == nil { + s += msgp.NilSize + } else { + s += (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).Msgsize() + } + s += 12 + z.SinceStart.Msgsize() + return +} + +// DecodeMsg implements msgp.Decodable +func (z *RuntimeMetrics) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001, err = dc.ReadMapHeader() if err != nil { err = msgp.WrapError(err) return } - var zb0001Mask uint32 /* 28 bits */ + var zb0001Mask uint8 /* 5 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) + field, err = dc.ReadMapKeyPtr() if err != nil { err = msgp.WrapError(err) return } switch msgp.UnsafeString(field) { - case "nodes": - z.Nodes, bts, err = msgp.ReadIntBytes(bts) + case "uintMetrics": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Nodes") + err = msgp.WrapError(err, "UintMetrics") return } + if z.UintMetrics == nil { + z.UintMetrics = make(map[string]uint64, zb0002) + } else if len(z.UintMetrics) > 0 { + clear(z.UintMetrics) + } + for zb0002 > 0 { + zb0002-- + var za0001 string + za0001, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + var za0002 uint64 + za0002, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "UintMetrics", za0001) + return + } + z.UintMetrics[za0001] = za0002 + } zb0001Mask |= 0x1 - case "startTime": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) + case "floatMetrics": + var zb0003 uint32 + zb0003, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "FloatMetrics") + return + } + if z.FloatMetrics == nil { + z.FloatMetrics = make(map[string]float64, zb0003) + } else if len(z.FloatMetrics) > 0 { + clear(z.FloatMetrics) + } + for zb0003 > 0 { + zb0003-- + var za0003 string + za0003, err = dc.ReadString() if err != nil { + err = msgp.WrapError(err, "FloatMetrics") return } - z.StartTime = nil + var za0004 float64 + za0004, err = dc.ReadFloat64() + if err != nil { + err = msgp.WrapError(err, "FloatMetrics", za0003) + return + } + z.FloatMetrics[za0003] = za0004 + } + zb0001Mask |= 0x2 + case "histMetrics": + var zb0004 uint32 + zb0004, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "HistMetrics") + return + } + if z.HistMetrics == nil { + z.HistMetrics = make(map[string]metrics.Float64Histogram, zb0004) + } else if len(z.HistMetrics) > 0 { + clear(z.HistMetrics) + } + for zb0004 > 0 { + zb0004-- + var za0005 string + za0005, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "HistMetrics") + return + } + var za0006 metrics.Float64Histogram + err = (*localF64H)(&za0006).DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "HistMetrics", za0005) + return + } + z.HistMetrics[za0005] = za0006 + } + zb0001Mask |= 0x4 + case "n": + z.N, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "N") + return + } + case "lastDay": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + z.LastDay = nil } else { - if z.StartTime == nil { - z.StartTime = new(time.Time) + if z.LastDay == nil { + z.LastDay = new(SegmentedRuntimeMetrics) } - *z.StartTime, bts, err = msgp.ReadTimeUTCBytes(bts) + err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "StartTime") + err = msgp.WrapError(err, "LastDay") + return + } + } + zb0001Mask |= 0x8 + case "lastHour": + if dc.IsNil() { + err = dc.ReadNil() + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + z.LastHour = nil + } else { + if z.LastHour == nil { + z.LastHour = new(SegmentedRuntimeMetrics) + } + err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastHour") return } } - zb0001Mask |= 0x2 - case "endTime": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) + zb0001Mask |= 0x10 + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + // Clear omitted fields. + if zb0001Mask != 0x1f { + if (zb0001Mask & 0x1) == 0 { + z.UintMetrics = nil + } + if (zb0001Mask & 0x2) == 0 { + z.FloatMetrics = nil + } + if (zb0001Mask & 0x4) == 0 { + z.HistMetrics = nil + } + if (zb0001Mask & 0x8) == 0 { + z.LastDay = nil + } + if (zb0001Mask & 0x10) == 0 { + z.LastHour = nil + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z *RuntimeMetrics) EncodeMsg(en *msgp.Writer) (err error) { + // check for omitted fields + zb0001Len := uint32(6) + var zb0001Mask uint8 /* 6 bits */ + _ = zb0001Mask + if z.UintMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.FloatMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.HistMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.LastDay == nil { + zb0001Len-- + zb0001Mask |= 0x10 + } + if z.LastHour == nil { + zb0001Len-- + zb0001Mask |= 0x20 + } + // variable map header, size zb0001Len + err = en.Append(0x80 | uint8(zb0001Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "uintMetrics" + err = en.Append(0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.UintMetrics))) + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + for za0001, za0002 := range z.UintMetrics { + err = en.WriteString(za0001) if err != nil { + err = msgp.WrapError(err, "UintMetrics") return } - z.EndTime = nil - } else { - if z.EndTime == nil { - z.EndTime = new(time.Time) - } - *z.EndTime, bts, err = msgp.ReadTimeUTCBytes(bts) + err = en.WriteUint64(za0002) if err != nil { - err = msgp.WrapError(err, "EndTime") + err = msgp.WrapError(err, "UintMetrics", za0001) return } } - zb0001Mask |= 0x4 - case "wallTimeSecs": - z.WallTimeSecs, bts, err = msgp.ReadFloat64Bytes(bts) + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "floatMetrics" + err = en.Append(0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) if err != nil { - err = msgp.WrapError(err, "WallTimeSecs") return } - zb0001Mask |= 0x8 - case "events": - z.Events, bts, err = msgp.ReadInt64Bytes(bts) + err = en.WriteMapHeader(uint32(len(z.FloatMetrics))) if err != nil { - err = msgp.WrapError(err, "Events") + err = msgp.WrapError(err, "FloatMetrics") return } - zb0001Mask |= 0x10 - case "bytes": - z.Bytes, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "Bytes") - return + for za0003, za0004 := range z.FloatMetrics { + err = en.WriteString(za0003) + if err != nil { + err = msgp.WrapError(err, "FloatMetrics") + return + } + err = en.WriteFloat64(za0004) + if err != nil { + err = msgp.WrapError(err, "FloatMetrics", za0003) + return + } } - zb0001Mask |= 0x20 - case "timeSecs": - z.EventTimeSecs, bts, err = msgp.ReadFloat64Bytes(bts) + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "histMetrics" + err = en.Append(0xab, 0x68, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) if err != nil { - err = msgp.WrapError(err, "EventTimeSecs") return } - zb0001Mask |= 0x40 - case "latency": - z.LatencySecs, bts, err = msgp.ReadFloat64Bytes(bts) + err = en.WriteMapHeader(uint32(len(z.HistMetrics))) if err != nil { - err = msgp.WrapError(err, "LatencySecs") + err = msgp.WrapError(err, "HistMetrics") return } - zb0001Mask |= 0x80 - case "maxLatency": - z.MaxLatencySecs, bts, err = msgp.ReadFloat64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "MaxLatencySecs") - return + for za0005, za0006 := range z.HistMetrics { + err = en.WriteString(za0005) + if err != nil { + err = msgp.WrapError(err, "HistMetrics") + return + } + err = (*localF64H)(&za0006).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "HistMetrics", za0005) + return + } } - zb0001Mask |= 0x100 - case "put": - z.PutObject, bts, err = msgp.ReadInt64Bytes(bts) + } + // write "n" + err = en.Append(0xa1, 0x6e) + if err != nil { + return + } + err = en.WriteInt(z.N) + if err != nil { + err = msgp.WrapError(err, "N") + return + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "lastDay" + err = en.Append(0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) if err != nil { - err = msgp.WrapError(err, "PutObject") return } - zb0001Mask |= 0x200 - case "updateMeta": - z.UpdateMeta, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "UpdateMeta") - return + if z.LastDay == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } - zb0001Mask |= 0x400 - case "del": - z.DelObject, bts, err = msgp.ReadInt64Bytes(bts) + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "lastHour" + err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) if err != nil { - err = msgp.WrapError(err, "DelObject") return } - zb0001Mask |= 0x800 - case "delTag": - z.DelTag, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DelTag") - return + if z.LastHour == nil { + err = en.WriteNil() + if err != nil { + return + } + } else { + err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } } - zb0001Mask |= 0x1000 - case "putErrs": - z.PutErrors, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "PutErrors") - return + } + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z *RuntimeMetrics) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // check for omitted fields + zb0001Len := uint32(6) + var zb0001Mask uint8 /* 6 bits */ + _ = zb0001Mask + if z.UintMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x1 + } + if z.FloatMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x2 + } + if z.HistMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x4 + } + if z.LastDay == nil { + zb0001Len-- + zb0001Mask |= 0x10 + } + if z.LastHour == nil { + zb0001Len-- + zb0001Mask |= 0x20 + } + // variable map header, size zb0001Len + o = append(o, 0x80|uint8(zb0001Len)) + + // skip if no fields are to be emitted + if zb0001Len != 0 { + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "uintMetrics" + o = append(o, 0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.UintMetrics))) + for za0001, za0002 := range z.UintMetrics { + o = msgp.AppendString(o, za0001) + o = msgp.AppendUint64(o, za0002) } - zb0001Mask |= 0x2000 - case "putTagErrs": - z.UpdateMetaErrors, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "UpdateMetaErrors") - return + } + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "floatMetrics" + o = append(o, 0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.FloatMetrics))) + for za0003, za0004 := range z.FloatMetrics { + o = msgp.AppendString(o, za0003) + o = msgp.AppendFloat64(o, za0004) } - zb0001Mask |= 0x4000 - case "delErrs": - z.DelErrors, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DelErrors") - return + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // string "histMetrics" + o = append(o, 0xab, 0x68, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.HistMetrics))) + for za0005, za0006 := range z.HistMetrics { + o = msgp.AppendString(o, za0005) + o, err = (*localF64H)(&za0006).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "HistMetrics", za0005) + return + } } - zb0001Mask |= 0x8000 - case "delTagErrs": - z.DelTagErrors, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "DelTagErrors") - return + } + // string "n" + o = append(o, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "lastDay" + o = append(o, 0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) + if z.LastDay == nil { + o = msgp.AppendNil(o) + } else { + o, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } } - zb0001Mask |= 0x10000 - case "synced": - z.Synced, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "Synced") - return + } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "lastHour" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) + if z.LastHour == nil { + o = msgp.AppendNil(o) + } else { + o, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } } - zb0001Mask |= 0x20000 - case "alreadyOK": - z.AlreadyOK, bts, err = msgp.ReadInt64Bytes(bts) + } + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *RuntimeMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + var zb0001Mask uint8 /* 5 bits */ + _ = zb0001Mask + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "uintMetrics": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "AlreadyOK") + err = msgp.WrapError(err, "UintMetrics") return } - zb0001Mask |= 0x40000 - case "rejected": - z.Rejected, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "Rejected") - return + if z.UintMetrics == nil { + z.UintMetrics = make(map[string]uint64, zb0002) + } else if len(z.UintMetrics) > 0 { + clear(z.UintMetrics) } - zb0001Mask |= 0x80000 - case "proxy": - z.ProxyEvents, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ProxyEvents") - return + for zb0002 > 0 { + var za0002 uint64 + zb0002-- + var za0001 string + za0001, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + za0002, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "UintMetrics", za0001) + return + } + z.UintMetrics[za0001] = za0002 } - zb0001Mask |= 0x100000 - case "proxyBytes": - z.ProxyBytes, bts, err = msgp.ReadInt64Bytes(bts) + zb0001Mask |= 0x1 + case "floatMetrics": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyBytes") + err = msgp.WrapError(err, "FloatMetrics") return } - zb0001Mask |= 0x200000 - case "proxyHead": - z.ProxyHead, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ProxyHead") - return + if z.FloatMetrics == nil { + z.FloatMetrics = make(map[string]float64, zb0003) + } else if len(z.FloatMetrics) > 0 { + clear(z.FloatMetrics) } - zb0001Mask |= 0x400000 - case "proxyGet": - z.ProxyGet, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ProxyGet") - return + for zb0003 > 0 { + var za0004 float64 + zb0003-- + var za0003 string + za0003, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "FloatMetrics") + return + } + za0004, bts, err = msgp.ReadFloat64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "FloatMetrics", za0003) + return + } + z.FloatMetrics[za0003] = za0004 } - zb0001Mask |= 0x800000 - case "proxyGetTag": - z.ProxyGetTag, bts, err = msgp.ReadInt64Bytes(bts) + zb0001Mask |= 0x2 + case "histMetrics": + var zb0004 uint32 + zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyGetTag") + err = msgp.WrapError(err, "HistMetrics") return } - zb0001Mask |= 0x1000000 - case "proxyHeadOK": - z.ProxyHeadOK, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ProxyHeadOK") - return + if z.HistMetrics == nil { + z.HistMetrics = make(map[string]metrics.Float64Histogram, zb0004) + } else if len(z.HistMetrics) > 0 { + clear(z.HistMetrics) } - zb0001Mask |= 0x2000000 - case "proxyGetOK": - z.ProxyGetOK, bts, err = msgp.ReadInt64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "ProxyGetOK") - return + for zb0004 > 0 { + var za0006 metrics.Float64Histogram + zb0004-- + var za0005 string + za0005, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "HistMetrics") + return + } + bts, err = (*localF64H)(&za0006).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "HistMetrics", za0005) + return + } + z.HistMetrics[za0005] = za0006 } - zb0001Mask |= 0x4000000 - case "proxyGetTagOK": - z.ProxyGetTagOK, bts, err = msgp.ReadInt64Bytes(bts) + zb0001Mask |= 0x4 + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "ProxyGetTagOK") + err = msgp.WrapError(err, "N") return } - zb0001Mask |= 0x8000000 - default: - bts, err = msgp.Skip(bts) - if err != nil { - err = msgp.WrapError(err) - return + case "lastDay": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastDay = nil + } else { + if z.LastDay == nil { + z.LastDay = new(SegmentedRuntimeMetrics) + } + bts, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + } + zb0001Mask |= 0x8 + case "lastHour": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.LastHour = nil + } else { + if z.LastHour == nil { + z.LastHour = new(SegmentedRuntimeMetrics) + } + bts, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastHour") + return + } + } + zb0001Mask |= 0x10 + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return } } - } - // Clear omitted fields. - if zb0001Mask != 0xfffffff { - if (zb0001Mask & 0x1) == 0 { - z.Nodes = 0 - } - if (zb0001Mask & 0x2) == 0 { - z.StartTime = nil - } - if (zb0001Mask & 0x4) == 0 { - z.EndTime = nil - } - if (zb0001Mask & 0x8) == 0 { - z.WallTimeSecs = 0 - } - if (zb0001Mask & 0x10) == 0 { - z.Events = 0 - } - if (zb0001Mask & 0x20) == 0 { - z.Bytes = 0 - } - if (zb0001Mask & 0x40) == 0 { - z.EventTimeSecs = 0 - } - if (zb0001Mask & 0x80) == 0 { - z.LatencySecs = 0 - } - if (zb0001Mask & 0x100) == 0 { - z.MaxLatencySecs = 0 - } - if (zb0001Mask & 0x200) == 0 { - z.PutObject = 0 - } - if (zb0001Mask & 0x400) == 0 { - z.UpdateMeta = 0 - } - if (zb0001Mask & 0x800) == 0 { - z.DelObject = 0 - } - if (zb0001Mask & 0x1000) == 0 { - z.DelTag = 0 - } - if (zb0001Mask & 0x2000) == 0 { - z.PutErrors = 0 - } - if (zb0001Mask & 0x4000) == 0 { - z.UpdateMetaErrors = 0 - } - if (zb0001Mask & 0x8000) == 0 { - z.DelErrors = 0 - } - if (zb0001Mask & 0x10000) == 0 { - z.DelTagErrors = 0 - } - if (zb0001Mask & 0x20000) == 0 { - z.Synced = 0 - } - if (zb0001Mask & 0x40000) == 0 { - z.AlreadyOK = 0 - } - if (zb0001Mask & 0x80000) == 0 { - z.Rejected = 0 - } - if (zb0001Mask & 0x100000) == 0 { - z.ProxyEvents = 0 - } - if (zb0001Mask & 0x200000) == 0 { - z.ProxyBytes = 0 - } - if (zb0001Mask & 0x400000) == 0 { - z.ProxyHead = 0 - } - if (zb0001Mask & 0x800000) == 0 { - z.ProxyGet = 0 + } + // Clear omitted fields. + if zb0001Mask != 0x1f { + if (zb0001Mask & 0x1) == 0 { + z.UintMetrics = nil } - if (zb0001Mask & 0x1000000) == 0 { - z.ProxyGetTag = 0 + if (zb0001Mask & 0x2) == 0 { + z.FloatMetrics = nil } - if (zb0001Mask & 0x2000000) == 0 { - z.ProxyHeadOK = 0 + if (zb0001Mask & 0x4) == 0 { + z.HistMetrics = nil } - if (zb0001Mask & 0x4000000) == 0 { - z.ProxyGetOK = 0 + if (zb0001Mask & 0x8) == 0 { + z.LastDay = nil } - if (zb0001Mask & 0x8000000) == 0 { - z.ProxyGetTagOK = 0 + if (zb0001Mask & 0x10) == 0 { + z.LastHour = nil } } o = bts @@ -29251,25 +31325,45 @@ func (z *ReplicationStats) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ReplicationStats) Msgsize() (s int) { - s = 3 + 6 + msgp.IntSize + 10 - if z.StartTime == nil { +func (z *RuntimeMetrics) Msgsize() (s int) { + s = 1 + 12 + msgp.MapHeaderSize + if z.UintMetrics != nil { + for za0001, za0002 := range z.UintMetrics { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + msgp.Uint64Size + } + } + s += 13 + msgp.MapHeaderSize + if z.FloatMetrics != nil { + for za0003, za0004 := range z.FloatMetrics { + _ = za0004 + s += msgp.StringPrefixSize + len(za0003) + msgp.Float64Size + } + } + s += 12 + msgp.MapHeaderSize + if z.HistMetrics != nil { + for za0005, za0006 := range z.HistMetrics { + _ = za0006 + s += msgp.StringPrefixSize + len(za0005) + (*localF64H)(&za0006).Msgsize() + } + } + s += 2 + msgp.IntSize + 8 + if z.LastDay == nil { s += msgp.NilSize } else { - s += msgp.TimeSize + s += (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).Msgsize() } - s += 8 - if z.EndTime == nil { + s += 9 + if z.LastHour == nil { s += msgp.NilSize } else { - s += msgp.TimeSize + s += (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).Msgsize() } - s += 13 + msgp.Float64Size + 7 + msgp.Int64Size + 6 + msgp.Int64Size + 9 + msgp.Float64Size + 8 + msgp.Float64Size + 11 + msgp.Float64Size + 4 + msgp.Int64Size + 11 + msgp.Int64Size + 4 + msgp.Int64Size + 7 + msgp.Int64Size + 8 + msgp.Int64Size + 11 + msgp.Int64Size + 8 + msgp.Int64Size + 11 + msgp.Int64Size + 7 + msgp.Int64Size + 10 + msgp.Int64Size + 9 + msgp.Int64Size + 6 + msgp.Int64Size + 11 + msgp.Int64Size + 10 + msgp.Int64Size + 9 + msgp.Int64Size + 12 + msgp.Int64Size + 12 + msgp.Int64Size + 11 + msgp.Int64Size + 14 + msgp.Int64Size return } // DecodeMsg implements msgp.Decodable -func (z *ReplicationTargetStats) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *RuntimeSegment) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -29278,7 +31372,7 @@ func (z *ReplicationTargetStats) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 3 bits */ + var zb0001Mask uint8 /* 2 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -29288,49 +31382,68 @@ func (z *ReplicationTargetStats) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "nodes": - z.Nodes, err = dc.ReadInt() + case "uintMetrics": + var zb0002 uint32 + zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "Nodes") + err = msgp.WrapError(err, "UintMetrics") return } - case "last_minute": - err = z.LastMinute.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return + if z.UintMetrics == nil { + z.UintMetrics = make(map[string]uint64, zb0002) + } else if len(z.UintMetrics) > 0 { + clear(z.UintMetrics) + } + for zb0002 > 0 { + zb0002-- + var za0001 string + za0001, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + var za0002 uint64 + za0002, err = dc.ReadUint64() + if err != nil { + err = msgp.WrapError(err, "UintMetrics", za0001) + return + } + z.UintMetrics[za0001] = za0002 } zb0001Mask |= 0x1 - case "last_hour": - err = z.LastHour.DecodeMsg(dc) + case "floatMetrics": + var zb0003 uint32 + zb0003, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "FloatMetrics") return } - zb0001Mask |= 0x2 - case "last_day": - if dc.IsNil() { - err = dc.ReadNil() + if z.FloatMetrics == nil { + z.FloatMetrics = make(map[string]float64, zb0003) + } else if len(z.FloatMetrics) > 0 { + clear(z.FloatMetrics) + } + for zb0003 > 0 { + zb0003-- + var za0003 string + za0003, err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "FloatMetrics") return } - z.LastDay = nil - } else { - if z.LastDay == nil { - z.LastDay = new(SegmentedReplicationStats) - } - err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).DecodeMsg(dc) + var za0004 float64 + za0004, err = dc.ReadFloat64() if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "FloatMetrics", za0003) return } + z.FloatMetrics[za0003] = za0004 } - zb0001Mask |= 0x4 - case "since_start": - err = z.SinceStart.DecodeMsg(dc) + zb0001Mask |= 0x2 + case "n": + z.N, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "SinceStart") + err = msgp.WrapError(err, "N") return } default: @@ -29342,29 +31455,30 @@ func (z *ReplicationTargetStats) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0x7 { + if zb0001Mask != 0x3 { if (zb0001Mask & 0x1) == 0 { - z.LastMinute = ReplicationStats{} + z.UintMetrics = nil } if (zb0001Mask & 0x2) == 0 { - z.LastHour = ReplicationStats{} - } - if (zb0001Mask & 0x4) == 0 { - z.LastDay = nil + z.FloatMetrics = nil } } return } // EncodeMsg implements msgp.Encodable -func (z *ReplicationTargetStats) EncodeMsg(en *msgp.Writer) (err error) { +func (z *RuntimeSegment) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(5) - var zb0001Mask uint8 /* 5 bits */ + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ _ = zb0001Mask - if z.LastDay == nil { + if z.UintMetrics == nil { zb0001Len-- - zb0001Mask |= 0x8 + zb0001Mask |= 0x1 + } + if z.FloatMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x2 } // variable map header, size zb0001Len err = en.Append(0x80 | uint8(zb0001Len)) @@ -29374,63 +31488,62 @@ func (z *ReplicationTargetStats) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - // write "nodes" - err = en.Append(0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - if err != nil { - return - } - err = en.WriteInt(z.Nodes) - if err != nil { - err = msgp.WrapError(err, "Nodes") - return - } - // write "last_minute" - err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) - if err != nil { - return - } - err = z.LastMinute.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - // write "last_hour" - err = en.Append(0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) - if err != nil { - return - } - err = z.LastHour.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastHour") - return + if (zb0001Mask & 0x1) == 0 { // if not omitted + // write "uintMetrics" + err = en.Append(0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.UintMetrics))) + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + for za0001, za0002 := range z.UintMetrics { + err = en.WriteString(za0001) + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + err = en.WriteUint64(za0002) + if err != nil { + err = msgp.WrapError(err, "UintMetrics", za0001) + return + } + } } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "last_day" - err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + if (zb0001Mask & 0x2) == 0 { // if not omitted + // write "floatMetrics" + err = en.Append(0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) if err != nil { return } - if z.LastDay == nil { - err = en.WriteNil() + err = en.WriteMapHeader(uint32(len(z.FloatMetrics))) + if err != nil { + err = msgp.WrapError(err, "FloatMetrics") + return + } + for za0003, za0004 := range z.FloatMetrics { + err = en.WriteString(za0003) if err != nil { + err = msgp.WrapError(err, "FloatMetrics") return } - } else { - err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).EncodeMsg(en) + err = en.WriteFloat64(za0004) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "FloatMetrics", za0003) return } } } - // write "since_start" - err = en.Append(0xab, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74) + // write "n" + err = en.Append(0xa1, 0x6e) if err != nil { return } - err = z.SinceStart.EncodeMsg(en) + err = en.WriteInt(z.N) if err != nil { - err = msgp.WrapError(err, "SinceStart") + err = msgp.WrapError(err, "N") return } } @@ -29438,64 +31551,52 @@ func (z *ReplicationTargetStats) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *ReplicationTargetStats) MarshalMsg(b []byte) (o []byte, err error) { +func (z *RuntimeSegment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(5) - var zb0001Mask uint8 /* 5 bits */ + zb0001Len := uint32(3) + var zb0001Mask uint8 /* 3 bits */ _ = zb0001Mask - if z.LastDay == nil { + if z.UintMetrics == nil { zb0001Len-- - zb0001Mask |= 0x8 + zb0001Mask |= 0x1 + } + if z.FloatMetrics == nil { + zb0001Len-- + zb0001Mask |= 0x2 } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { - // string "nodes" - o = append(o, 0xa5, 0x6e, 0x6f, 0x64, 0x65, 0x73) - o = msgp.AppendInt(o, z.Nodes) - // string "last_minute" - o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) - o, err = z.LastMinute.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - // string "last_hour" - o = append(o, 0xa9, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72) - o, err = z.LastHour.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastHour") - return - } - if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "last_day" - o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) - if z.LastDay == nil { - o = msgp.AppendNil(o) - } else { - o, err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } + if (zb0001Mask & 0x1) == 0 { // if not omitted + // string "uintMetrics" + o = append(o, 0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.UintMetrics))) + for za0001, za0002 := range z.UintMetrics { + o = msgp.AppendString(o, za0001) + o = msgp.AppendUint64(o, za0002) } } - // string "since_start" - o = append(o, 0xab, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74) - o, err = z.SinceStart.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "SinceStart") - return + if (zb0001Mask & 0x2) == 0 { // if not omitted + // string "floatMetrics" + o = append(o, 0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.FloatMetrics))) + for za0003, za0004 := range z.FloatMetrics { + o = msgp.AppendString(o, za0003) + o = msgp.AppendFloat64(o, za0004) + } } + // string "n" + o = append(o, 0xa1, 0x6e) + o = msgp.AppendInt(o, z.N) } return } // UnmarshalMsg implements msgp.Unmarshaler -func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *RuntimeSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -29504,7 +31605,7 @@ func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 3 bits */ + var zb0001Mask uint8 /* 2 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -29514,48 +31615,68 @@ func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) return } switch msgp.UnsafeString(field) { - case "nodes": - z.Nodes, bts, err = msgp.ReadIntBytes(bts) + case "uintMetrics": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "Nodes") + err = msgp.WrapError(err, "UintMetrics") return } - case "last_minute": - bts, err = z.LastMinute.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return + if z.UintMetrics == nil { + z.UintMetrics = make(map[string]uint64, zb0002) + } else if len(z.UintMetrics) > 0 { + clear(z.UintMetrics) + } + for zb0002 > 0 { + var za0002 uint64 + zb0002-- + var za0001 string + za0001, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "UintMetrics") + return + } + za0002, bts, err = msgp.ReadUint64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "UintMetrics", za0001) + return + } + z.UintMetrics[za0001] = za0002 } zb0001Mask |= 0x1 - case "last_hour": - bts, err = z.LastHour.UnmarshalMsg(bts) + case "floatMetrics": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "FloatMetrics") return } - zb0001Mask |= 0x2 - case "last_day": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) + if z.FloatMetrics == nil { + z.FloatMetrics = make(map[string]float64, zb0003) + } else if len(z.FloatMetrics) > 0 { + clear(z.FloatMetrics) + } + for zb0003 > 0 { + var za0004 float64 + zb0003-- + var za0003 string + za0003, bts, err = msgp.ReadStringBytes(bts) if err != nil { + err = msgp.WrapError(err, "FloatMetrics") return } - z.LastDay = nil - } else { - if z.LastDay == nil { - z.LastDay = new(SegmentedReplicationStats) - } - bts, err = (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).UnmarshalMsg(bts) + za0004, bts, err = msgp.ReadFloat64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "FloatMetrics", za0003) return } + z.FloatMetrics[za0003] = za0004 } - zb0001Mask |= 0x4 - case "since_start": - bts, err = z.SinceStart.UnmarshalMsg(bts) + zb0001Mask |= 0x2 + case "n": + z.N, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "SinceStart") + err = msgp.WrapError(err, "N") return } default: @@ -29567,15 +31688,12 @@ func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) } } // Clear omitted fields. - if zb0001Mask != 0x7 { + if zb0001Mask != 0x3 { if (zb0001Mask & 0x1) == 0 { - z.LastMinute = ReplicationStats{} + z.UintMetrics = nil } if (zb0001Mask & 0x2) == 0 { - z.LastHour = ReplicationStats{} - } - if (zb0001Mask & 0x4) == 0 { - z.LastDay = nil + z.FloatMetrics = nil } } o = bts @@ -29583,19 +31701,27 @@ func (z *ReplicationTargetStats) UnmarshalMsg(bts []byte) (o []byte, err error) } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ReplicationTargetStats) Msgsize() (s int) { - s = 1 + 6 + msgp.IntSize + 12 + z.LastMinute.Msgsize() + 10 + z.LastHour.Msgsize() + 9 - if z.LastDay == nil { - s += msgp.NilSize - } else { - s += (*Segmented[ReplicationStats, *ReplicationStats])(z.LastDay).Msgsize() +func (z *RuntimeSegment) Msgsize() (s int) { + s = 1 + 12 + msgp.MapHeaderSize + if z.UintMetrics != nil { + for za0001, za0002 := range z.UintMetrics { + _ = za0002 + s += msgp.StringPrefixSize + len(za0001) + msgp.Uint64Size + } } - s += 12 + z.SinceStart.Msgsize() + s += 13 + msgp.MapHeaderSize + if z.FloatMetrics != nil { + for za0003, za0004 := range z.FloatMetrics { + _ = za0004 + s += msgp.StringPrefixSize + len(za0003) + msgp.Float64Size + } + } + s += 2 + msgp.IntSize return } // DecodeMsg implements msgp.Decodable -func (z *RuntimeMetrics) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *ScannerMetrics) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -29604,7 +31730,7 @@ func (z *RuntimeMetrics) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 5 bits */ + var zb0001Mask uint8 /* 8 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -29614,137 +31740,312 @@ func (z *RuntimeMetrics) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "uintMetrics": + case "collected": + z.CollectedAt, err = dc.ReadTimeUTC() + if err != nil { + err = msgp.WrapError(err, "CollectedAt") + return + } + case "ongoing_buckets": + z.OngoingBuckets, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "OngoingBuckets") + return + } + case "per_bucket_stats": var zb0002 uint32 zb0002, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - if z.UintMetrics == nil { - z.UintMetrics = make(map[string]uint64, zb0002) - } else if len(z.UintMetrics) > 0 { - clear(z.UintMetrics) + if z.PerBucketStats == nil { + z.PerBucketStats = make(map[string][]BucketScanInfo, zb0002) + } else if len(z.PerBucketStats) > 0 { + clear(z.PerBucketStats) } for zb0002 > 0 { zb0002-- var za0001 string za0001, err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - var za0002 uint64 - za0002, err = dc.ReadUint64() + var za0002 []BucketScanInfo + var zb0003 uint32 + zb0003, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "PerBucketStats", za0001) + return + } + if cap(za0002) >= int(zb0003) { + za0002 = (za0002)[:zb0003] + } else { + za0002 = make([]BucketScanInfo, zb0003) + } + for za0003 := range za0002 { + err = za0002[za0003].DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) + return + } + } + z.PerBucketStats[za0001] = za0002 + } + zb0001Mask |= 0x1 + case "life_time_ops": + var zb0004 uint32 + zb0004, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "LifeTimeOps") + return + } + if z.LifeTimeOps == nil { + z.LifeTimeOps = make(map[string]uint64, zb0004) + } else if len(z.LifeTimeOps) > 0 { + clear(z.LifeTimeOps) + } + for zb0004 > 0 { + zb0004-- + var za0004 string + za0004, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LifeTimeOps") + return + } + var za0005 uint64 + za0005, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) + err = msgp.WrapError(err, "LifeTimeOps", za0004) return } - z.UintMetrics[za0001] = za0002 + z.LifeTimeOps[za0004] = za0005 } - zb0001Mask |= 0x1 - case "floatMetrics": - var zb0003 uint32 - zb0003, err = dc.ReadMapHeader() + zb0001Mask |= 0x2 + case "ilm_ops": + var zb0005 uint32 + zb0005, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeILM") return } - if z.FloatMetrics == nil { - z.FloatMetrics = make(map[string]float64, zb0003) - } else if len(z.FloatMetrics) > 0 { - clear(z.FloatMetrics) + if z.LifeTimeILM == nil { + z.LifeTimeILM = make(map[string]uint64, zb0005) + } else if len(z.LifeTimeILM) > 0 { + clear(z.LifeTimeILM) } - for zb0003 > 0 { - zb0003-- - var za0003 string - za0003, err = dc.ReadString() + for zb0005 > 0 { + zb0005-- + var za0006 string + za0006, err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeILM") return } - var za0004 float64 - za0004, err = dc.ReadFloat64() + var za0007 uint64 + za0007, err = dc.ReadUint64() if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) + err = msgp.WrapError(err, "LifeTimeILM", za0006) return } - z.FloatMetrics[za0003] = za0004 + z.LifeTimeILM[za0006] = za0007 } - zb0001Mask |= 0x2 - case "histMetrics": - var zb0004 uint32 - zb0004, err = dc.ReadMapHeader() + zb0001Mask |= 0x4 + case "last_minute": + var zb0006 uint32 + zb0006, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "HistMetrics") + err = msgp.WrapError(err, "LastMinute") return } - if z.HistMetrics == nil { - z.HistMetrics = make(map[string]metrics.Float64Histogram, zb0004) - } else if len(z.HistMetrics) > 0 { - clear(z.HistMetrics) - } - for zb0004 > 0 { - zb0004-- - var za0005 string - za0005, err = dc.ReadString() + var zb0006Mask uint8 /* 2 bits */ + _ = zb0006Mask + for zb0006 > 0 { + zb0006-- + field, err = dc.ReadMapKeyPtr() if err != nil { - err = msgp.WrapError(err, "HistMetrics") + err = msgp.WrapError(err, "LastMinute") return } - var za0006 metrics.Float64Histogram - err = (*localF64H)(&za0006).DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "HistMetrics", za0005) - return + switch msgp.UnsafeString(field) { + case "actions": + var zb0007 uint32 + zb0007, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + if z.LastMinute.Actions == nil { + z.LastMinute.Actions = make(map[string]TimedAction, zb0007) + } else if len(z.LastMinute.Actions) > 0 { + clear(z.LastMinute.Actions) + } + for zb0007 > 0 { + zb0007-- + var za0008 string + za0008, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + var za0009 TimedAction + err = za0009.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions", za0008) + return + } + z.LastMinute.Actions[za0008] = za0009 + } + zb0006Mask |= 0x1 + case "ilm": + var zb0008 uint32 + zb0008, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + if z.LastMinute.ILM == nil { + z.LastMinute.ILM = make(map[string]TimedAction, zb0008) + } else if len(z.LastMinute.ILM) > 0 { + clear(z.LastMinute.ILM) + } + for zb0008 > 0 { + zb0008-- + var za0010 string + za0010, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + var za0011 TimedAction + err = za0011.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM", za0010) + return + } + z.LastMinute.ILM[za0010] = za0011 + } + zb0006Mask |= 0x2 + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } } - z.HistMetrics[za0005] = za0006 } - zb0001Mask |= 0x4 - case "n": - z.N, err = dc.ReadInt() + // Clear omitted fields. + if zb0006Mask != 0x3 { + if (zb0006Mask & 0x1) == 0 { + z.LastMinute.Actions = nil + } + if (zb0006Mask & 0x2) == 0 { + z.LastMinute.ILM = nil + } + } + case "last_day": + var zb0009 uint32 + zb0009, err = dc.ReadMapHeader() if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "LastDay") return } - case "lastDay": - if dc.IsNil() { - err = dc.ReadNil() + if z.LastDay == nil { + z.LastDay = make(map[string]SegmentedActions, zb0009) + } else if len(z.LastDay) > 0 { + clear(z.LastDay) + } + for zb0009 > 0 { + zb0009-- + var za0012 string + za0012, err = dc.ReadString() if err != nil { err = msgp.WrapError(err, "LastDay") return } - z.LastDay = nil - } else { - if z.LastDay == nil { - z.LastDay = new(SegmentedRuntimeMetrics) - } - err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).DecodeMsg(dc) + var za0013 SegmentedActions + err = (*Segmented[TimedAction, *TimedAction])(&za0013).DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "LastDay", za0012) return } + z.LastDay[za0012] = za0013 } zb0001Mask |= 0x8 - case "lastHour": - if dc.IsNil() { - err = dc.ReadNil() + case "active": + var zb0010 uint32 + zb0010, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "ActivePaths") + return + } + if cap(z.ActivePaths) >= int(zb0010) { + z.ActivePaths = (z.ActivePaths)[:zb0010] + } else { + z.ActivePaths = make([]string, zb0010) + } + for za0014 := range z.ActivePaths { + z.ActivePaths[za0014], err = dc.ReadString() if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "ActivePaths", za0014) return } - z.LastHour = nil + } + zb0001Mask |= 0x10 + case "excessive": + var zb0011 uint32 + zb0011, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "ExcessivePrefixes") + return + } + if cap(z.ExcessivePrefixes) >= int(zb0011) { + z.ExcessivePrefixes = (z.ExcessivePrefixes)[:zb0011] } else { - if z.LastHour == nil { - z.LastHour = new(SegmentedRuntimeMetrics) + z.ExcessivePrefixes = make([]string, zb0011) + } + for za0015 := range z.ExcessivePrefixes { + z.ExcessivePrefixes[za0015], err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "ExcessivePrefixes", za0015) + return } - err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).DecodeMsg(dc) + } + zb0001Mask |= 0x20 + case "ilm_expiry_pending_tasks": + z.ILMExpiryPendingTasks, err = dc.ReadInt() + if err != nil { + err = msgp.WrapError(err, "ILMExpiryPendingTasks") + return + } + zb0001Mask |= 0x40 + case "ilm_expiry_tasks_cleanup": + err = z.ILMExpiryTasksServiced.DecodeMsg(dc) + if err != nil { + err = msgp.WrapError(err, "ILMExpiryTasksServiced") + return + } + case "queued_for_expiry": + var zb0012 uint32 + zb0012, err = dc.ReadArrayHeader() + if err != nil { + err = msgp.WrapError(err, "QueuedForExpiry") + return + } + if cap(z.QueuedForExpiry) >= int(zb0012) { + z.QueuedForExpiry = (z.QueuedForExpiry)[:zb0012] + } else { + z.QueuedForExpiry = make([]ExpiryObject, zb0012) + } + for za0016 := range z.QueuedForExpiry { + err = z.QueuedForExpiry[za0016].DecodeMsg(dc) if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "QueuedForExpiry", za0016) return } } - zb0001Mask |= 0x10 + zb0001Mask |= 0x80 default: err = dc.Skip() if err != nil { @@ -29754,51 +32055,72 @@ func (z *RuntimeMetrics) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0x1f { + if zb0001Mask != 0xff { if (zb0001Mask & 0x1) == 0 { - z.UintMetrics = nil + z.PerBucketStats = nil } if (zb0001Mask & 0x2) == 0 { - z.FloatMetrics = nil + z.LifeTimeOps = nil } if (zb0001Mask & 0x4) == 0 { - z.HistMetrics = nil + z.LifeTimeILM = nil } if (zb0001Mask & 0x8) == 0 { z.LastDay = nil } if (zb0001Mask & 0x10) == 0 { - z.LastHour = nil + z.ActivePaths = nil + } + if (zb0001Mask & 0x20) == 0 { + z.ExcessivePrefixes = nil + } + if (zb0001Mask & 0x40) == 0 { + z.ILMExpiryPendingTasks = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.QueuedForExpiry = nil } } return } // EncodeMsg implements msgp.Encodable -func (z *RuntimeMetrics) EncodeMsg(en *msgp.Writer) (err error) { +func (z *ScannerMetrics) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(6) - var zb0001Mask uint8 /* 6 bits */ + zb0001Len := uint32(12) + var zb0001Mask uint16 /* 12 bits */ _ = zb0001Mask - if z.UintMetrics == nil { + if z.PerBucketStats == nil { zb0001Len-- - zb0001Mask |= 0x1 + zb0001Mask |= 0x4 } - if z.FloatMetrics == nil { + if z.LifeTimeOps == nil { zb0001Len-- - zb0001Mask |= 0x2 + zb0001Mask |= 0x8 } - if z.HistMetrics == nil { + if z.LifeTimeILM == nil { zb0001Len-- - zb0001Mask |= 0x4 + zb0001Mask |= 0x10 } if z.LastDay == nil { zb0001Len-- - zb0001Mask |= 0x10 + zb0001Mask |= 0x40 } - if z.LastHour == nil { + if z.ActivePaths == nil { zb0001Len-- - zb0001Mask |= 0x20 + zb0001Mask |= 0x80 + } + if z.ExcessivePrefixes == nil { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.ILMExpiryPendingTasks == 0 { + zb0001Len-- + zb0001Mask |= 0x200 + } + if z.QueuedForExpiry == nil { + zb0001Len-- + zb0001Mask |= 0x800 } // variable map header, size zb0001Len err = en.Append(0x80 | uint8(zb0001Len)) @@ -29808,122 +32130,278 @@ func (z *RuntimeMetrics) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "uintMetrics" - err = en.Append(0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + // write "collected" + err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) + if err != nil { + return + } + err = en.WriteTime(z.CollectedAt) + if err != nil { + err = msgp.WrapError(err, "CollectedAt") + return + } + // write "ongoing_buckets" + err = en.Append(0xaf, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.OngoingBuckets) + if err != nil { + err = msgp.WrapError(err, "OngoingBuckets") + return + } + if (zb0001Mask & 0x4) == 0 { // if not omitted + // write "per_bucket_stats" + err = en.Append(0xb0, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.UintMetrics))) + err = en.WriteMapHeader(uint32(len(z.PerBucketStats))) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - for za0001, za0002 := range z.UintMetrics { + for za0001, za0002 := range z.PerBucketStats { err = en.WriteString(za0001) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - err = en.WriteUint64(za0002) + err = en.WriteArrayHeader(uint32(len(za0002))) if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) + err = msgp.WrapError(err, "PerBucketStats", za0001) return } + for za0003 := range za0002 { + err = za0002[za0003].EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) + return + } + } } } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "floatMetrics" - err = en.Append(0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + if (zb0001Mask & 0x8) == 0 { // if not omitted + // write "life_time_ops" + err = en.Append(0xad, 0x6c, 0x69, 0x66, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.FloatMetrics))) + err = en.WriteMapHeader(uint32(len(z.LifeTimeOps))) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeOps") return } - for za0003, za0004 := range z.FloatMetrics { - err = en.WriteString(za0003) + for za0004, za0005 := range z.LifeTimeOps { + err = en.WriteString(za0004) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeOps") return } - err = en.WriteFloat64(za0004) + err = en.WriteUint64(za0005) if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) + err = msgp.WrapError(err, "LifeTimeOps", za0004) + return + } + } + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // write "ilm_ops" + err = en.Append(0xa7, 0x69, 0x6c, 0x6d, 0x5f, 0x6f, 0x70, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.LifeTimeILM))) + if err != nil { + err = msgp.WrapError(err, "LifeTimeILM") + return + } + for za0006, za0007 := range z.LifeTimeILM { + err = en.WriteString(za0006) + if err != nil { + err = msgp.WrapError(err, "LifeTimeILM") + return + } + err = en.WriteUint64(za0007) + if err != nil { + err = msgp.WrapError(err, "LifeTimeILM", za0006) + return + } + } + } + // write "last_minute" + err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + if err != nil { + return + } + // check for omitted fields + zb0002Len := uint32(2) + var zb0002Mask uint8 /* 2 bits */ + _ = zb0002Mask + if z.LastMinute.Actions == nil { + zb0002Len-- + zb0002Mask |= 0x1 + } + if z.LastMinute.ILM == nil { + zb0002Len-- + zb0002Mask |= 0x2 + } + // variable map header, size zb0002Len + err = en.Append(0x80 | uint8(zb0002Len)) + if err != nil { + return + } + + // skip if no fields are to be emitted + if zb0002Len != 0 { + if (zb0002Mask & 0x1) == 0 { // if not omitted + // write "actions" + err = en.Append(0xa7, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.LastMinute.Actions))) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + for za0008, za0009 := range z.LastMinute.Actions { + err = en.WriteString(za0008) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + err = za0009.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions", za0008) + return + } + } + } + if (zb0002Mask & 0x2) == 0 { // if not omitted + // write "ilm" + err = en.Append(0xa3, 0x69, 0x6c, 0x6d) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.LastMinute.ILM))) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + for za0010, za0011 := range z.LastMinute.ILM { + err = en.WriteString(za0010) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + err = za0011.EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM", za0010) + return + } + } + } + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // write "last_day" + err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + if err != nil { + return + } + err = en.WriteMapHeader(uint32(len(z.LastDay))) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + for za0012, za0013 := range z.LastDay { + err = en.WriteString(za0012) + if err != nil { + err = msgp.WrapError(err, "LastDay") + return + } + err = (*Segmented[TimedAction, *TimedAction])(&za0013).EncodeMsg(en) + if err != nil { + err = msgp.WrapError(err, "LastDay", za0012) + return + } + } + } + if (zb0001Mask & 0x80) == 0 { // if not omitted + // write "active" + err = en.Append(0xa6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65) + if err != nil { + return + } + err = en.WriteArrayHeader(uint32(len(z.ActivePaths))) + if err != nil { + err = msgp.WrapError(err, "ActivePaths") + return + } + for za0014 := range z.ActivePaths { + err = en.WriteString(z.ActivePaths[za0014]) + if err != nil { + err = msgp.WrapError(err, "ActivePaths", za0014) return } } } - if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "histMetrics" - err = en.Append(0xab, 0x68, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + if (zb0001Mask & 0x100) == 0 { // if not omitted + // write "excessive" + err = en.Append(0xa9, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.HistMetrics))) + err = en.WriteArrayHeader(uint32(len(z.ExcessivePrefixes))) if err != nil { - err = msgp.WrapError(err, "HistMetrics") + err = msgp.WrapError(err, "ExcessivePrefixes") return } - for za0005, za0006 := range z.HistMetrics { - err = en.WriteString(za0005) - if err != nil { - err = msgp.WrapError(err, "HistMetrics") - return - } - err = (*localF64H)(&za0006).EncodeMsg(en) + for za0015 := range z.ExcessivePrefixes { + err = en.WriteString(z.ExcessivePrefixes[za0015]) if err != nil { - err = msgp.WrapError(err, "HistMetrics", za0005) + err = msgp.WrapError(err, "ExcessivePrefixes", za0015) return } } } - // write "n" - err = en.Append(0xa1, 0x6e) + if (zb0001Mask & 0x200) == 0 { // if not omitted + // write "ilm_expiry_pending_tasks" + err = en.Append(0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73) + if err != nil { + return + } + err = en.WriteInt(z.ILMExpiryPendingTasks) + if err != nil { + err = msgp.WrapError(err, "ILMExpiryPendingTasks") + return + } + } + // write "ilm_expiry_tasks_cleanup" + err = en.Append(0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70) if err != nil { return } - err = en.WriteInt(z.N) + err = z.ILMExpiryTasksServiced.EncodeMsg(en) if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "ILMExpiryTasksServiced") return } - if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "lastDay" - err = en.Append(0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) + if (zb0001Mask & 0x800) == 0 { // if not omitted + // write "queued_for_expiry" + err = en.Append(0xb1, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79) if err != nil { return } - if z.LastDay == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } - } - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // write "lastHour" - err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) + err = en.WriteArrayHeader(uint32(len(z.QueuedForExpiry))) if err != nil { + err = msgp.WrapError(err, "QueuedForExpiry") return } - if z.LastHour == nil { - err = en.WriteNil() - if err != nil { - return - } - } else { - err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).EncodeMsg(en) + for za0016 := range z.QueuedForExpiry { + err = z.QueuedForExpiry[za0016].EncodeMsg(en) if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "QueuedForExpiry", za0016) return } } @@ -29933,635 +32411,518 @@ func (z *RuntimeMetrics) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *RuntimeMetrics) MarshalMsg(b []byte) (o []byte, err error) { +func (z *ScannerMetrics) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(6) - var zb0001Mask uint8 /* 6 bits */ + zb0001Len := uint32(12) + var zb0001Mask uint16 /* 12 bits */ _ = zb0001Mask - if z.UintMetrics == nil { + if z.PerBucketStats == nil { zb0001Len-- - zb0001Mask |= 0x1 + zb0001Mask |= 0x4 } - if z.FloatMetrics == nil { + if z.LifeTimeOps == nil { zb0001Len-- - zb0001Mask |= 0x2 + zb0001Mask |= 0x8 } - if z.HistMetrics == nil { + if z.LifeTimeILM == nil { zb0001Len-- - zb0001Mask |= 0x4 + zb0001Mask |= 0x10 } if z.LastDay == nil { zb0001Len-- - zb0001Mask |= 0x10 + zb0001Mask |= 0x40 } - if z.LastHour == nil { + if z.ActivePaths == nil { zb0001Len-- - zb0001Mask |= 0x20 + zb0001Mask |= 0x80 + } + if z.ExcessivePrefixes == nil { + zb0001Len-- + zb0001Mask |= 0x100 + } + if z.ILMExpiryPendingTasks == 0 { + zb0001Len-- + zb0001Mask |= 0x200 + } + if z.QueuedForExpiry == nil { + zb0001Len-- + zb0001Mask |= 0x800 } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "uintMetrics" - o = append(o, 0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.UintMetrics))) - for za0001, za0002 := range z.UintMetrics { - o = msgp.AppendString(o, za0001) - o = msgp.AppendUint64(o, za0002) - } - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "floatMetrics" - o = append(o, 0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.FloatMetrics))) - for za0003, za0004 := range z.FloatMetrics { - o = msgp.AppendString(o, za0003) - o = msgp.AppendFloat64(o, za0004) - } - } + // string "collected" + o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) + o = msgp.AppendTime(o, z.CollectedAt) + // string "ongoing_buckets" + o = append(o, 0xaf, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + o = msgp.AppendInt(o, z.OngoingBuckets) if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "histMetrics" - o = append(o, 0xab, 0x68, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.HistMetrics))) - for za0005, za0006 := range z.HistMetrics { - o = msgp.AppendString(o, za0005) - o, err = (*localF64H)(&za0006).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "HistMetrics", za0005) - return - } - } - } - // string "n" - o = append(o, 0xa1, 0x6e) - o = msgp.AppendInt(o, z.N) - if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "lastDay" - o = append(o, 0xa7, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79) - if z.LastDay == nil { - o = msgp.AppendNil(o) - } else { - o, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } - } - } - if (zb0001Mask & 0x20) == 0 { // if not omitted - // string "lastHour" - o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x6f, 0x75, 0x72) - if z.LastHour == nil { - o = msgp.AppendNil(o) - } else { - o, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastHour") - return - } - } - } - } - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *RuntimeMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - var zb0001Mask uint8 /* 5 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "uintMetrics": - var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "UintMetrics") - return - } - if z.UintMetrics == nil { - z.UintMetrics = make(map[string]uint64, zb0002) - } else if len(z.UintMetrics) > 0 { - clear(z.UintMetrics) - } - for zb0002 > 0 { - var za0002 uint64 - zb0002-- - var za0001 string - za0001, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "UintMetrics") - return - } - za0002, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) - return - } - z.UintMetrics[za0001] = za0002 - } - zb0001Mask |= 0x1 - case "floatMetrics": - var zb0003 uint32 - zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "FloatMetrics") - return - } - if z.FloatMetrics == nil { - z.FloatMetrics = make(map[string]float64, zb0003) - } else if len(z.FloatMetrics) > 0 { - clear(z.FloatMetrics) - } - for zb0003 > 0 { - var za0004 float64 - zb0003-- - var za0003 string - za0003, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "FloatMetrics") - return - } - za0004, bts, err = msgp.ReadFloat64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) - return + // string "per_bucket_stats" + o = append(o, 0xb0, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.PerBucketStats))) + for za0001, za0002 := range z.PerBucketStats { + o = msgp.AppendString(o, za0001) + o = msgp.AppendArrayHeader(o, uint32(len(za0002))) + for za0003 := range za0002 { + o, err = za0002[za0003].MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) + return + } } - z.FloatMetrics[za0003] = za0004 } - zb0001Mask |= 0x2 - case "histMetrics": - var zb0004 uint32 - zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "HistMetrics") - return + } + if (zb0001Mask & 0x8) == 0 { // if not omitted + // string "life_time_ops" + o = append(o, 0xad, 0x6c, 0x69, 0x66, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.LifeTimeOps))) + for za0004, za0005 := range z.LifeTimeOps { + o = msgp.AppendString(o, za0004) + o = msgp.AppendUint64(o, za0005) } - if z.HistMetrics == nil { - z.HistMetrics = make(map[string]metrics.Float64Histogram, zb0004) - } else if len(z.HistMetrics) > 0 { - clear(z.HistMetrics) + } + if (zb0001Mask & 0x10) == 0 { // if not omitted + // string "ilm_ops" + o = append(o, 0xa7, 0x69, 0x6c, 0x6d, 0x5f, 0x6f, 0x70, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.LifeTimeILM))) + for za0006, za0007 := range z.LifeTimeILM { + o = msgp.AppendString(o, za0006) + o = msgp.AppendUint64(o, za0007) } - for zb0004 > 0 { - var za0006 metrics.Float64Histogram - zb0004-- - var za0005 string - za0005, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "HistMetrics") - return - } - bts, err = (*localF64H)(&za0006).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "HistMetrics", za0005) - return + } + // string "last_minute" + o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) + // check for omitted fields + zb0002Len := uint32(2) + var zb0002Mask uint8 /* 2 bits */ + _ = zb0002Mask + if z.LastMinute.Actions == nil { + zb0002Len-- + zb0002Mask |= 0x1 + } + if z.LastMinute.ILM == nil { + zb0002Len-- + zb0002Mask |= 0x2 + } + // variable map header, size zb0002Len + o = append(o, 0x80|uint8(zb0002Len)) + + // skip if no fields are to be emitted + if zb0002Len != 0 { + if (zb0002Mask & 0x1) == 0 { // if not omitted + // string "actions" + o = append(o, 0xa7, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73) + o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute.Actions))) + for za0008, za0009 := range z.LastMinute.Actions { + o = msgp.AppendString(o, za0008) + o, err = za0009.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions", za0008) + return + } } - z.HistMetrics[za0005] = za0006 - } - zb0001Mask |= 0x4 - case "n": - z.N, bts, err = msgp.ReadIntBytes(bts) - if err != nil { - err = msgp.WrapError(err, "N") - return } - case "lastDay": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.LastDay = nil - } else { - if z.LastDay == nil { - z.LastDay = new(SegmentedRuntimeMetrics) - } - bts, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return + if (zb0002Mask & 0x2) == 0 { // if not omitted + // string "ilm" + o = append(o, 0xa3, 0x69, 0x6c, 0x6d) + o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute.ILM))) + for za0010, za0011 := range z.LastMinute.ILM { + o = msgp.AppendString(o, za0010) + o, err = za0011.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM", za0010) + return + } } } - zb0001Mask |= 0x8 - case "lastHour": - if msgp.IsNil(bts) { - bts, err = msgp.ReadNilBytes(bts) - if err != nil { - return - } - z.LastHour = nil - } else { - if z.LastHour == nil { - z.LastHour = new(SegmentedRuntimeMetrics) - } - bts, err = (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).UnmarshalMsg(bts) + } + if (zb0001Mask & 0x40) == 0 { // if not omitted + // string "last_day" + o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + o = msgp.AppendMapHeader(o, uint32(len(z.LastDay))) + for za0012, za0013 := range z.LastDay { + o = msgp.AppendString(o, za0012) + o, err = (*Segmented[TimedAction, *TimedAction])(&za0013).MarshalMsg(o) if err != nil { - err = msgp.WrapError(err, "LastHour") + err = msgp.WrapError(err, "LastDay", za0012) return } } - zb0001Mask |= 0x10 - default: - bts, err = msgp.Skip(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - } - } - // Clear omitted fields. - if zb0001Mask != 0x1f { - if (zb0001Mask & 0x1) == 0 { - z.UintMetrics = nil - } - if (zb0001Mask & 0x2) == 0 { - z.FloatMetrics = nil - } - if (zb0001Mask & 0x4) == 0 { - z.HistMetrics = nil } - if (zb0001Mask & 0x8) == 0 { - z.LastDay = nil + if (zb0001Mask & 0x80) == 0 { // if not omitted + // string "active" + o = append(o, 0xa6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65) + o = msgp.AppendArrayHeader(o, uint32(len(z.ActivePaths))) + for za0014 := range z.ActivePaths { + o = msgp.AppendString(o, z.ActivePaths[za0014]) + } } - if (zb0001Mask & 0x10) == 0 { - z.LastHour = nil + if (zb0001Mask & 0x100) == 0 { // if not omitted + // string "excessive" + o = append(o, 0xa9, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65) + o = msgp.AppendArrayHeader(o, uint32(len(z.ExcessivePrefixes))) + for za0015 := range z.ExcessivePrefixes { + o = msgp.AppendString(o, z.ExcessivePrefixes[za0015]) + } } - } - o = bts - return -} - -// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *RuntimeMetrics) Msgsize() (s int) { - s = 1 + 12 + msgp.MapHeaderSize - if z.UintMetrics != nil { - for za0001, za0002 := range z.UintMetrics { - _ = za0002 - s += msgp.StringPrefixSize + len(za0001) + msgp.Uint64Size + if (zb0001Mask & 0x200) == 0 { // if not omitted + // string "ilm_expiry_pending_tasks" + o = append(o, 0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73) + o = msgp.AppendInt(o, z.ILMExpiryPendingTasks) } - } - s += 13 + msgp.MapHeaderSize - if z.FloatMetrics != nil { - for za0003, za0004 := range z.FloatMetrics { - _ = za0004 - s += msgp.StringPrefixSize + len(za0003) + msgp.Float64Size + // string "ilm_expiry_tasks_cleanup" + o = append(o, 0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70) + o, err = z.ILMExpiryTasksServiced.MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "ILMExpiryTasksServiced") + return } - } - s += 12 + msgp.MapHeaderSize - if z.HistMetrics != nil { - for za0005, za0006 := range z.HistMetrics { - _ = za0006 - s += msgp.StringPrefixSize + len(za0005) + (*localF64H)(&za0006).Msgsize() + if (zb0001Mask & 0x800) == 0 { // if not omitted + // string "queued_for_expiry" + o = append(o, 0xb1, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79) + o = msgp.AppendArrayHeader(o, uint32(len(z.QueuedForExpiry))) + for za0016 := range z.QueuedForExpiry { + o, err = z.QueuedForExpiry[za0016].MarshalMsg(o) + if err != nil { + err = msgp.WrapError(err, "QueuedForExpiry", za0016) + return + } + } } } - s += 2 + msgp.IntSize + 8 - if z.LastDay == nil { - s += msgp.NilSize - } else { - s += (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastDay).Msgsize() - } - s += 9 - if z.LastHour == nil { - s += msgp.NilSize - } else { - s += (*Segmented[RuntimeSegment, *RuntimeSegment])(z.LastHour).Msgsize() - } return } -// DecodeMsg implements msgp.Decodable -func (z *RuntimeSegment) DecodeMsg(dc *msgp.Reader) (err error) { +// UnmarshalMsg implements msgp.Unmarshaler +func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 - zb0001, err = dc.ReadMapHeader() + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 2 bits */ + var zb0001Mask uint8 /* 8 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- - field, err = dc.ReadMapKeyPtr() + field, bts, err = msgp.ReadMapKeyZC(bts) if err != nil { err = msgp.WrapError(err) return } switch msgp.UnsafeString(field) { - case "uintMetrics": + case "collected": + z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) + if err != nil { + err = msgp.WrapError(err, "CollectedAt") + return + } + case "ongoing_buckets": + z.OngoingBuckets, bts, err = msgp.ReadIntBytes(bts) + if err != nil { + err = msgp.WrapError(err, "OngoingBuckets") + return + } + case "per_bucket_stats": var zb0002 uint32 - zb0002, err = dc.ReadMapHeader() + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - if z.UintMetrics == nil { - z.UintMetrics = make(map[string]uint64, zb0002) - } else if len(z.UintMetrics) > 0 { - clear(z.UintMetrics) + if z.PerBucketStats == nil { + z.PerBucketStats = make(map[string][]BucketScanInfo, zb0002) + } else if len(z.PerBucketStats) > 0 { + clear(z.PerBucketStats) } for zb0002 > 0 { + var za0002 []BucketScanInfo zb0002-- var za0001 string - za0001, err = dc.ReadString() + za0001, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "PerBucketStats") return } - var za0002 uint64 - za0002, err = dc.ReadUint64() + var zb0003 uint32 + zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) + err = msgp.WrapError(err, "PerBucketStats", za0001) return } - z.UintMetrics[za0001] = za0002 + if cap(za0002) >= int(zb0003) { + za0002 = (za0002)[:zb0003] + } else { + za0002 = make([]BucketScanInfo, zb0003) + } + for za0003 := range za0002 { + bts, err = za0002[za0003].UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) + return + } + } + z.PerBucketStats[za0001] = za0002 } zb0001Mask |= 0x1 - case "floatMetrics": - var zb0003 uint32 - zb0003, err = dc.ReadMapHeader() + case "life_time_ops": + var zb0004 uint32 + zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeOps") return } - if z.FloatMetrics == nil { - z.FloatMetrics = make(map[string]float64, zb0003) - } else if len(z.FloatMetrics) > 0 { - clear(z.FloatMetrics) + if z.LifeTimeOps == nil { + z.LifeTimeOps = make(map[string]uint64, zb0004) + } else if len(z.LifeTimeOps) > 0 { + clear(z.LifeTimeOps) } - for zb0003 > 0 { - zb0003-- - var za0003 string - za0003, err = dc.ReadString() + for zb0004 > 0 { + var za0005 uint64 + zb0004-- + var za0004 string + za0004, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LifeTimeOps") return } - var za0004 float64 - za0004, err = dc.ReadFloat64() + za0005, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) + err = msgp.WrapError(err, "LifeTimeOps", za0004) return } - z.FloatMetrics[za0003] = za0004 + z.LifeTimeOps[za0004] = za0005 } zb0001Mask |= 0x2 - case "n": - z.N, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "N") - return - } - default: - err = dc.Skip() - if err != nil { - err = msgp.WrapError(err) - return - } - } - } - // Clear omitted fields. - if zb0001Mask != 0x3 { - if (zb0001Mask & 0x1) == 0 { - z.UintMetrics = nil - } - if (zb0001Mask & 0x2) == 0 { - z.FloatMetrics = nil - } - } - return -} - -// EncodeMsg implements msgp.Encodable -func (z *RuntimeSegment) EncodeMsg(en *msgp.Writer) (err error) { - // check for omitted fields - zb0001Len := uint32(3) - var zb0001Mask uint8 /* 3 bits */ - _ = zb0001Mask - if z.UintMetrics == nil { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.FloatMetrics == nil { - zb0001Len-- - zb0001Mask |= 0x2 - } - // variable map header, size zb0001Len - err = en.Append(0x80 | uint8(zb0001Len)) - if err != nil { - return - } - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // write "uintMetrics" - err = en.Append(0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) + case "ilm_ops": + var zb0005 uint32 + zb0005, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { + err = msgp.WrapError(err, "LifeTimeILM") return } - err = en.WriteMapHeader(uint32(len(z.UintMetrics))) - if err != nil { - err = msgp.WrapError(err, "UintMetrics") - return + if z.LifeTimeILM == nil { + z.LifeTimeILM = make(map[string]uint64, zb0005) + } else if len(z.LifeTimeILM) > 0 { + clear(z.LifeTimeILM) } - for za0001, za0002 := range z.UintMetrics { - err = en.WriteString(za0001) + for zb0005 > 0 { + var za0007 uint64 + zb0005-- + var za0006 string + za0006, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "LifeTimeILM") return } - err = en.WriteUint64(za0002) + za0007, bts, err = msgp.ReadUint64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) + err = msgp.WrapError(err, "LifeTimeILM", za0006) return } + z.LifeTimeILM[za0006] = za0007 } - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // write "floatMetrics" - err = en.Append(0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - if err != nil { - return - } - err = en.WriteMapHeader(uint32(len(z.FloatMetrics))) + zb0001Mask |= 0x4 + case "last_minute": + var zb0006 uint32 + zb0006, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "LastMinute") return } - for za0003, za0004 := range z.FloatMetrics { - err = en.WriteString(za0003) - if err != nil { - err = msgp.WrapError(err, "FloatMetrics") - return - } - err = en.WriteFloat64(za0004) + var zb0006Mask uint8 /* 2 bits */ + _ = zb0006Mask + for zb0006 > 0 { + zb0006-- + field, bts, err = msgp.ReadMapKeyZC(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) + err = msgp.WrapError(err, "LastMinute") return } + switch msgp.UnsafeString(field) { + case "actions": + var zb0007 uint32 + zb0007, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + if z.LastMinute.Actions == nil { + z.LastMinute.Actions = make(map[string]TimedAction, zb0007) + } else if len(z.LastMinute.Actions) > 0 { + clear(z.LastMinute.Actions) + } + for zb0007 > 0 { + var za0009 TimedAction + zb0007-- + var za0008 string + za0008, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions") + return + } + bts, err = za0009.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "Actions", za0008) + return + } + z.LastMinute.Actions[za0008] = za0009 + } + zb0006Mask |= 0x1 + case "ilm": + var zb0008 uint32 + zb0008, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + if z.LastMinute.ILM == nil { + z.LastMinute.ILM = make(map[string]TimedAction, zb0008) + } else if len(z.LastMinute.ILM) > 0 { + clear(z.LastMinute.ILM) + } + for zb0008 > 0 { + var za0011 TimedAction + zb0008-- + var za0010 string + za0010, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM") + return + } + bts, err = za0011.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute", "ILM", za0010) + return + } + z.LastMinute.ILM[za0010] = za0011 + } + zb0006Mask |= 0x2 + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err, "LastMinute") + return + } + } } - } - // write "n" - err = en.Append(0xa1, 0x6e) - if err != nil { - return - } - err = en.WriteInt(z.N) - if err != nil { - err = msgp.WrapError(err, "N") - return - } - } - return -} - -// MarshalMsg implements msgp.Marshaler -func (z *RuntimeSegment) MarshalMsg(b []byte) (o []byte, err error) { - o = msgp.Require(b, z.Msgsize()) - // check for omitted fields - zb0001Len := uint32(3) - var zb0001Mask uint8 /* 3 bits */ - _ = zb0001Mask - if z.UintMetrics == nil { - zb0001Len-- - zb0001Mask |= 0x1 - } - if z.FloatMetrics == nil { - zb0001Len-- - zb0001Mask |= 0x2 - } - // variable map header, size zb0001Len - o = append(o, 0x80|uint8(zb0001Len)) - - // skip if no fields are to be emitted - if zb0001Len != 0 { - if (zb0001Mask & 0x1) == 0 { // if not omitted - // string "uintMetrics" - o = append(o, 0xab, 0x75, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.UintMetrics))) - for za0001, za0002 := range z.UintMetrics { - o = msgp.AppendString(o, za0001) - o = msgp.AppendUint64(o, za0002) - } - } - if (zb0001Mask & 0x2) == 0 { // if not omitted - // string "floatMetrics" - o = append(o, 0xac, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.FloatMetrics))) - for za0003, za0004 := range z.FloatMetrics { - o = msgp.AppendString(o, za0003) - o = msgp.AppendFloat64(o, za0004) + // Clear omitted fields. + if zb0006Mask != 0x3 { + if (zb0006Mask & 0x1) == 0 { + z.LastMinute.Actions = nil + } + if (zb0006Mask & 0x2) == 0 { + z.LastMinute.ILM = nil + } } - } - // string "n" - o = append(o, 0xa1, 0x6e) - o = msgp.AppendInt(o, z.N) - } - return -} - -// UnmarshalMsg implements msgp.Unmarshaler -func (z *RuntimeSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { - var field []byte - _ = field - var zb0001 uint32 - zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - var zb0001Mask uint8 /* 2 bits */ - _ = zb0001Mask - for zb0001 > 0 { - zb0001-- - field, bts, err = msgp.ReadMapKeyZC(bts) - if err != nil { - err = msgp.WrapError(err) - return - } - switch msgp.UnsafeString(field) { - case "uintMetrics": - var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + case "last_day": + var zb0009 uint32 + zb0009, bts, err = msgp.ReadMapHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "LastDay") return } - if z.UintMetrics == nil { - z.UintMetrics = make(map[string]uint64, zb0002) - } else if len(z.UintMetrics) > 0 { - clear(z.UintMetrics) + if z.LastDay == nil { + z.LastDay = make(map[string]SegmentedActions, zb0009) + } else if len(z.LastDay) > 0 { + clear(z.LastDay) } - for zb0002 > 0 { - var za0002 uint64 - zb0002-- - var za0001 string - za0001, bts, err = msgp.ReadStringBytes(bts) + for zb0009 > 0 { + var za0013 SegmentedActions + zb0009-- + var za0012 string + za0012, bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics") + err = msgp.WrapError(err, "LastDay") return } - za0002, bts, err = msgp.ReadUint64Bytes(bts) + bts, err = (*Segmented[TimedAction, *TimedAction])(&za0013).UnmarshalMsg(bts) if err != nil { - err = msgp.WrapError(err, "UintMetrics", za0001) + err = msgp.WrapError(err, "LastDay", za0012) return } - z.UintMetrics[za0001] = za0002 + z.LastDay[za0012] = za0013 } - zb0001Mask |= 0x1 - case "floatMetrics": - var zb0003 uint32 - zb0003, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x8 + case "active": + var zb0010 uint32 + zb0010, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "ActivePaths") return } - if z.FloatMetrics == nil { - z.FloatMetrics = make(map[string]float64, zb0003) - } else if len(z.FloatMetrics) > 0 { - clear(z.FloatMetrics) + if cap(z.ActivePaths) >= int(zb0010) { + z.ActivePaths = (z.ActivePaths)[:zb0010] + } else { + z.ActivePaths = make([]string, zb0010) } - for zb0003 > 0 { - var za0004 float64 - zb0003-- - var za0003 string - za0003, bts, err = msgp.ReadStringBytes(bts) + for za0014 := range z.ActivePaths { + z.ActivePaths[za0014], bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics") + err = msgp.WrapError(err, "ActivePaths", za0014) return } - za0004, bts, err = msgp.ReadFloat64Bytes(bts) + } + zb0001Mask |= 0x10 + case "excessive": + var zb0011 uint32 + zb0011, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ExcessivePrefixes") + return + } + if cap(z.ExcessivePrefixes) >= int(zb0011) { + z.ExcessivePrefixes = (z.ExcessivePrefixes)[:zb0011] + } else { + z.ExcessivePrefixes = make([]string, zb0011) + } + for za0015 := range z.ExcessivePrefixes { + z.ExcessivePrefixes[za0015], bts, err = msgp.ReadStringBytes(bts) if err != nil { - err = msgp.WrapError(err, "FloatMetrics", za0003) + err = msgp.WrapError(err, "ExcessivePrefixes", za0015) return } - z.FloatMetrics[za0003] = za0004 } - zb0001Mask |= 0x2 - case "n": - z.N, bts, err = msgp.ReadIntBytes(bts) + zb0001Mask |= 0x20 + case "ilm_expiry_pending_tasks": + z.ILMExpiryPendingTasks, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "N") + err = msgp.WrapError(err, "ILMExpiryPendingTasks") + return + } + zb0001Mask |= 0x40 + case "ilm_expiry_tasks_cleanup": + bts, err = z.ILMExpiryTasksServiced.UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "ILMExpiryTasksServiced") + return + } + case "queued_for_expiry": + var zb0012 uint32 + zb0012, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "QueuedForExpiry") return } + if cap(z.QueuedForExpiry) >= int(zb0012) { + z.QueuedForExpiry = (z.QueuedForExpiry)[:zb0012] + } else { + z.QueuedForExpiry = make([]ExpiryObject, zb0012) + } + for za0016 := range z.QueuedForExpiry { + bts, err = z.QueuedForExpiry[za0016].UnmarshalMsg(bts) + if err != nil { + err = msgp.WrapError(err, "QueuedForExpiry", za0016) + return + } + } + zb0001Mask |= 0x80 default: bts, err = msgp.Skip(bts) if err != nil { @@ -30571,12 +32932,30 @@ func (z *RuntimeSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0x3 { + if zb0001Mask != 0xff { if (zb0001Mask & 0x1) == 0 { - z.UintMetrics = nil + z.PerBucketStats = nil } if (zb0001Mask & 0x2) == 0 { - z.FloatMetrics = nil + z.LifeTimeOps = nil + } + if (zb0001Mask & 0x4) == 0 { + z.LifeTimeILM = nil + } + if (zb0001Mask & 0x8) == 0 { + z.LastDay = nil + } + if (zb0001Mask & 0x10) == 0 { + z.ActivePaths = nil + } + if (zb0001Mask & 0x20) == 0 { + z.ExcessivePrefixes = nil + } + if (zb0001Mask & 0x40) == 0 { + z.ILMExpiryPendingTasks = 0 + } + if (zb0001Mask & 0x80) == 0 { + z.QueuedForExpiry = nil } } o = bts @@ -30584,27 +32963,69 @@ func (z *RuntimeSegment) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *RuntimeSegment) Msgsize() (s int) { - s = 1 + 12 + msgp.MapHeaderSize - if z.UintMetrics != nil { - for za0001, za0002 := range z.UintMetrics { +func (z *ScannerMetrics) Msgsize() (s int) { + s = 1 + 10 + msgp.TimeSize + 16 + msgp.IntSize + 17 + msgp.MapHeaderSize + if z.PerBucketStats != nil { + for za0001, za0002 := range z.PerBucketStats { _ = za0002 - s += msgp.StringPrefixSize + len(za0001) + msgp.Uint64Size + s += msgp.StringPrefixSize + len(za0001) + msgp.ArrayHeaderSize + for za0003 := range za0002 { + s += za0002[za0003].Msgsize() + } + } + } + s += 14 + msgp.MapHeaderSize + if z.LifeTimeOps != nil { + for za0004, za0005 := range z.LifeTimeOps { + _ = za0005 + s += msgp.StringPrefixSize + len(za0004) + msgp.Uint64Size + } + } + s += 8 + msgp.MapHeaderSize + if z.LifeTimeILM != nil { + for za0006, za0007 := range z.LifeTimeILM { + _ = za0007 + s += msgp.StringPrefixSize + len(za0006) + msgp.Uint64Size + } + } + s += 12 + 1 + 8 + msgp.MapHeaderSize + if z.LastMinute.Actions != nil { + for za0008, za0009 := range z.LastMinute.Actions { + _ = za0009 + s += msgp.StringPrefixSize + len(za0008) + za0009.Msgsize() + } + } + s += 4 + msgp.MapHeaderSize + if z.LastMinute.ILM != nil { + for za0010, za0011 := range z.LastMinute.ILM { + _ = za0011 + s += msgp.StringPrefixSize + len(za0010) + za0011.Msgsize() } } - s += 13 + msgp.MapHeaderSize - if z.FloatMetrics != nil { - for za0003, za0004 := range z.FloatMetrics { - _ = za0004 - s += msgp.StringPrefixSize + len(za0003) + msgp.Float64Size + s += 9 + msgp.MapHeaderSize + if z.LastDay != nil { + for za0012, za0013 := range z.LastDay { + _ = za0013 + s += msgp.StringPrefixSize + len(za0012) + (*Segmented[TimedAction, *TimedAction])(&za0013).Msgsize() } } - s += 2 + msgp.IntSize + s += 7 + msgp.ArrayHeaderSize + for za0014 := range z.ActivePaths { + s += msgp.StringPrefixSize + len(z.ActivePaths[za0014]) + } + s += 10 + msgp.ArrayHeaderSize + for za0015 := range z.ExcessivePrefixes { + s += msgp.StringPrefixSize + len(z.ExcessivePrefixes[za0015]) + } + s += 25 + msgp.IntSize + 25 + z.ILMExpiryTasksServiced.Msgsize() + 18 + msgp.ArrayHeaderSize + for za0016 := range z.QueuedForExpiry { + s += z.QueuedForExpiry[za0016].Msgsize() + } return } // DecodeMsg implements msgp.Decodable -func (z *ScannerMetrics) DecodeMsg(dc *msgp.Reader) (err error) { +func (z *SegmentedBucketStats) DecodeMsg(dc *msgp.Reader) (err error) { var field []byte _ = field var zb0001 uint32 @@ -30613,7 +33034,7 @@ func (z *ScannerMetrics) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 8 bits */ + var zb0001Mask uint16 /* 9 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -30623,312 +33044,198 @@ func (z *ScannerMetrics) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "collected": - z.CollectedAt, err = dc.ReadTimeUTC() + case "intervalSecs": + z.IntervalSecs, err = dc.ReadInt() if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "IntervalSecs") return } - case "ongoing_buckets": - z.OngoingBuckets, err = dc.ReadInt() + case "firstTime": + z.FirstTime, err = dc.ReadTimeUTC() if err != nil { - err = msgp.WrapError(err, "OngoingBuckets") + err = msgp.WrapError(err, "FirstTime") return } - case "per_bucket_stats": + case "requests": var zb0002 uint32 - zb0002, err = dc.ReadMapHeader() + zb0002, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "PerBucketStats") + err = msgp.WrapError(err, "Requests") return } - if z.PerBucketStats == nil { - z.PerBucketStats = make(map[string][]BucketScanInfo, zb0002) - } else if len(z.PerBucketStats) > 0 { - clear(z.PerBucketStats) + if cap(z.Requests) >= int(zb0002) { + z.Requests = (z.Requests)[:zb0002] + } else { + z.Requests = make([]int64, zb0002) } - for zb0002 > 0 { - zb0002-- - var za0001 string - za0001, err = dc.ReadString() + for za0001 := range z.Requests { + z.Requests[za0001], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "PerBucketStats") - return - } - var za0002 []BucketScanInfo - var zb0003 uint32 - zb0003, err = dc.ReadArrayHeader() - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001) + err = msgp.WrapError(err, "Requests", za0001) return } - if cap(za0002) >= int(zb0003) { - za0002 = (za0002)[:zb0003] - } else { - za0002 = make([]BucketScanInfo, zb0003) - } - for za0003 := range za0002 { - err = za0002[za0003].DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) - return - } - } - z.PerBucketStats[za0001] = za0002 } zb0001Mask |= 0x1 - case "life_time_ops": - var zb0004 uint32 - zb0004, err = dc.ReadMapHeader() + case "gets": + var zb0003 uint32 + zb0003, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") + err = msgp.WrapError(err, "Gets") return } - if z.LifeTimeOps == nil { - z.LifeTimeOps = make(map[string]uint64, zb0004) - } else if len(z.LifeTimeOps) > 0 { - clear(z.LifeTimeOps) + if cap(z.Gets) >= int(zb0003) { + z.Gets = (z.Gets)[:zb0003] + } else { + z.Gets = make([]int64, zb0003) } - for zb0004 > 0 { - zb0004-- - var za0004 string - za0004, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") - return - } - var za0005 uint64 - za0005, err = dc.ReadUint64() + for za0002 := range z.Gets { + z.Gets[za0002], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "LifeTimeOps", za0004) + err = msgp.WrapError(err, "Gets", za0002) return } - z.LifeTimeOps[za0004] = za0005 } zb0001Mask |= 0x2 - case "ilm_ops": - var zb0005 uint32 - zb0005, err = dc.ReadMapHeader() + case "puts": + var zb0004 uint32 + zb0004, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") + err = msgp.WrapError(err, "Puts") return } - if z.LifeTimeILM == nil { - z.LifeTimeILM = make(map[string]uint64, zb0005) - } else if len(z.LifeTimeILM) > 0 { - clear(z.LifeTimeILM) + if cap(z.Puts) >= int(zb0004) { + z.Puts = (z.Puts)[:zb0004] + } else { + z.Puts = make([]int64, zb0004) } - for zb0005 > 0 { - zb0005-- - var za0006 string - za0006, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") - return - } - var za0007 uint64 - za0007, err = dc.ReadUint64() + for za0003 := range z.Puts { + z.Puts[za0003], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "LifeTimeILM", za0006) + err = msgp.WrapError(err, "Puts", za0003) return } - z.LifeTimeILM[za0006] = za0007 } zb0001Mask |= 0x4 - case "last_minute": - var zb0006 uint32 - zb0006, err = dc.ReadMapHeader() + case "lists": + var zb0005 uint32 + zb0005, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "Lists") return } - var zb0006Mask uint8 /* 2 bits */ - _ = zb0006Mask - for zb0006 > 0 { - zb0006-- - field, err = dc.ReadMapKeyPtr() + if cap(z.Lists) >= int(zb0005) { + z.Lists = (z.Lists)[:zb0005] + } else { + z.Lists = make([]int64, zb0005) + } + for za0004 := range z.Lists { + z.Lists[za0004], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "Lists", za0004) return } - switch msgp.UnsafeString(field) { - case "actions": - var zb0007 uint32 - zb0007, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - if z.LastMinute.Actions == nil { - z.LastMinute.Actions = make(map[string]TimedAction, zb0007) - } else if len(z.LastMinute.Actions) > 0 { - clear(z.LastMinute.Actions) - } - for zb0007 > 0 { - zb0007-- - var za0008 string - za0008, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - var za0009 TimedAction - err = za0009.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions", za0008) - return - } - z.LastMinute.Actions[za0008] = za0009 - } - zb0006Mask |= 0x1 - case "ilm": - var zb0008 uint32 - zb0008, err = dc.ReadMapHeader() - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") - return - } - if z.LastMinute.ILM == nil { - z.LastMinute.ILM = make(map[string]TimedAction, zb0008) - } else if len(z.LastMinute.ILM) > 0 { - clear(z.LastMinute.ILM) - } - for zb0008 > 0 { - zb0008-- - var za0010 string - za0010, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") - return - } - var za0011 TimedAction - err = za0011.DecodeMsg(dc) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM", za0010) - return - } - z.LastMinute.ILM[za0010] = za0011 - } - zb0006Mask |= 0x2 - default: - err = dc.Skip() - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - } - } - // Clear omitted fields. - if zb0006Mask != 0x3 { - if (zb0006Mask & 0x1) == 0 { - z.LastMinute.Actions = nil - } - if (zb0006Mask & 0x2) == 0 { - z.LastMinute.ILM = nil - } } - case "last_day": - var zb0009 uint32 - zb0009, err = dc.ReadMapHeader() + zb0001Mask |= 0x8 + case "errors": + var zb0006 uint32 + zb0006, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Errors") return } - if z.LastDay == nil { - z.LastDay = make(map[string]SegmentedActions, zb0009) - } else if len(z.LastDay) > 0 { - clear(z.LastDay) + if cap(z.Errors) >= int(zb0006) { + z.Errors = (z.Errors)[:zb0006] + } else { + z.Errors = make([]int64, zb0006) } - for zb0009 > 0 { - zb0009-- - var za0012 string - za0012, err = dc.ReadString() - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } - var za0013 SegmentedActions - err = (*Segmented[TimedAction, *TimedAction])(&za0013).DecodeMsg(dc) + for za0005 := range z.Errors { + z.Errors[za0005], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "LastDay", za0012) + err = msgp.WrapError(err, "Errors", za0005) return } - z.LastDay[za0012] = za0013 } - zb0001Mask |= 0x8 - case "active": - var zb0010 uint32 - zb0010, err = dc.ReadArrayHeader() + zb0001Mask |= 0x10 + case "errors4xx": + var zb0007 uint32 + zb0007, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "ActivePaths") + err = msgp.WrapError(err, "Errors4xx") return } - if cap(z.ActivePaths) >= int(zb0010) { - z.ActivePaths = (z.ActivePaths)[:zb0010] + if cap(z.Errors4xx) >= int(zb0007) { + z.Errors4xx = (z.Errors4xx)[:zb0007] } else { - z.ActivePaths = make([]string, zb0010) + z.Errors4xx = make([]int64, zb0007) } - for za0014 := range z.ActivePaths { - z.ActivePaths[za0014], err = dc.ReadString() + for za0006 := range z.Errors4xx { + z.Errors4xx[za0006], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "ActivePaths", za0014) + err = msgp.WrapError(err, "Errors4xx", za0006) return } } - zb0001Mask |= 0x10 - case "excessive": - var zb0011 uint32 - zb0011, err = dc.ReadArrayHeader() + zb0001Mask |= 0x20 + case "errors5xx": + var zb0008 uint32 + zb0008, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes") + err = msgp.WrapError(err, "Errors5xx") return } - if cap(z.ExcessivePrefixes) >= int(zb0011) { - z.ExcessivePrefixes = (z.ExcessivePrefixes)[:zb0011] + if cap(z.Errors5xx) >= int(zb0008) { + z.Errors5xx = (z.Errors5xx)[:zb0008] } else { - z.ExcessivePrefixes = make([]string, zb0011) + z.Errors5xx = make([]int64, zb0008) } - for za0015 := range z.ExcessivePrefixes { - z.ExcessivePrefixes[za0015], err = dc.ReadString() + for za0007 := range z.Errors5xx { + z.Errors5xx[za0007], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes", za0015) + err = msgp.WrapError(err, "Errors5xx", za0007) return } } - zb0001Mask |= 0x20 - case "ilm_expiry_pending_tasks": - z.ILMExpiryPendingTasks, err = dc.ReadInt() - if err != nil { - err = msgp.WrapError(err, "ILMExpiryPendingTasks") - return - } zb0001Mask |= 0x40 - case "ilm_expiry_tasks_cleanup": - err = z.ILMExpiryTasksServiced.DecodeMsg(dc) + case "bytesIn": + var zb0009 uint32 + zb0009, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "ILMExpiryTasksServiced") + err = msgp.WrapError(err, "BytesIn") return } - case "queued_for_expiry": - var zb0012 uint32 - zb0012, err = dc.ReadArrayHeader() + if cap(z.BytesIn) >= int(zb0009) { + z.BytesIn = (z.BytesIn)[:zb0009] + } else { + z.BytesIn = make([]int64, zb0009) + } + for za0008 := range z.BytesIn { + z.BytesIn[za0008], err = dc.ReadInt64() + if err != nil { + err = msgp.WrapError(err, "BytesIn", za0008) + return + } + } + zb0001Mask |= 0x80 + case "bytesOut": + var zb0010 uint32 + zb0010, err = dc.ReadArrayHeader() if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry") + err = msgp.WrapError(err, "BytesOut") return } - if cap(z.QueuedForExpiry) >= int(zb0012) { - z.QueuedForExpiry = (z.QueuedForExpiry)[:zb0012] + if cap(z.BytesOut) >= int(zb0010) { + z.BytesOut = (z.BytesOut)[:zb0010] } else { - z.QueuedForExpiry = make([]ExpiryObject, zb0012) + z.BytesOut = make([]int64, zb0010) } - for za0016 := range z.QueuedForExpiry { - err = z.QueuedForExpiry[za0016].DecodeMsg(dc) + for za0009 := range z.BytesOut { + z.BytesOut[za0009], err = dc.ReadInt64() if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry", za0016) + err = msgp.WrapError(err, "BytesOut", za0009) return } } - zb0001Mask |= 0x80 + zb0001Mask |= 0x100 default: err = dc.Skip() if err != nil { @@ -30938,72 +33245,79 @@ func (z *ScannerMetrics) DecodeMsg(dc *msgp.Reader) (err error) { } } // Clear omitted fields. - if zb0001Mask != 0xff { + if zb0001Mask != 0x1ff { if (zb0001Mask & 0x1) == 0 { - z.PerBucketStats = nil + z.Requests = nil } if (zb0001Mask & 0x2) == 0 { - z.LifeTimeOps = nil + z.Gets = nil } if (zb0001Mask & 0x4) == 0 { - z.LifeTimeILM = nil + z.Puts = nil } if (zb0001Mask & 0x8) == 0 { - z.LastDay = nil + z.Lists = nil } if (zb0001Mask & 0x10) == 0 { - z.ActivePaths = nil + z.Errors = nil } if (zb0001Mask & 0x20) == 0 { - z.ExcessivePrefixes = nil + z.Errors4xx = nil } if (zb0001Mask & 0x40) == 0 { - z.ILMExpiryPendingTasks = 0 + z.Errors5xx = nil } if (zb0001Mask & 0x80) == 0 { - z.QueuedForExpiry = nil + z.BytesIn = nil + } + if (zb0001Mask & 0x100) == 0 { + z.BytesOut = nil } } return } // EncodeMsg implements msgp.Encodable -func (z *ScannerMetrics) EncodeMsg(en *msgp.Writer) (err error) { +func (z *SegmentedBucketStats) EncodeMsg(en *msgp.Writer) (err error) { // check for omitted fields - zb0001Len := uint32(12) - var zb0001Mask uint16 /* 12 bits */ + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ _ = zb0001Mask - if z.PerBucketStats == nil { + if z.Requests == nil { zb0001Len-- zb0001Mask |= 0x4 } - if z.LifeTimeOps == nil { + if z.Gets == nil { zb0001Len-- zb0001Mask |= 0x8 } - if z.LifeTimeILM == nil { + if z.Puts == nil { zb0001Len-- zb0001Mask |= 0x10 } - if z.LastDay == nil { + if z.Lists == nil { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.Errors == nil { zb0001Len-- zb0001Mask |= 0x40 } - if z.ActivePaths == nil { + if z.Errors4xx == nil { zb0001Len-- zb0001Mask |= 0x80 } - if z.ExcessivePrefixes == nil { + if z.Errors5xx == nil { zb0001Len-- zb0001Mask |= 0x100 } - if z.ILMExpiryPendingTasks == 0 { + if z.BytesIn == nil { zb0001Len-- zb0001Mask |= 0x200 } - if z.QueuedForExpiry == nil { + if z.BytesOut == nil { zb0001Len-- - zb0001Mask |= 0x800 + zb0001Mask |= 0x400 } // variable map header, size zb0001Len err = en.Append(0x80 | uint8(zb0001Len)) @@ -31013,278 +33327,193 @@ func (z *ScannerMetrics) EncodeMsg(en *msgp.Writer) (err error) { // skip if no fields are to be emitted if zb0001Len != 0 { - // write "collected" - err = en.Append(0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) + // write "intervalSecs" + err = en.Append(0xac, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73) if err != nil { return } - err = en.WriteTime(z.CollectedAt) + err = en.WriteInt(z.IntervalSecs) if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "IntervalSecs") return } - // write "ongoing_buckets" - err = en.Append(0xaf, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) + // write "firstTime" + err = en.Append(0xa9, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65) if err != nil { return } - err = en.WriteInt(z.OngoingBuckets) + err = en.WriteTime(z.FirstTime) if err != nil { - err = msgp.WrapError(err, "OngoingBuckets") + err = msgp.WrapError(err, "FirstTime") return } if (zb0001Mask & 0x4) == 0 { // if not omitted - // write "per_bucket_stats" - err = en.Append(0xb0, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73) + // write "requests" + err = en.Append(0xa8, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.PerBucketStats))) + err = en.WriteArrayHeader(uint32(len(z.Requests))) if err != nil { - err = msgp.WrapError(err, "PerBucketStats") + err = msgp.WrapError(err, "Requests") return } - for za0001, za0002 := range z.PerBucketStats { - err = en.WriteString(za0001) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats") - return - } - err = en.WriteArrayHeader(uint32(len(za0002))) + for za0001 := range z.Requests { + err = en.WriteInt64(z.Requests[za0001]) if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001) + err = msgp.WrapError(err, "Requests", za0001) return } - for za0003 := range za0002 { - err = za0002[za0003].EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) - return - } - } } } if (zb0001Mask & 0x8) == 0 { // if not omitted - // write "life_time_ops" - err = en.Append(0xad, 0x6c, 0x69, 0x66, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) + // write "gets" + err = en.Append(0xa4, 0x67, 0x65, 0x74, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LifeTimeOps))) + err = en.WriteArrayHeader(uint32(len(z.Gets))) if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") + err = msgp.WrapError(err, "Gets") return } - for za0004, za0005 := range z.LifeTimeOps { - err = en.WriteString(za0004) + for za0002 := range z.Gets { + err = en.WriteInt64(z.Gets[za0002]) if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") - return - } - err = en.WriteUint64(za0005) - if err != nil { - err = msgp.WrapError(err, "LifeTimeOps", za0004) + err = msgp.WrapError(err, "Gets", za0002) return } } } if (zb0001Mask & 0x10) == 0 { // if not omitted - // write "ilm_ops" - err = en.Append(0xa7, 0x69, 0x6c, 0x6d, 0x5f, 0x6f, 0x70, 0x73) + // write "puts" + err = en.Append(0xa4, 0x70, 0x75, 0x74, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LifeTimeILM))) + err = en.WriteArrayHeader(uint32(len(z.Puts))) if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") + err = msgp.WrapError(err, "Puts") return } - for za0006, za0007 := range z.LifeTimeILM { - err = en.WriteString(za0006) - if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") - return - } - err = en.WriteUint64(za0007) + for za0003 := range z.Puts { + err = en.WriteInt64(z.Puts[za0003]) if err != nil { - err = msgp.WrapError(err, "LifeTimeILM", za0006) + err = msgp.WrapError(err, "Puts", za0003) return } } } - // write "last_minute" - err = en.Append(0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) - if err != nil { - return - } - // check for omitted fields - zb0002Len := uint32(2) - var zb0002Mask uint8 /* 2 bits */ - _ = zb0002Mask - if z.LastMinute.Actions == nil { - zb0002Len-- - zb0002Mask |= 0x1 - } - if z.LastMinute.ILM == nil { - zb0002Len-- - zb0002Mask |= 0x2 - } - // variable map header, size zb0002Len - err = en.Append(0x80 | uint8(zb0002Len)) - if err != nil { - return - } - - // skip if no fields are to be emitted - if zb0002Len != 0 { - if (zb0002Mask & 0x1) == 0 { // if not omitted - // write "actions" - err = en.Append(0xa7, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73) - if err != nil { - return - } - err = en.WriteMapHeader(uint32(len(z.LastMinute.Actions))) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - for za0008, za0009 := range z.LastMinute.Actions { - err = en.WriteString(za0008) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - err = za0009.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions", za0008) - return - } - } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // write "lists" + err = en.Append(0xa5, 0x6c, 0x69, 0x73, 0x74, 0x73) + if err != nil { + return } - if (zb0002Mask & 0x2) == 0 { // if not omitted - // write "ilm" - err = en.Append(0xa3, 0x69, 0x6c, 0x6d) - if err != nil { - return - } - err = en.WriteMapHeader(uint32(len(z.LastMinute.ILM))) + err = en.WriteArrayHeader(uint32(len(z.Lists))) + if err != nil { + err = msgp.WrapError(err, "Lists") + return + } + for za0004 := range z.Lists { + err = en.WriteInt64(z.Lists[za0004]) if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") + err = msgp.WrapError(err, "Lists", za0004) return } - for za0010, za0011 := range z.LastMinute.ILM { - err = en.WriteString(za0010) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") - return - } - err = za0011.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM", za0010) - return - } - } } } if (zb0001Mask & 0x40) == 0 { // if not omitted - // write "last_day" - err = en.Append(0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) + // write "errors" + err = en.Append(0xa6, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73) if err != nil { return } - err = en.WriteMapHeader(uint32(len(z.LastDay))) + err = en.WriteArrayHeader(uint32(len(z.Errors))) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Errors") return } - for za0012, za0013 := range z.LastDay { - err = en.WriteString(za0012) - if err != nil { - err = msgp.WrapError(err, "LastDay") - return - } - err = (*Segmented[TimedAction, *TimedAction])(&za0013).EncodeMsg(en) + for za0005 := range z.Errors { + err = en.WriteInt64(z.Errors[za0005]) if err != nil { - err = msgp.WrapError(err, "LastDay", za0012) + err = msgp.WrapError(err, "Errors", za0005) return } } } if (zb0001Mask & 0x80) == 0 { // if not omitted - // write "active" - err = en.Append(0xa6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65) + // write "errors4xx" + err = en.Append(0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x34, 0x78, 0x78) if err != nil { return } - err = en.WriteArrayHeader(uint32(len(z.ActivePaths))) + err = en.WriteArrayHeader(uint32(len(z.Errors4xx))) if err != nil { - err = msgp.WrapError(err, "ActivePaths") + err = msgp.WrapError(err, "Errors4xx") return } - for za0014 := range z.ActivePaths { - err = en.WriteString(z.ActivePaths[za0014]) + for za0006 := range z.Errors4xx { + err = en.WriteInt64(z.Errors4xx[za0006]) if err != nil { - err = msgp.WrapError(err, "ActivePaths", za0014) + err = msgp.WrapError(err, "Errors4xx", za0006) return } } } if (zb0001Mask & 0x100) == 0 { // if not omitted - // write "excessive" - err = en.Append(0xa9, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65) + // write "errors5xx" + err = en.Append(0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x35, 0x78, 0x78) if err != nil { return } - err = en.WriteArrayHeader(uint32(len(z.ExcessivePrefixes))) + err = en.WriteArrayHeader(uint32(len(z.Errors5xx))) if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes") + err = msgp.WrapError(err, "Errors5xx") return } - for za0015 := range z.ExcessivePrefixes { - err = en.WriteString(z.ExcessivePrefixes[za0015]) + for za0007 := range z.Errors5xx { + err = en.WriteInt64(z.Errors5xx[za0007]) if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes", za0015) + err = msgp.WrapError(err, "Errors5xx", za0007) return } } } if (zb0001Mask & 0x200) == 0 { // if not omitted - // write "ilm_expiry_pending_tasks" - err = en.Append(0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73) + // write "bytesIn" + err = en.Append(0xa7, 0x62, 0x79, 0x74, 0x65, 0x73, 0x49, 0x6e) if err != nil { return } - err = en.WriteInt(z.ILMExpiryPendingTasks) + err = en.WriteArrayHeader(uint32(len(z.BytesIn))) if err != nil { - err = msgp.WrapError(err, "ILMExpiryPendingTasks") + err = msgp.WrapError(err, "BytesIn") return } + for za0008 := range z.BytesIn { + err = en.WriteInt64(z.BytesIn[za0008]) + if err != nil { + err = msgp.WrapError(err, "BytesIn", za0008) + return + } + } } - // write "ilm_expiry_tasks_cleanup" - err = en.Append(0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70) - if err != nil { - return - } - err = z.ILMExpiryTasksServiced.EncodeMsg(en) - if err != nil { - err = msgp.WrapError(err, "ILMExpiryTasksServiced") - return - } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // write "queued_for_expiry" - err = en.Append(0xb1, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79) + if (zb0001Mask & 0x400) == 0 { // if not omitted + // write "bytesOut" + err = en.Append(0xa8, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x75, 0x74) if err != nil { return } - err = en.WriteArrayHeader(uint32(len(z.QueuedForExpiry))) + err = en.WriteArrayHeader(uint32(len(z.BytesOut))) if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry") + err = msgp.WrapError(err, "BytesOut") return } - for za0016 := range z.QueuedForExpiry { - err = z.QueuedForExpiry[za0016].EncodeMsg(en) + for za0009 := range z.BytesOut { + err = en.WriteInt64(z.BytesOut[za0009]) if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry", za0016) + err = msgp.WrapError(err, "BytesOut", za0009) return } } @@ -31294,186 +33523,129 @@ func (z *ScannerMetrics) EncodeMsg(en *msgp.Writer) (err error) { } // MarshalMsg implements msgp.Marshaler -func (z *ScannerMetrics) MarshalMsg(b []byte) (o []byte, err error) { +func (z *SegmentedBucketStats) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) // check for omitted fields - zb0001Len := uint32(12) - var zb0001Mask uint16 /* 12 bits */ + zb0001Len := uint32(11) + var zb0001Mask uint16 /* 11 bits */ _ = zb0001Mask - if z.PerBucketStats == nil { + if z.Requests == nil { zb0001Len-- zb0001Mask |= 0x4 } - if z.LifeTimeOps == nil { + if z.Gets == nil { zb0001Len-- zb0001Mask |= 0x8 } - if z.LifeTimeILM == nil { + if z.Puts == nil { zb0001Len-- zb0001Mask |= 0x10 } - if z.LastDay == nil { + if z.Lists == nil { + zb0001Len-- + zb0001Mask |= 0x20 + } + if z.Errors == nil { zb0001Len-- zb0001Mask |= 0x40 } - if z.ActivePaths == nil { + if z.Errors4xx == nil { zb0001Len-- zb0001Mask |= 0x80 } - if z.ExcessivePrefixes == nil { + if z.Errors5xx == nil { zb0001Len-- zb0001Mask |= 0x100 } - if z.ILMExpiryPendingTasks == 0 { + if z.BytesIn == nil { zb0001Len-- zb0001Mask |= 0x200 } - if z.QueuedForExpiry == nil { + if z.BytesOut == nil { zb0001Len-- - zb0001Mask |= 0x800 + zb0001Mask |= 0x400 } // variable map header, size zb0001Len o = append(o, 0x80|uint8(zb0001Len)) // skip if no fields are to be emitted if zb0001Len != 0 { - // string "collected" - o = append(o, 0xa9, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64) - o = msgp.AppendTime(o, z.CollectedAt) - // string "ongoing_buckets" - o = append(o, 0xaf, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73) - o = msgp.AppendInt(o, z.OngoingBuckets) + // string "intervalSecs" + o = append(o, 0xac, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73) + o = msgp.AppendInt(o, z.IntervalSecs) + // string "firstTime" + o = append(o, 0xa9, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65) + o = msgp.AppendTime(o, z.FirstTime) if (zb0001Mask & 0x4) == 0 { // if not omitted - // string "per_bucket_stats" - o = append(o, 0xb0, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.PerBucketStats))) - for za0001, za0002 := range z.PerBucketStats { - o = msgp.AppendString(o, za0001) - o = msgp.AppendArrayHeader(o, uint32(len(za0002))) - for za0003 := range za0002 { - o, err = za0002[za0003].MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) - return - } - } + // string "requests" + o = append(o, 0xa8, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Requests))) + for za0001 := range z.Requests { + o = msgp.AppendInt64(o, z.Requests[za0001]) } } if (zb0001Mask & 0x8) == 0 { // if not omitted - // string "life_time_ops" - o = append(o, 0xad, 0x6c, 0x69, 0x66, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.LifeTimeOps))) - for za0004, za0005 := range z.LifeTimeOps { - o = msgp.AppendString(o, za0004) - o = msgp.AppendUint64(o, za0005) + // string "gets" + o = append(o, 0xa4, 0x67, 0x65, 0x74, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Gets))) + for za0002 := range z.Gets { + o = msgp.AppendInt64(o, z.Gets[za0002]) } } if (zb0001Mask & 0x10) == 0 { // if not omitted - // string "ilm_ops" - o = append(o, 0xa7, 0x69, 0x6c, 0x6d, 0x5f, 0x6f, 0x70, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.LifeTimeILM))) - for za0006, za0007 := range z.LifeTimeILM { - o = msgp.AppendString(o, za0006) - o = msgp.AppendUint64(o, za0007) + // string "puts" + o = append(o, 0xa4, 0x70, 0x75, 0x74, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Puts))) + for za0003 := range z.Puts { + o = msgp.AppendInt64(o, z.Puts[za0003]) } } - // string "last_minute" - o = append(o, 0xab, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65) - // check for omitted fields - zb0002Len := uint32(2) - var zb0002Mask uint8 /* 2 bits */ - _ = zb0002Mask - if z.LastMinute.Actions == nil { - zb0002Len-- - zb0002Mask |= 0x1 - } - if z.LastMinute.ILM == nil { - zb0002Len-- - zb0002Mask |= 0x2 - } - // variable map header, size zb0002Len - o = append(o, 0x80|uint8(zb0002Len)) - - // skip if no fields are to be emitted - if zb0002Len != 0 { - if (zb0002Mask & 0x1) == 0 { // if not omitted - // string "actions" - o = append(o, 0xa7, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73) - o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute.Actions))) - for za0008, za0009 := range z.LastMinute.Actions { - o = msgp.AppendString(o, za0008) - o, err = za0009.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions", za0008) - return - } - } - } - if (zb0002Mask & 0x2) == 0 { // if not omitted - // string "ilm" - o = append(o, 0xa3, 0x69, 0x6c, 0x6d) - o = msgp.AppendMapHeader(o, uint32(len(z.LastMinute.ILM))) - for za0010, za0011 := range z.LastMinute.ILM { - o = msgp.AppendString(o, za0010) - o, err = za0011.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM", za0010) - return - } - } + if (zb0001Mask & 0x20) == 0 { // if not omitted + // string "lists" + o = append(o, 0xa5, 0x6c, 0x69, 0x73, 0x74, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Lists))) + for za0004 := range z.Lists { + o = msgp.AppendInt64(o, z.Lists[za0004]) } } if (zb0001Mask & 0x40) == 0 { // if not omitted - // string "last_day" - o = append(o, 0xa8, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x79) - o = msgp.AppendMapHeader(o, uint32(len(z.LastDay))) - for za0012, za0013 := range z.LastDay { - o = msgp.AppendString(o, za0012) - o, err = (*Segmented[TimedAction, *TimedAction])(&za0013).MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "LastDay", za0012) - return - } + // string "errors" + o = append(o, 0xa6, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.Errors))) + for za0005 := range z.Errors { + o = msgp.AppendInt64(o, z.Errors[za0005]) } } if (zb0001Mask & 0x80) == 0 { // if not omitted - // string "active" - o = append(o, 0xa6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65) - o = msgp.AppendArrayHeader(o, uint32(len(z.ActivePaths))) - for za0014 := range z.ActivePaths { - o = msgp.AppendString(o, z.ActivePaths[za0014]) + // string "errors4xx" + o = append(o, 0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x34, 0x78, 0x78) + o = msgp.AppendArrayHeader(o, uint32(len(z.Errors4xx))) + for za0006 := range z.Errors4xx { + o = msgp.AppendInt64(o, z.Errors4xx[za0006]) } } if (zb0001Mask & 0x100) == 0 { // if not omitted - // string "excessive" - o = append(o, 0xa9, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65) - o = msgp.AppendArrayHeader(o, uint32(len(z.ExcessivePrefixes))) - for za0015 := range z.ExcessivePrefixes { - o = msgp.AppendString(o, z.ExcessivePrefixes[za0015]) + // string "errors5xx" + o = append(o, 0xa9, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x35, 0x78, 0x78) + o = msgp.AppendArrayHeader(o, uint32(len(z.Errors5xx))) + for za0007 := range z.Errors5xx { + o = msgp.AppendInt64(o, z.Errors5xx[za0007]) } } if (zb0001Mask & 0x200) == 0 { // if not omitted - // string "ilm_expiry_pending_tasks" - o = append(o, 0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73) - o = msgp.AppendInt(o, z.ILMExpiryPendingTasks) - } - // string "ilm_expiry_tasks_cleanup" - o = append(o, 0xb8, 0x69, 0x6c, 0x6d, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70) - o, err = z.ILMExpiryTasksServiced.MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "ILMExpiryTasksServiced") - return + // string "bytesIn" + o = append(o, 0xa7, 0x62, 0x79, 0x74, 0x65, 0x73, 0x49, 0x6e) + o = msgp.AppendArrayHeader(o, uint32(len(z.BytesIn))) + for za0008 := range z.BytesIn { + o = msgp.AppendInt64(o, z.BytesIn[za0008]) + } } - if (zb0001Mask & 0x800) == 0 { // if not omitted - // string "queued_for_expiry" - o = append(o, 0xb1, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79) - o = msgp.AppendArrayHeader(o, uint32(len(z.QueuedForExpiry))) - for za0016 := range z.QueuedForExpiry { - o, err = z.QueuedForExpiry[za0016].MarshalMsg(o) - if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry", za0016) - return - } + if (zb0001Mask & 0x400) == 0 { // if not omitted + // string "bytesOut" + o = append(o, 0xa8, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x75, 0x74) + o = msgp.AppendArrayHeader(o, uint32(len(z.BytesOut))) + for za0009 := range z.BytesOut { + o = msgp.AppendInt64(o, z.BytesOut[za0009]) } } } @@ -31481,7 +33653,7 @@ func (z *ScannerMetrics) MarshalMsg(b []byte) (o []byte, err error) { } // UnmarshalMsg implements msgp.Unmarshaler -func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { +func (z *SegmentedBucketStats) UnmarshalMsg(bts []byte) (o []byte, err error) { var field []byte _ = field var zb0001 uint32 @@ -31490,7 +33662,7 @@ func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - var zb0001Mask uint8 /* 8 bits */ + var zb0001Mask uint16 /* 9 bits */ _ = zb0001Mask for zb0001 > 0 { zb0001-- @@ -31500,312 +33672,198 @@ func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "collected": - z.CollectedAt, bts, err = msgp.ReadTimeUTCBytes(bts) + case "intervalSecs": + z.IntervalSecs, bts, err = msgp.ReadIntBytes(bts) if err != nil { - err = msgp.WrapError(err, "CollectedAt") + err = msgp.WrapError(err, "IntervalSecs") return } - case "ongoing_buckets": - z.OngoingBuckets, bts, err = msgp.ReadIntBytes(bts) + case "firstTime": + z.FirstTime, bts, err = msgp.ReadTimeUTCBytes(bts) if err != nil { - err = msgp.WrapError(err, "OngoingBuckets") + err = msgp.WrapError(err, "FirstTime") return } - case "per_bucket_stats": + case "requests": var zb0002 uint32 - zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats") - return - } - if z.PerBucketStats == nil { - z.PerBucketStats = make(map[string][]BucketScanInfo, zb0002) - } else if len(z.PerBucketStats) > 0 { - clear(z.PerBucketStats) - } - for zb0002 > 0 { - var za0002 []BucketScanInfo - zb0002-- - var za0001 string - za0001, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats") - return - } - var zb0003 uint32 - zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001) - return - } - if cap(za0002) >= int(zb0003) { - za0002 = (za0002)[:zb0003] - } else { - za0002 = make([]BucketScanInfo, zb0003) - } - for za0003 := range za0002 { - bts, err = za0002[za0003].UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "PerBucketStats", za0001, za0003) - return - } - } - z.PerBucketStats[za0001] = za0002 - } - zb0001Mask |= 0x1 - case "life_time_ops": - var zb0004 uint32 - zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") - return - } - if z.LifeTimeOps == nil { - z.LifeTimeOps = make(map[string]uint64, zb0004) - } else if len(z.LifeTimeOps) > 0 { - clear(z.LifeTimeOps) - } - for zb0004 > 0 { - var za0005 uint64 - zb0004-- - var za0004 string - za0004, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeOps") - return - } - za0005, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeOps", za0004) - return - } - z.LifeTimeOps[za0004] = za0005 - } - zb0001Mask |= 0x2 - case "ilm_ops": - var zb0005 uint32 - zb0005, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") - return - } - if z.LifeTimeILM == nil { - z.LifeTimeILM = make(map[string]uint64, zb0005) - } else if len(z.LifeTimeILM) > 0 { - clear(z.LifeTimeILM) - } - for zb0005 > 0 { - var za0007 uint64 - zb0005-- - var za0006 string - za0006, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeILM") - return - } - za0007, bts, err = msgp.ReadUint64Bytes(bts) - if err != nil { - err = msgp.WrapError(err, "LifeTimeILM", za0006) - return - } - z.LifeTimeILM[za0006] = za0007 - } - zb0001Mask |= 0x4 - case "last_minute": - var zb0006 uint32 - zb0006, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "Requests") return } - var zb0006Mask uint8 /* 2 bits */ - _ = zb0006Mask - for zb0006 > 0 { - zb0006-- - field, bts, err = msgp.ReadMapKeyZC(bts) + if cap(z.Requests) >= int(zb0002) { + z.Requests = (z.Requests)[:zb0002] + } else { + z.Requests = make([]int64, zb0002) + } + for za0001 := range z.Requests { + z.Requests[za0001], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastMinute") + err = msgp.WrapError(err, "Requests", za0001) return } - switch msgp.UnsafeString(field) { - case "actions": - var zb0007 uint32 - zb0007, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - if z.LastMinute.Actions == nil { - z.LastMinute.Actions = make(map[string]TimedAction, zb0007) - } else if len(z.LastMinute.Actions) > 0 { - clear(z.LastMinute.Actions) - } - for zb0007 > 0 { - var za0009 TimedAction - zb0007-- - var za0008 string - za0008, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions") - return - } - bts, err = za0009.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "Actions", za0008) - return - } - z.LastMinute.Actions[za0008] = za0009 - } - zb0006Mask |= 0x1 - case "ilm": - var zb0008 uint32 - zb0008, bts, err = msgp.ReadMapHeaderBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") - return - } - if z.LastMinute.ILM == nil { - z.LastMinute.ILM = make(map[string]TimedAction, zb0008) - } else if len(z.LastMinute.ILM) > 0 { - clear(z.LastMinute.ILM) - } - for zb0008 > 0 { - var za0011 TimedAction - zb0008-- - var za0010 string - za0010, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM") - return - } - bts, err = za0011.UnmarshalMsg(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute", "ILM", za0010) - return - } - z.LastMinute.ILM[za0010] = za0011 - } - zb0006Mask |= 0x2 - default: - bts, err = msgp.Skip(bts) - if err != nil { - err = msgp.WrapError(err, "LastMinute") - return - } - } } - // Clear omitted fields. - if zb0006Mask != 0x3 { - if (zb0006Mask & 0x1) == 0 { - z.LastMinute.Actions = nil - } - if (zb0006Mask & 0x2) == 0 { - z.LastMinute.ILM = nil + zb0001Mask |= 0x1 + case "gets": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Gets") + return + } + if cap(z.Gets) >= int(zb0003) { + z.Gets = (z.Gets)[:zb0003] + } else { + z.Gets = make([]int64, zb0003) + } + for za0002 := range z.Gets { + z.Gets[za0002], bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Gets", za0002) + return } } - case "last_day": - var zb0009 uint32 - zb0009, bts, err = msgp.ReadMapHeaderBytes(bts) + zb0001Mask |= 0x2 + case "puts": + var zb0004 uint32 + zb0004, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Puts") return } - if z.LastDay == nil { - z.LastDay = make(map[string]SegmentedActions, zb0009) - } else if len(z.LastDay) > 0 { - clear(z.LastDay) + if cap(z.Puts) >= int(zb0004) { + z.Puts = (z.Puts)[:zb0004] + } else { + z.Puts = make([]int64, zb0004) } - for zb0009 > 0 { - var za0013 SegmentedActions - zb0009-- - var za0012 string - za0012, bts, err = msgp.ReadStringBytes(bts) + for za0003 := range z.Puts { + z.Puts[za0003], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastDay") + err = msgp.WrapError(err, "Puts", za0003) return } - bts, err = (*Segmented[TimedAction, *TimedAction])(&za0013).UnmarshalMsg(bts) + } + zb0001Mask |= 0x4 + case "lists": + var zb0005 uint32 + zb0005, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Lists") + return + } + if cap(z.Lists) >= int(zb0005) { + z.Lists = (z.Lists)[:zb0005] + } else { + z.Lists = make([]int64, zb0005) + } + for za0004 := range z.Lists { + z.Lists[za0004], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "LastDay", za0012) + err = msgp.WrapError(err, "Lists", za0004) return } - z.LastDay[za0012] = za0013 } zb0001Mask |= 0x8 - case "active": - var zb0010 uint32 - zb0010, bts, err = msgp.ReadArrayHeaderBytes(bts) + case "errors": + var zb0006 uint32 + zb0006, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ActivePaths") + err = msgp.WrapError(err, "Errors") return } - if cap(z.ActivePaths) >= int(zb0010) { - z.ActivePaths = (z.ActivePaths)[:zb0010] + if cap(z.Errors) >= int(zb0006) { + z.Errors = (z.Errors)[:zb0006] } else { - z.ActivePaths = make([]string, zb0010) + z.Errors = make([]int64, zb0006) } - for za0014 := range z.ActivePaths { - z.ActivePaths[za0014], bts, err = msgp.ReadStringBytes(bts) + for za0005 := range z.Errors { + z.Errors[za0005], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "ActivePaths", za0014) + err = msgp.WrapError(err, "Errors", za0005) return } } zb0001Mask |= 0x10 - case "excessive": - var zb0011 uint32 - zb0011, bts, err = msgp.ReadArrayHeaderBytes(bts) + case "errors4xx": + var zb0007 uint32 + zb0007, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes") + err = msgp.WrapError(err, "Errors4xx") return } - if cap(z.ExcessivePrefixes) >= int(zb0011) { - z.ExcessivePrefixes = (z.ExcessivePrefixes)[:zb0011] + if cap(z.Errors4xx) >= int(zb0007) { + z.Errors4xx = (z.Errors4xx)[:zb0007] } else { - z.ExcessivePrefixes = make([]string, zb0011) + z.Errors4xx = make([]int64, zb0007) } - for za0015 := range z.ExcessivePrefixes { - z.ExcessivePrefixes[za0015], bts, err = msgp.ReadStringBytes(bts) + for za0006 := range z.Errors4xx { + z.Errors4xx[za0006], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "ExcessivePrefixes", za0015) + err = msgp.WrapError(err, "Errors4xx", za0006) return } } zb0001Mask |= 0x20 - case "ilm_expiry_pending_tasks": - z.ILMExpiryPendingTasks, bts, err = msgp.ReadIntBytes(bts) + case "errors5xx": + var zb0008 uint32 + zb0008, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ILMExpiryPendingTasks") + err = msgp.WrapError(err, "Errors5xx") return } + if cap(z.Errors5xx) >= int(zb0008) { + z.Errors5xx = (z.Errors5xx)[:zb0008] + } else { + z.Errors5xx = make([]int64, zb0008) + } + for za0007 := range z.Errors5xx { + z.Errors5xx[za0007], bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "Errors5xx", za0007) + return + } + } zb0001Mask |= 0x40 - case "ilm_expiry_tasks_cleanup": - bts, err = z.ILMExpiryTasksServiced.UnmarshalMsg(bts) + case "bytesIn": + var zb0009 uint32 + zb0009, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "ILMExpiryTasksServiced") + err = msgp.WrapError(err, "BytesIn") return } - case "queued_for_expiry": - var zb0012 uint32 - zb0012, bts, err = msgp.ReadArrayHeaderBytes(bts) + if cap(z.BytesIn) >= int(zb0009) { + z.BytesIn = (z.BytesIn)[:zb0009] + } else { + z.BytesIn = make([]int64, zb0009) + } + for za0008 := range z.BytesIn { + z.BytesIn[za0008], bts, err = msgp.ReadInt64Bytes(bts) + if err != nil { + err = msgp.WrapError(err, "BytesIn", za0008) + return + } + } + zb0001Mask |= 0x80 + case "bytesOut": + var zb0010 uint32 + zb0010, bts, err = msgp.ReadArrayHeaderBytes(bts) if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry") + err = msgp.WrapError(err, "BytesOut") return } - if cap(z.QueuedForExpiry) >= int(zb0012) { - z.QueuedForExpiry = (z.QueuedForExpiry)[:zb0012] + if cap(z.BytesOut) >= int(zb0010) { + z.BytesOut = (z.BytesOut)[:zb0010] } else { - z.QueuedForExpiry = make([]ExpiryObject, zb0012) + z.BytesOut = make([]int64, zb0010) } - for za0016 := range z.QueuedForExpiry { - bts, err = z.QueuedForExpiry[za0016].UnmarshalMsg(bts) + for za0009 := range z.BytesOut { + z.BytesOut[za0009], bts, err = msgp.ReadInt64Bytes(bts) if err != nil { - err = msgp.WrapError(err, "QueuedForExpiry", za0016) + err = msgp.WrapError(err, "BytesOut", za0009) return } } - zb0001Mask |= 0x80 + zb0001Mask |= 0x100 default: bts, err = msgp.Skip(bts) if err != nil { @@ -31815,30 +33873,33 @@ func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } } // Clear omitted fields. - if zb0001Mask != 0xff { + if zb0001Mask != 0x1ff { if (zb0001Mask & 0x1) == 0 { - z.PerBucketStats = nil + z.Requests = nil } if (zb0001Mask & 0x2) == 0 { - z.LifeTimeOps = nil + z.Gets = nil } if (zb0001Mask & 0x4) == 0 { - z.LifeTimeILM = nil + z.Puts = nil } if (zb0001Mask & 0x8) == 0 { - z.LastDay = nil + z.Lists = nil } if (zb0001Mask & 0x10) == 0 { - z.ActivePaths = nil + z.Errors = nil } if (zb0001Mask & 0x20) == 0 { - z.ExcessivePrefixes = nil + z.Errors4xx = nil } if (zb0001Mask & 0x40) == 0 { - z.ILMExpiryPendingTasks = 0 + z.Errors5xx = nil } if (zb0001Mask & 0x80) == 0 { - z.QueuedForExpiry = nil + z.BytesIn = nil + } + if (zb0001Mask & 0x100) == 0 { + z.BytesOut = nil } } o = bts @@ -31846,64 +33907,8 @@ func (z *ScannerMetrics) UnmarshalMsg(bts []byte) (o []byte, err error) { } // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message -func (z *ScannerMetrics) Msgsize() (s int) { - s = 1 + 10 + msgp.TimeSize + 16 + msgp.IntSize + 17 + msgp.MapHeaderSize - if z.PerBucketStats != nil { - for za0001, za0002 := range z.PerBucketStats { - _ = za0002 - s += msgp.StringPrefixSize + len(za0001) + msgp.ArrayHeaderSize - for za0003 := range za0002 { - s += za0002[za0003].Msgsize() - } - } - } - s += 14 + msgp.MapHeaderSize - if z.LifeTimeOps != nil { - for za0004, za0005 := range z.LifeTimeOps { - _ = za0005 - s += msgp.StringPrefixSize + len(za0004) + msgp.Uint64Size - } - } - s += 8 + msgp.MapHeaderSize - if z.LifeTimeILM != nil { - for za0006, za0007 := range z.LifeTimeILM { - _ = za0007 - s += msgp.StringPrefixSize + len(za0006) + msgp.Uint64Size - } - } - s += 12 + 1 + 8 + msgp.MapHeaderSize - if z.LastMinute.Actions != nil { - for za0008, za0009 := range z.LastMinute.Actions { - _ = za0009 - s += msgp.StringPrefixSize + len(za0008) + za0009.Msgsize() - } - } - s += 4 + msgp.MapHeaderSize - if z.LastMinute.ILM != nil { - for za0010, za0011 := range z.LastMinute.ILM { - _ = za0011 - s += msgp.StringPrefixSize + len(za0010) + za0011.Msgsize() - } - } - s += 9 + msgp.MapHeaderSize - if z.LastDay != nil { - for za0012, za0013 := range z.LastDay { - _ = za0013 - s += msgp.StringPrefixSize + len(za0012) + (*Segmented[TimedAction, *TimedAction])(&za0013).Msgsize() - } - } - s += 7 + msgp.ArrayHeaderSize - for za0014 := range z.ActivePaths { - s += msgp.StringPrefixSize + len(z.ActivePaths[za0014]) - } - s += 10 + msgp.ArrayHeaderSize - for za0015 := range z.ExcessivePrefixes { - s += msgp.StringPrefixSize + len(z.ExcessivePrefixes[za0015]) - } - s += 25 + msgp.IntSize + 25 + z.ILMExpiryTasksServiced.Msgsize() + 18 + msgp.ArrayHeaderSize - for za0016 := range z.QueuedForExpiry { - s += z.QueuedForExpiry[za0016].Msgsize() - } +func (z *SegmentedBucketStats) Msgsize() (s int) { + s = 1 + 13 + msgp.IntSize + 10 + msgp.TimeSize + 9 + msgp.ArrayHeaderSize + (len(z.Requests) * (msgp.Int64Size)) + 5 + msgp.ArrayHeaderSize + (len(z.Gets) * (msgp.Int64Size)) + 5 + msgp.ArrayHeaderSize + (len(z.Puts) * (msgp.Int64Size)) + 6 + msgp.ArrayHeaderSize + (len(z.Lists) * (msgp.Int64Size)) + 7 + msgp.ArrayHeaderSize + (len(z.Errors) * (msgp.Int64Size)) + 10 + msgp.ArrayHeaderSize + (len(z.Errors4xx) * (msgp.Int64Size)) + 10 + msgp.ArrayHeaderSize + (len(z.Errors5xx) * (msgp.Int64Size)) + 8 + msgp.ArrayHeaderSize + (len(z.BytesIn) * (msgp.Int64Size)) + 9 + msgp.ArrayHeaderSize + (len(z.BytesOut) * (msgp.Int64Size)) return } diff --git a/metrics_gen_test.go b/metrics_gen_test.go index f5882df1..bbd6d32e 100644 --- a/metrics_gen_test.go +++ b/metrics_gen_test.go @@ -348,6 +348,345 @@ func BenchmarkDecodeBatchJobMetrics(b *testing.B) { } } +func TestMarshalUnmarshalBucketAPIMetrics(t *testing.T) { + v := BucketAPIMetrics{} + bts, err := v.MarshalMsg(nil) + if err != nil { + t.Fatal(err) + } + left, err := v.UnmarshalMsg(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left) + } + + left, err = msgp.Skip(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after Skip(): %q", len(left), left) + } +} + +func BenchmarkMarshalMsgBucketAPIMetrics(b *testing.B) { + v := BucketAPIMetrics{} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.MarshalMsg(nil) + } +} + +func BenchmarkAppendMsgBucketAPIMetrics(b *testing.B) { + v := BucketAPIMetrics{} + bts := make([]byte, 0, v.Msgsize()) + bts, _ = v.MarshalMsg(bts[0:0]) + b.SetBytes(int64(len(bts))) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + bts, _ = v.MarshalMsg(bts[0:0]) + } +} + +func BenchmarkUnmarshalBucketAPIMetrics(b *testing.B) { + v := BucketAPIMetrics{} + bts, _ := v.MarshalMsg(nil) + b.ReportAllocs() + b.SetBytes(int64(len(bts))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := v.UnmarshalMsg(bts) + if err != nil { + b.Fatal(err) + } + } +} + +func TestEncodeDecodeBucketAPIMetrics(t *testing.T) { + v := BucketAPIMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + + m := v.Msgsize() + if buf.Len() > m { + t.Log("WARNING: TestEncodeDecodeBucketAPIMetrics Msgsize() is inaccurate") + } + + vn := BucketAPIMetrics{} + err := msgp.Decode(&buf, &vn) + if err != nil { + t.Error(err) + } + + buf.Reset() + msgp.Encode(&buf, &v) + err = msgp.NewReader(&buf).Skip() + if err != nil { + t.Error(err) + } +} + +func BenchmarkEncodeBucketAPIMetrics(b *testing.B) { + v := BucketAPIMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + en := msgp.NewWriter(msgp.Nowhere) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.EncodeMsg(en) + } + en.Flush() +} + +func BenchmarkDecodeBucketAPIMetrics(b *testing.B) { + v := BucketAPIMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + rd := msgp.NewEndlessReader(buf.Bytes(), b) + dc := msgp.NewReader(rd) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + err := v.DecodeMsg(dc) + if err != nil { + b.Fatal(err) + } + } +} + +func TestMarshalUnmarshalBucketMetrics(t *testing.T) { + v := BucketMetrics{} + bts, err := v.MarshalMsg(nil) + if err != nil { + t.Fatal(err) + } + left, err := v.UnmarshalMsg(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left) + } + + left, err = msgp.Skip(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after Skip(): %q", len(left), left) + } +} + +func BenchmarkMarshalMsgBucketMetrics(b *testing.B) { + v := BucketMetrics{} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.MarshalMsg(nil) + } +} + +func BenchmarkAppendMsgBucketMetrics(b *testing.B) { + v := BucketMetrics{} + bts := make([]byte, 0, v.Msgsize()) + bts, _ = v.MarshalMsg(bts[0:0]) + b.SetBytes(int64(len(bts))) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + bts, _ = v.MarshalMsg(bts[0:0]) + } +} + +func BenchmarkUnmarshalBucketMetrics(b *testing.B) { + v := BucketMetrics{} + bts, _ := v.MarshalMsg(nil) + b.ReportAllocs() + b.SetBytes(int64(len(bts))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := v.UnmarshalMsg(bts) + if err != nil { + b.Fatal(err) + } + } +} + +func TestEncodeDecodeBucketMetrics(t *testing.T) { + v := BucketMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + + m := v.Msgsize() + if buf.Len() > m { + t.Log("WARNING: TestEncodeDecodeBucketMetrics Msgsize() is inaccurate") + } + + vn := BucketMetrics{} + err := msgp.Decode(&buf, &vn) + if err != nil { + t.Error(err) + } + + buf.Reset() + msgp.Encode(&buf, &v) + err = msgp.NewReader(&buf).Skip() + if err != nil { + t.Error(err) + } +} + +func BenchmarkEncodeBucketMetrics(b *testing.B) { + v := BucketMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + en := msgp.NewWriter(msgp.Nowhere) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.EncodeMsg(en) + } + en.Flush() +} + +func BenchmarkDecodeBucketMetrics(b *testing.B) { + v := BucketMetrics{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + rd := msgp.NewEndlessReader(buf.Bytes(), b) + dc := msgp.NewReader(rd) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + err := v.DecodeMsg(dc) + if err != nil { + b.Fatal(err) + } + } +} + +func TestMarshalUnmarshalBucketOpStat(t *testing.T) { + v := BucketOpStat{} + bts, err := v.MarshalMsg(nil) + if err != nil { + t.Fatal(err) + } + left, err := v.UnmarshalMsg(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left) + } + + left, err = msgp.Skip(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after Skip(): %q", len(left), left) + } +} + +func BenchmarkMarshalMsgBucketOpStat(b *testing.B) { + v := BucketOpStat{} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.MarshalMsg(nil) + } +} + +func BenchmarkAppendMsgBucketOpStat(b *testing.B) { + v := BucketOpStat{} + bts := make([]byte, 0, v.Msgsize()) + bts, _ = v.MarshalMsg(bts[0:0]) + b.SetBytes(int64(len(bts))) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + bts, _ = v.MarshalMsg(bts[0:0]) + } +} + +func BenchmarkUnmarshalBucketOpStat(b *testing.B) { + v := BucketOpStat{} + bts, _ := v.MarshalMsg(nil) + b.ReportAllocs() + b.SetBytes(int64(len(bts))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := v.UnmarshalMsg(bts) + if err != nil { + b.Fatal(err) + } + } +} + +func TestEncodeDecodeBucketOpStat(t *testing.T) { + v := BucketOpStat{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + + m := v.Msgsize() + if buf.Len() > m { + t.Log("WARNING: TestEncodeDecodeBucketOpStat Msgsize() is inaccurate") + } + + vn := BucketOpStat{} + err := msgp.Decode(&buf, &vn) + if err != nil { + t.Error(err) + } + + buf.Reset() + msgp.Encode(&buf, &v) + err = msgp.NewReader(&buf).Skip() + if err != nil { + t.Error(err) + } +} + +func BenchmarkEncodeBucketOpStat(b *testing.B) { + v := BucketOpStat{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + en := msgp.NewWriter(msgp.Nowhere) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.EncodeMsg(en) + } + en.Flush() +} + +func BenchmarkDecodeBucketOpStat(b *testing.B) { + v := BucketOpStat{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + rd := msgp.NewEndlessReader(buf.Bytes(), b) + dc := msgp.NewReader(rd) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + err := v.DecodeMsg(dc) + if err != nil { + b.Fatal(err) + } + } +} + func TestMarshalUnmarshalCPUMetrics(t *testing.T) { v := CPUMetrics{} bts, err := v.MarshalMsg(nil) @@ -5546,6 +5885,119 @@ func BenchmarkDecodeScannerMetrics(b *testing.B) { } } +func TestMarshalUnmarshalSegmentedBucketStats(t *testing.T) { + v := SegmentedBucketStats{} + bts, err := v.MarshalMsg(nil) + if err != nil { + t.Fatal(err) + } + left, err := v.UnmarshalMsg(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left) + } + + left, err = msgp.Skip(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after Skip(): %q", len(left), left) + } +} + +func BenchmarkMarshalMsgSegmentedBucketStats(b *testing.B) { + v := SegmentedBucketStats{} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.MarshalMsg(nil) + } +} + +func BenchmarkAppendMsgSegmentedBucketStats(b *testing.B) { + v := SegmentedBucketStats{} + bts := make([]byte, 0, v.Msgsize()) + bts, _ = v.MarshalMsg(bts[0:0]) + b.SetBytes(int64(len(bts))) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + bts, _ = v.MarshalMsg(bts[0:0]) + } +} + +func BenchmarkUnmarshalSegmentedBucketStats(b *testing.B) { + v := SegmentedBucketStats{} + bts, _ := v.MarshalMsg(nil) + b.ReportAllocs() + b.SetBytes(int64(len(bts))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := v.UnmarshalMsg(bts) + if err != nil { + b.Fatal(err) + } + } +} + +func TestEncodeDecodeSegmentedBucketStats(t *testing.T) { + v := SegmentedBucketStats{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + + m := v.Msgsize() + if buf.Len() > m { + t.Log("WARNING: TestEncodeDecodeSegmentedBucketStats Msgsize() is inaccurate") + } + + vn := SegmentedBucketStats{} + err := msgp.Decode(&buf, &vn) + if err != nil { + t.Error(err) + } + + buf.Reset() + msgp.Encode(&buf, &v) + err = msgp.NewReader(&buf).Skip() + if err != nil { + t.Error(err) + } +} + +func BenchmarkEncodeSegmentedBucketStats(b *testing.B) { + v := SegmentedBucketStats{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + en := msgp.NewWriter(msgp.Nowhere) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.EncodeMsg(en) + } + en.Flush() +} + +func BenchmarkDecodeSegmentedBucketStats(b *testing.B) { + v := SegmentedBucketStats{} + var buf bytes.Buffer + msgp.Encode(&buf, &v) + b.SetBytes(int64(buf.Len())) + rd := msgp.NewEndlessReader(buf.Bytes(), b) + dc := msgp.NewReader(rd) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + err := v.DecodeMsg(dc) + if err != nil { + b.Fatal(err) + } + } +} + func TestMarshalUnmarshalSensorMetrics(t *testing.T) { v := SensorMetrics{} bts, err := v.MarshalMsg(nil)