rc2
This commit is contained in:
109
client/client.go
109
client/client.go
@@ -81,21 +81,6 @@ func (s *Connection) AddMetric(req proto.AddMetricReq) error {
|
||||
return s.mustSuccess(s.src)
|
||||
}
|
||||
|
||||
//
|
||||
// func (s *Connection) UpdateMetric(req Metric) error {
|
||||
// arr := []byte{
|
||||
// proto.TypeUpdateMetric,
|
||||
// 0, 0, 0, 0, //
|
||||
// byte(req.FracDigits),
|
||||
// }
|
||||
// bin.PutUint32(arr[1:], req.MetricID)
|
||||
|
||||
// if _, err := s.conn.Write(arr); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// return s.mustSuccess(s.src)
|
||||
// }
|
||||
|
||||
func (s *Connection) GetMetric(metricID uint32) (*proto.Metric, error) {
|
||||
arr := []byte{
|
||||
proto.TypeGetMetric,
|
||||
@@ -184,73 +169,9 @@ func (s *Connection) AppendMeasures(req proto.AppendMeasuresReq) (err error) {
|
||||
if _, err := s.conn.Write(arr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
//fmt.Printf("encode measures: %d\n", len(req.Measures))
|
||||
return s.mustSuccess(s.src)
|
||||
}
|
||||
|
||||
// type AppendMeasurePerMetricReq struct {
|
||||
// MetricID uint32
|
||||
// Measures []Measure
|
||||
// }
|
||||
|
||||
func (s *Connection) AppendMeasurePerMetric(list []proto.MetricMeasure) (_ []proto.AppendError, err error) {
|
||||
if len(list) > 65535 {
|
||||
return nil, fmt.Errorf("wrong measures qty: %d", len(list))
|
||||
}
|
||||
var (
|
||||
// 3 bytes: 1b message type + 2b records qty
|
||||
fixedSize = 3
|
||||
recordSize = 16
|
||||
arr = make([]byte, fixedSize+len(list)*recordSize)
|
||||
)
|
||||
arr[0] = proto.TypeAppendMeasures
|
||||
bin.PutUint16(arr[1:], uint16(len(list)))
|
||||
pos := fixedSize
|
||||
for _, item := range list {
|
||||
bin.PutUint32(arr[pos:], item.MetricID)
|
||||
bin.PutUint32(arr[pos+4:], item.Timestamp)
|
||||
bin.PutFloat64(arr[pos+8:], item.Value)
|
||||
pos += recordSize
|
||||
}
|
||||
if _, err := s.conn.Write(arr); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
code, err := s.src.ReadByte()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read response code: %s", err)
|
||||
}
|
||||
|
||||
switch code {
|
||||
case proto.RespValue:
|
||||
var (
|
||||
qty uint16
|
||||
appendErrors []proto.AppendError
|
||||
)
|
||||
qty, err = bin.ReadUint16(s.src)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for range qty {
|
||||
var ae proto.AppendError
|
||||
ae.MetricID, err = bin.ReadUint32(s.src)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
ae.ErrorCode, err = bin.ReadUint16(s.src)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
appendErrors = append(appendErrors, ae)
|
||||
}
|
||||
return appendErrors, nil
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown reponse code %d", code)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Connection) ListAllInstantMeasures(metricID uint32) ([]proto.InstantMeasure, error) {
|
||||
arr := []byte{
|
||||
proto.TypeListAllInstantMeasures,
|
||||
@@ -273,8 +194,6 @@ func (s *Connection) ListAllInstantMeasures(metricID uint32) ([]proto.InstantMea
|
||||
return nil, fmt.Errorf("read response code: %s", err)
|
||||
}
|
||||
|
||||
//fmt.Printf("code: %d\n", code)
|
||||
|
||||
switch code {
|
||||
case proto.RespPartOfValue:
|
||||
q, err := bin.ReadUint32(s.src)
|
||||
@@ -282,8 +201,6 @@ func (s *Connection) ListAllInstantMeasures(metricID uint32) ([]proto.InstantMea
|
||||
return nil, fmt.Errorf("read records qty: %s", err)
|
||||
}
|
||||
|
||||
//fmt.Printf("q: %d\n", q)
|
||||
|
||||
for i := range int(q) {
|
||||
err = bin.ReadNInto(s.src, tmp)
|
||||
if err != nil {
|
||||
@@ -387,8 +304,6 @@ func (s *Connection) ListAllCumulativeMeasures(metricID uint32) ([]proto.Cumulat
|
||||
return nil, fmt.Errorf("read response code: %s", err)
|
||||
}
|
||||
|
||||
//fmt.Printf("code: %d\n", code)
|
||||
|
||||
switch code {
|
||||
case proto.RespPartOfValue:
|
||||
q, err := bin.ReadUint32(s.src)
|
||||
@@ -402,19 +317,11 @@ func (s *Connection) ListAllCumulativeMeasures(metricID uint32) ([]proto.Cumulat
|
||||
return nil, fmt.Errorf("read record #%d: %s", i, err)
|
||||
}
|
||||
|
||||
//fmt.Printf("tmp: %d\n", tmp)
|
||||
|
||||
result = append(result, proto.CumulativeMeasure{
|
||||
Timestamp: bin.GetUint32(tmp),
|
||||
Value: bin.GetFloat64(tmp[4:]),
|
||||
Total: bin.GetFloat64(tmp[12:]),
|
||||
})
|
||||
|
||||
// pretty.PPrintln("measure", CumulativeMeasure{
|
||||
// Timestamp: bin.GetUint32(tmp),
|
||||
// Value: bin.GetFloat64(tmp[4:]),
|
||||
// Total: bin.GetFloat64(tmp[12:]),
|
||||
// })
|
||||
}
|
||||
|
||||
case proto.RespEndOfValue:
|
||||
@@ -533,8 +440,6 @@ func (s *Connection) ListInstantPeriods(req proto.ListInstantPeriodsReq) ([]prot
|
||||
return nil, fmt.Errorf("read response code: %s", err)
|
||||
}
|
||||
|
||||
//fmt.Printf("code: %d\n", code)
|
||||
|
||||
switch code {
|
||||
case proto.RespPartOfValue:
|
||||
q, err := bin.ReadUint32(s.src)
|
||||
@@ -551,8 +456,8 @@ func (s *Connection) ListInstantPeriods(req proto.ListInstantPeriodsReq) ([]prot
|
||||
var (
|
||||
p = proto.InstantPeriod{
|
||||
Period: bin.GetUint32(tmp[0:]),
|
||||
Since: bin.GetUint32(tmp[4:]),
|
||||
Until: bin.GetUint32(tmp[8:]),
|
||||
Start: bin.GetUint32(tmp[4:]),
|
||||
End: bin.GetUint32(tmp[8:]),
|
||||
}
|
||||
// 12 bytes - period, since, until
|
||||
pos = 12
|
||||
@@ -629,11 +534,11 @@ func (s *Connection) ListCumulativePeriods(req proto.ListCumulativePeriodsReq) (
|
||||
return nil, fmt.Errorf("read record #%d: %s", i, err)
|
||||
}
|
||||
result = append(result, proto.CumulativePeriod{
|
||||
Period: bin.GetUint32(tmp[0:]),
|
||||
Since: bin.GetUint32(tmp[4:]),
|
||||
Until: bin.GetUint32(tmp[8:]),
|
||||
EndValue: bin.GetFloat64(tmp[12:]),
|
||||
Total: bin.GetFloat64(tmp[20:]),
|
||||
Period: bin.GetUint32(tmp[0:]),
|
||||
Start: bin.GetUint32(tmp[4:]),
|
||||
End: bin.GetUint32(tmp[8:]),
|
||||
StartValue: bin.GetFloat64(tmp[12:]),
|
||||
EndValue: bin.GetFloat64(tmp[20:]),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user