From 8c5c543649c266850927e292d842a8acfca7681b Mon Sep 17 00:00:00 2001 From: Joel Cooklin Date: Mon, 6 Jun 2016 18:21:01 -0700 Subject: [PATCH] Removes gob and plugin as deps for grpc/common --- Godeps/Godeps.json | 12 +- grpc/common/common.go | 159 +++++++-------- grpc/common/common.pb.go | 300 +++++++++++++++++++++++----- grpc/common/common.proto | 16 +- grpc/controlproxy/rpc/control.pb.go | 260 ++++++++++++++---------- 5 files changed, 495 insertions(+), 252 deletions(-) diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index ec77e4386..ba4a6bf0d 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -1,7 +1,7 @@ { "ImportPath": "github.com/intelsdi-x/snap", "GoVersion": "go1.5", - "GodepVersion": "v66", + "GodepVersion": "v62", "Packages": [ "./..." ], @@ -122,23 +122,23 @@ }, { "ImportPath": "golang.org/x/net/context", - "Rev": "7f88271ea9913b72aca44fa7fc8af919eacc17ce" + "Rev": "154d9f9ea81208afed560f4cf27b4860c8ed1904" }, { "ImportPath": "golang.org/x/net/http2", - "Rev": "7f88271ea9913b72aca44fa7fc8af919eacc17ce" + "Rev": "154d9f9ea81208afed560f4cf27b4860c8ed1904" }, { "ImportPath": "golang.org/x/net/internal/timeseries", - "Rev": "7f88271ea9913b72aca44fa7fc8af919eacc17ce" + "Rev": "154d9f9ea81208afed560f4cf27b4860c8ed1904" }, { "ImportPath": "golang.org/x/net/trace", - "Rev": "7f88271ea9913b72aca44fa7fc8af919eacc17ce" + "Rev": "154d9f9ea81208afed560f4cf27b4860c8ed1904" }, { "ImportPath": "google.golang.org/grpc", - "Rev": "933601d8cd6418a8a891bd9075a7161b0a67badb" + "Rev": "b60d3e9ed84da5710af43964e78bc44de74b72aa" }, { "ImportPath": "gopkg.in/yaml.v2", diff --git a/grpc/common/common.go b/grpc/common/common.go index 388ffb52c..1f485491b 100644 --- a/grpc/common/common.go +++ b/grpc/common/common.go @@ -20,14 +20,11 @@ limitations under the License. package common import ( - "bytes" - "encoding/gob" "errors" "strconv" "time" log "github.com/Sirupsen/logrus" - "github.com/intelsdi-x/snap/control/plugin" "github.com/intelsdi-x/snap/core" "github.com/intelsdi-x/snap/core/cdata" "github.com/intelsdi-x/snap/core/ctypes" @@ -52,7 +49,24 @@ func ToMetric(co core.Metric) *Metric { if co.Config() != nil { cm.Config = ConfigToConfigMap(co.Config()) } - cm.Data, cm.DataType = encodeData(co) + switch t := co.Data().(type) { + case string: + cm.Data = &Metric_StringData{t} + case float64: + cm.Data = &Metric_Float64Data{t} + case float32: + cm.Data = &Metric_Float32Data{t} + case int32: + cm.Data = &Metric_Int32Data{t} + case int: + cm.Data = &Metric_Int64Data{int64(t)} + case int64: + cm.Data = &Metric_Int64Data{t} + case []byte: + cm.Data = &Metric_BytesData{t} + default: + panic(t) + } return cm } @@ -70,87 +84,11 @@ func ToNamespace(n core.Namespace) []*NamespaceElement { return elements } -func encodeData(mt core.Metric) ([]byte, string) { - - var b bytes.Buffer - enc := gob.NewEncoder(&b) - var Data []byte - var DataType string - switch t := mt.Data().(type) { - case string: - enc.Encode(t) - Data = b.Bytes() - DataType = "string" - case float64: - enc.Encode(t) - Data = b.Bytes() - DataType = "float64" - case float32: - enc.Encode(t) - Data = b.Bytes() - DataType = "float32" - case int32: - enc.Encode(t) - Data = b.Bytes() - DataType = "int32" - case int: - enc.Encode(t) - Data = b.Bytes() - DataType = "int" - case int64: - enc.Encode(t) - Data = b.Bytes() - DataType = "int64" - case nil: - Data = nil - DataType = "nil" - default: - panic(t) - } - return Data, DataType -} - -func decodeData(b []byte, t string) interface{} { - var Data interface{} - switch t { - case "int": - var val int - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val - case "int32": - var val int32 - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val - case "int64": - var val int64 - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val - case "float32": - var val float32 - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val - case "float64": - var val float64 - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val - case "string": - var val string - buf := bytes.NewBuffer(b) - decoder := gob.NewDecoder(buf) - decoder.Decode(&val) - Data = val +func ToTime(t time.Time) *Time { + return &Time{ + Nsec: t.Unix(), + Sec: int64(t.Second()), } - return Data } // Convert a slice of core.Metrics to []*common.Metric protobuf messages @@ -162,18 +100,55 @@ func NewMetrics(ms []core.Metric) []*Metric { return metrics } +type metric struct { + namespace core.Namespace + version int + config *cdata.ConfigDataNode + lastAdvertisedTime time.Time + timeStamp time.Time + data interface{} + tags map[string]string + description string + unit string +} + +func (m *metric) Namespace() core.Namespace { return m.namespace } +func (m *metric) Config() *cdata.ConfigDataNode { return m.config } +func (m *metric) Version() int { return m.version } +func (m *metric) Data() interface{} { return m.data } +func (m *metric) Tags() map[string]string { return m.tags } +func (m *metric) LastAdvertisedTime() time.Time { return m.lastAdvertisedTime } +func (m *metric) Timestamp() time.Time { return m.timeStamp } +func (m *metric) Description() string { return m.description } +func (m *metric) Unit() string { return m.unit } + // Convert common.Metric to core.Metric func ToCoreMetric(mt *Metric) core.Metric { - ret := plugin.MetricType{ - Namespace_: ToCoreNamespace(mt.Namespace), - Version_: int(mt.Version), - Tags_: mt.Tags, - Timestamp_: time.Unix(mt.Timestamp.Sec, mt.Timestamp.Nsec), - LastAdvertisedTime_: time.Unix(mt.LastAdvertisedTime.Sec, mt.LastAdvertisedTime.Nsec), + ret := &metric{ + namespace: ToCoreNamespace(mt.Namespace), + version: int(mt.Version), + tags: mt.Tags, + timeStamp: time.Unix(mt.Timestamp.Sec, mt.Timestamp.Nsec), + lastAdvertisedTime: time.Unix(mt.LastAdvertisedTime.Sec, mt.LastAdvertisedTime.Nsec), + config: ConfigMapToConfig(mt.Config), + description: mt.Description, + unit: mt.Unit, } - ret.Config_ = ConfigMapToConfig(mt.Config) - ret.Data_ = decodeData(mt.Data, mt.DataType) + switch mt.Data.(type) { + case *Metric_BytesData: + ret.data = mt.GetBytesData() + case *Metric_StringData: + ret.data = mt.GetStringData() + case *Metric_Float32Data: + ret.data = mt.GetFloat32Data + case *Metric_Float64Data: + ret.data = mt.GetFloat64Data + case *Metric_Int32Data: + ret.data = mt.GetInt32Data + case *Metric_Int64Data: + ret.data = mt.GetInt64Data + } return ret } diff --git a/grpc/common/common.pb.go b/grpc/common/common.pb.go index f5ea0ecf0..3a4bcbd74 100644 --- a/grpc/common/common.pb.go +++ b/grpc/common/common.pb.go @@ -104,10 +104,18 @@ type Metric struct { Version int64 `protobuf:"varint,2,opt,name=Version" json:"Version,omitempty"` Config *ConfigMap `protobuf:"bytes,3,opt,name=Config" json:"Config,omitempty"` LastAdvertisedTime *Time `protobuf:"bytes,4,opt,name=LastAdvertisedTime" json:"LastAdvertisedTime,omitempty"` - Data []byte `protobuf:"bytes,5,opt,name=Data,proto3" json:"Data,omitempty"` - DataType string `protobuf:"bytes,6,opt,name=DataType" json:"DataType,omitempty"` - Tags map[string]string `protobuf:"bytes,9,rep,name=Tags" json:"Tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Timestamp *Time `protobuf:"bytes,10,opt,name=Timestamp" json:"Timestamp,omitempty"` + Tags map[string]string `protobuf:"bytes,5,rep,name=Tags" json:"Tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Timestamp *Time `protobuf:"bytes,6,opt,name=Timestamp" json:"Timestamp,omitempty"` + Unit string `protobuf:"bytes,7,opt,name=Unit" json:"Unit,omitempty"` + Description string `protobuf:"bytes,8,opt,name=Description" json:"Description,omitempty"` + // Types that are valid to be assigned to Data: + // *Metric_StringData + // *Metric_Float32Data + // *Metric_Float64Data + // *Metric_Int32Data + // *Metric_Int64Data + // *Metric_BytesData + Data isMetric_Data `protobuf_oneof:"data"` } func (m *Metric) Reset() { *m = Metric{} } @@ -115,6 +123,43 @@ func (m *Metric) String() string { return proto.CompactTextString(m) func (*Metric) ProtoMessage() {} func (*Metric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +type isMetric_Data interface { + isMetric_Data() +} + +type Metric_StringData struct { + StringData string `protobuf:"bytes,9,opt,name=string_data,oneof"` +} +type Metric_Float32Data struct { + Float32Data float32 `protobuf:"fixed32,10,opt,name=float32_data,oneof"` +} +type Metric_Float64Data struct { + Float64Data float64 `protobuf:"fixed64,11,opt,name=float64_data,oneof"` +} +type Metric_Int32Data struct { + Int32Data int32 `protobuf:"varint,12,opt,name=int32_data,oneof"` +} +type Metric_Int64Data struct { + Int64Data int64 `protobuf:"varint,13,opt,name=int64_data,oneof"` +} +type Metric_BytesData struct { + BytesData []byte `protobuf:"bytes,14,opt,name=bytes_data,proto3,oneof"` +} + +func (*Metric_StringData) isMetric_Data() {} +func (*Metric_Float32Data) isMetric_Data() {} +func (*Metric_Float64Data) isMetric_Data() {} +func (*Metric_Int32Data) isMetric_Data() {} +func (*Metric_Int64Data) isMetric_Data() {} +func (*Metric_BytesData) isMetric_Data() {} + +func (m *Metric) GetData() isMetric_Data { + if m != nil { + return m.Data + } + return nil +} + func (m *Metric) GetNamespace() []*NamespaceElement { if m != nil { return m.Namespace @@ -150,6 +195,170 @@ func (m *Metric) GetTimestamp() *Time { return nil } +func (m *Metric) GetStringData() string { + if x, ok := m.GetData().(*Metric_StringData); ok { + return x.StringData + } + return "" +} + +func (m *Metric) GetFloat32Data() float32 { + if x, ok := m.GetData().(*Metric_Float32Data); ok { + return x.Float32Data + } + return 0 +} + +func (m *Metric) GetFloat64Data() float64 { + if x, ok := m.GetData().(*Metric_Float64Data); ok { + return x.Float64Data + } + return 0 +} + +func (m *Metric) GetInt32Data() int32 { + if x, ok := m.GetData().(*Metric_Int32Data); ok { + return x.Int32Data + } + return 0 +} + +func (m *Metric) GetInt64Data() int64 { + if x, ok := m.GetData().(*Metric_Int64Data); ok { + return x.Int64Data + } + return 0 +} + +func (m *Metric) GetBytesData() []byte { + if x, ok := m.GetData().(*Metric_BytesData); ok { + return x.BytesData + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Metric) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Metric_OneofMarshaler, _Metric_OneofUnmarshaler, _Metric_OneofSizer, []interface{}{ + (*Metric_StringData)(nil), + (*Metric_Float32Data)(nil), + (*Metric_Float64Data)(nil), + (*Metric_Int32Data)(nil), + (*Metric_Int64Data)(nil), + (*Metric_BytesData)(nil), + } +} + +func _Metric_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Metric) + // data + switch x := m.Data.(type) { + case *Metric_StringData: + b.EncodeVarint(9<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringData) + case *Metric_Float32Data: + b.EncodeVarint(10<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.Float32Data))) + case *Metric_Float64Data: + b.EncodeVarint(11<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.Float64Data)) + case *Metric_Int32Data: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Int32Data)) + case *Metric_Int64Data: + b.EncodeVarint(13<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Int64Data)) + case *Metric_BytesData: + b.EncodeVarint(14<<3 | proto.WireBytes) + b.EncodeRawBytes(x.BytesData) + case nil: + default: + return fmt.Errorf("Metric.Data has unexpected type %T", x) + } + return nil +} + +func _Metric_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Metric) + switch tag { + case 9: // data.string_data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Data = &Metric_StringData{x} + return true, err + case 10: // data.float32_data + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Data = &Metric_Float32Data{math.Float32frombits(uint32(x))} + return true, err + case 11: // data.float64_data + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Data = &Metric_Float64Data{math.Float64frombits(x)} + return true, err + case 12: // data.int32_data + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Data = &Metric_Int32Data{int32(x)} + return true, err + case 13: // data.int64_data + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Data = &Metric_Int64Data{int64(x)} + return true, err + case 14: // data.bytes_data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Data = &Metric_BytesData{x} + return true, err + default: + return false, nil + } +} + +func _Metric_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Metric) + // data + switch x := m.Data.(type) { + case *Metric_StringData: + n += proto.SizeVarint(9<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.StringData))) + n += len(x.StringData) + case *Metric_Float32Data: + n += proto.SizeVarint(10<<3 | proto.WireFixed32) + n += 4 + case *Metric_Float64Data: + n += proto.SizeVarint(11<<3 | proto.WireFixed64) + n += 8 + case *Metric_Int32Data: + n += proto.SizeVarint(12<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Int32Data)) + case *Metric_Int64Data: + n += proto.SizeVarint(13<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Int64Data)) + case *Metric_BytesData: + n += proto.SizeVarint(14<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.BytesData))) + n += len(x.BytesData) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + type NamespaceElement struct { Value string `protobuf:"bytes,1,opt,name=Value" json:"Value,omitempty"` Description string `protobuf:"bytes,2,opt,name=Description" json:"Description,omitempty"` @@ -247,46 +456,45 @@ func init() { } var fileDescriptor0 = []byte{ - // 646 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x54, 0xdd, 0x6e, 0xd3, 0x30, - 0x14, 0x56, 0x96, 0x34, 0x6d, 0x4e, 0x0b, 0x2a, 0x16, 0x17, 0x51, 0x25, 0x60, 0xe4, 0x6a, 0x20, - 0x68, 0xc5, 0x26, 0x60, 0x6c, 0xd3, 0x24, 0x60, 0x9d, 0x84, 0xb4, 0x21, 0x94, 0x4d, 0xbb, 0x04, - 0xb9, 0x8d, 0x17, 0x2c, 0x12, 0x27, 0x8a, 0xdd, 0x69, 0x7d, 0x01, 0x78, 0x22, 0x9e, 0x8a, 0x97, - 0xc0, 0x3f, 0x71, 0x49, 0x57, 0x50, 0x35, 0x89, 0x9b, 0xf6, 0x9c, 0xef, 0x7c, 0xdf, 0xb1, 0xcf, - 0x8f, 0x03, 0x3b, 0x29, 0x15, 0x5f, 0x67, 0x93, 0xe1, 0xb4, 0xc8, 0x47, 0x94, 0x09, 0x92, 0xf1, - 0x84, 0x3e, 0xbf, 0x1e, 0x71, 0x86, 0xcb, 0x51, 0x5a, 0x95, 0xd3, 0x91, 0x0c, 0xe4, 0x05, 0xab, - 0xff, 0x86, 0x65, 0x55, 0x88, 0x02, 0xf9, 0xc6, 0x8b, 0x9e, 0x81, 0x77, 0x4e, 0x73, 0x82, 0xfa, - 0xe0, 0x72, 0x32, 0x0d, 0x9d, 0x4d, 0x67, 0xcb, 0x8d, 0x95, 0x89, 0x10, 0x78, 0x4c, 0x41, 0x1b, - 0x1a, 0xd2, 0x76, 0xd4, 0x86, 0xd6, 0x38, 0x2f, 0xc5, 0x3c, 0xfa, 0xe9, 0x40, 0x70, 0x26, 0x0f, - 0x18, 0x57, 0x55, 0x51, 0xa1, 0xc7, 0xd0, 0x23, 0xca, 0xf8, 0xc2, 0x45, 0x45, 0x59, 0xaa, 0xb3, - 0x04, 0x71, 0x57, 0x63, 0x67, 0x1a, 0x42, 0x63, 0x4b, 0xb9, 0xa4, 0x24, 0x4b, 0xb8, 0xcc, 0xea, - 0x6e, 0x75, 0xb7, 0xa3, 0x61, 0x7d, 0xa9, 0x45, 0xae, 0xa1, 0xfe, 0x3d, 0xd6, 0xa4, 0x31, 0x13, - 0xd5, 0xbc, 0x4e, 0x63, 0x90, 0xc1, 0x21, 0xf4, 0x6f, 0x12, 0xd4, 0xd5, 0xbf, 0x91, 0x79, 0x7d, - 0xa8, 0x32, 0xd1, 0x7d, 0x68, 0x5d, 0xe1, 0x6c, 0x46, 0xf4, 0xdd, 0x83, 0xd8, 0x38, 0x7b, 0x1b, - 0xbb, 0x4e, 0xf4, 0x02, 0x5a, 0x27, 0x78, 0x42, 0x32, 0x45, 0xa1, 0x2c, 0x21, 0xd7, 0x5a, 0xe6, - 0xc5, 0xc6, 0xd1, 0x35, 0xe3, 0xdc, 0xea, 0xb4, 0x1d, 0x7d, 0x77, 0xc1, 0x3f, 0x25, 0xb2, 0x8a, - 0x29, 0x7a, 0x05, 0xc1, 0x47, 0x09, 0xf1, 0x12, 0x4f, 0x89, 0x14, 0xaa, 0x0a, 0x42, 0x5b, 0xc1, - 0x22, 0x30, 0xce, 0x48, 0x4e, 0x98, 0x88, 0x03, 0x66, 0x11, 0x14, 0x42, 0xfb, 0x82, 0x54, 0x9c, - 0x16, 0xac, 0xee, 0x66, 0xfb, 0xca, 0xb8, 0xe8, 0x09, 0xf8, 0xef, 0x0b, 0x76, 0x49, 0xd3, 0xd0, - 0x95, 0x81, 0xee, 0xf6, 0x3d, 0x9b, 0xce, 0xa0, 0xa7, 0xb8, 0x8c, 0xe5, 0xa4, 0x94, 0x89, 0x0e, - 0x00, 0x9d, 0x60, 0x2e, 0xde, 0x26, 0x52, 0x2b, 0x28, 0x27, 0x89, 0x9a, 0x5b, 0xe8, 0x69, 0x59, - 0xcf, 0xca, 0x14, 0x16, 0xa3, 0x6c, 0x85, 0xa7, 0x2a, 0x3b, 0xc2, 0x02, 0x87, 0x2d, 0xc9, 0xef, - 0xc5, 0x5e, 0x22, 0x6d, 0x34, 0x80, 0x8e, 0xc2, 0xce, 0xe7, 0x25, 0x09, 0x7d, 0x5d, 0x71, 0x27, - 0xa9, 0x7d, 0xa4, 0xf6, 0x02, 0xa7, 0x3c, 0x0c, 0x96, 0xab, 0x34, 0x8d, 0x18, 0xaa, 0x90, 0x99, - 0x8e, 0x27, 0xa4, 0x89, 0x9e, 0x42, 0xa0, 0x4e, 0xe1, 0x02, 0xe7, 0x65, 0x08, 0x7f, 0xb9, 0x52, - 0x20, 0x6c, 0x78, 0xf0, 0x5a, 0x72, 0xad, 0xfc, 0x56, 0xb3, 0xfb, 0x0c, 0xfd, 0x9b, 0x4d, 0x56, - 0xec, 0x0b, 0xcd, 0x76, 0x1a, 0x6c, 0xb4, 0x09, 0xdd, 0x23, 0xc2, 0xa7, 0x15, 0x2d, 0x85, 0xed, - 0xb9, 0x5c, 0xc7, 0xe4, 0x0f, 0xa4, 0xda, 0xa1, 0x72, 0xe9, 0xae, 0xdb, 0x41, 0xff, 0x70, 0xa0, - 0x7f, 0x36, 0x9b, 0x28, 0xd2, 0x84, 0x24, 0x9f, 0xb2, 0x59, 0x4a, 0x99, 0xea, 0x91, 0xea, 0x87, - 0x26, 0x9b, 0x33, 0x3a, 0xa2, 0xf6, 0x17, 0x49, 0x1a, 0xdb, 0xd2, 0x1c, 0xb5, 0xfb, 0xaf, 0x51, - 0x7b, 0x6b, 0x46, 0x1d, 0xfd, 0x72, 0x21, 0x58, 0xa0, 0xe8, 0x25, 0xf8, 0x1f, 0x98, 0x90, 0x56, - 0xbd, 0x72, 0x0f, 0x56, 0x84, 0x43, 0x13, 0x37, 0x13, 0xf1, 0xa9, 0x76, 0xd0, 0xa1, 0x7c, 0xa1, - 0xfa, 0xed, 0x29, 0xa5, 0x79, 0x6e, 0x9b, 0xab, 0xca, 0x05, 0xc5, 0x88, 0x03, 0x6e, 0x7d, 0xb4, - 0x0f, 0x9d, 0xe3, 0xac, 0xc0, 0xfa, 0x60, 0x57, 0xcb, 0x1f, 0xad, 0xca, 0x2d, 0xc3, 0xa8, 0x3b, - 0x97, 0xb5, 0x8b, 0x76, 0xa1, 0xfd, 0xae, 0x28, 0x32, 0xa5, 0xf5, 0xb4, 0xf6, 0xe1, 0xaa, 0xb6, - 0x26, 0x18, 0x69, 0x7b, 0x62, 0xbc, 0xc1, 0x1b, 0xe8, 0x36, 0xaa, 0x59, 0xb7, 0x20, 0x6e, 0x63, - 0x41, 0x06, 0x07, 0x70, 0x77, 0xb9, 0x9c, 0xdb, 0xac, 0xd7, 0x60, 0x1f, 0xee, 0x2c, 0x55, 0xb3, - 0x4e, 0xec, 0x34, 0xc5, 0x7b, 0xd0, 0x6b, 0x96, 0xb3, 0x4e, 0xdb, 0x69, 0xee, 0x75, 0x0c, 0xfe, - 0xff, 0x5e, 0xb6, 0x89, 0xaf, 0xbf, 0xf2, 0x3b, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xb2, 0xca, - 0xdb, 0x82, 0x1c, 0x06, 0x00, 0x00, + // 630 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x9c, 0x54, 0xef, 0x4f, 0xd3, 0x40, + 0x18, 0xa6, 0xb4, 0xeb, 0xd6, 0xb7, 0x05, 0xe7, 0x89, 0xa6, 0x59, 0xa2, 0x40, 0x63, 0x0c, 0x89, + 0xa1, 0xd3, 0xcd, 0x18, 0xf4, 0x9b, 0xc8, 0x08, 0x26, 0x60, 0x4c, 0x40, 0xbe, 0x92, 0xdb, 0x7a, + 0x9b, 0x17, 0xdb, 0x6b, 0xd3, 0xbb, 0x11, 0xf6, 0x57, 0xf8, 0xc9, 0x3f, 0xc7, 0xff, 0xcd, 0xfb, + 0xd1, 0x8e, 0xc1, 0x40, 0x12, 0xbf, 0x40, 0xef, 0x79, 0x9f, 0xe7, 0xdd, 0x73, 0xef, 0xf3, 0xb6, + 0xd0, 0x9f, 0x50, 0xf1, 0x63, 0x3a, 0x8c, 0x47, 0x79, 0xd6, 0xa5, 0x4c, 0x90, 0x94, 0x27, 0x74, + 0xf7, 0xaa, 0xcb, 0x19, 0x2e, 0xba, 0x93, 0xb2, 0x18, 0x75, 0x65, 0x21, 0xcb, 0x59, 0xf5, 0x2f, + 0x2e, 0xca, 0x5c, 0xe4, 0xc8, 0x35, 0xa7, 0x68, 0x1b, 0x9c, 0x33, 0x9a, 0x11, 0xe4, 0x83, 0xcd, + 0xc9, 0x28, 0xb4, 0xb6, 0xac, 0x1d, 0x1b, 0x05, 0xe0, 0x30, 0x75, 0x5a, 0x55, 0xa7, 0xa8, 0x09, + 0x8d, 0x41, 0x56, 0x88, 0x59, 0xf4, 0xcb, 0x02, 0xef, 0x54, 0x76, 0x1d, 0x94, 0x65, 0x5e, 0xa2, + 0x0d, 0x08, 0x88, 0x7a, 0xb8, 0xe0, 0xa2, 0xa4, 0x6c, 0xa2, 0xa5, 0x1e, 0xda, 0xab, 0xd1, 0x31, + 0x25, 0x69, 0xc2, 0x65, 0x0b, 0x7b, 0xc7, 0xef, 0x45, 0x71, 0xf5, 0xe3, 0x73, 0x79, 0xac, 0xff, + 0x1e, 0x6a, 0xd2, 0x80, 0x89, 0x72, 0xd6, 0xe9, 0x41, 0xfb, 0x36, 0xa6, 0x5c, 0xfd, 0x24, 0xb3, + 0xaa, 0xf5, 0x1a, 0x34, 0x2e, 0x71, 0x3a, 0x25, 0xda, 0x96, 0xf7, 0x71, 0x75, 0xcf, 0x8a, 0x5e, + 0x42, 0xe3, 0x18, 0x0f, 0x49, 0xaa, 0x6a, 0x94, 0x25, 0xe4, 0x4a, 0x53, 0x1d, 0x7d, 0x01, 0x9c, + 0x55, 0xcc, 0xe8, 0x8f, 0x0d, 0xee, 0x09, 0x91, 0x2e, 0x47, 0xe8, 0x35, 0x78, 0x5f, 0x65, 0x81, + 0x17, 0x78, 0x44, 0x24, 0x57, 0x79, 0x0b, 0x6b, 0x6f, 0xf3, 0xc2, 0x20, 0x25, 0x19, 0x61, 0x02, + 0x3d, 0x82, 0xe6, 0x39, 0x29, 0x39, 0xcd, 0x99, 0x99, 0x04, 0xda, 0x06, 0xf7, 0x73, 0xce, 0xc6, + 0x74, 0x12, 0xda, 0xf2, 0xec, 0xf7, 0x1e, 0xd7, 0x52, 0x83, 0x9e, 0xe0, 0x02, 0xed, 0x00, 0x3a, + 0xc6, 0x5c, 0x7c, 0x4a, 0x2e, 0x49, 0x29, 0x28, 0x27, 0x89, 0x9a, 0x6e, 0xe8, 0x68, 0x7a, 0x50, + 0xd3, 0xf5, 0xc4, 0x5f, 0xc9, 0xc9, 0xe3, 0x09, 0x0f, 0x1b, 0x37, 0x5d, 0x18, 0xa3, 0xb1, 0x2a, + 0x99, 0x19, 0x6c, 0x82, 0xa7, 0xf8, 0x5c, 0xe0, 0xac, 0x08, 0xdd, 0x3b, 0x1a, 0xc9, 0xcb, 0x7e, + 0x67, 0x54, 0x84, 0x4d, 0x3d, 0xa5, 0x27, 0xe0, 0x1f, 0x10, 0x3e, 0x2a, 0x69, 0x21, 0x94, 0xf1, + 0x96, 0x06, 0x9f, 0x82, 0x6f, 0x52, 0xba, 0x48, 0xb0, 0xc0, 0xa1, 0xa7, 0xc0, 0xa3, 0x15, 0xf4, + 0x0c, 0x82, 0x71, 0x9a, 0x63, 0xd1, 0xef, 0x19, 0x1c, 0x24, 0xbe, 0xba, 0x80, 0xbf, 0x7f, 0x67, + 0x70, 0x5f, 0xe2, 0x96, 0xc4, 0x37, 0x00, 0xe4, 0x82, 0xd5, 0xec, 0x40, 0xa2, 0x8d, 0x39, 0x5a, + 0x73, 0xd7, 0xd4, 0xa4, 0x0c, 0x3a, 0x9c, 0x09, 0xc2, 0x0d, 0xba, 0x2e, 0xd1, 0xe0, 0x68, 0xa5, + 0x23, 0xe7, 0x7f, 0x7d, 0xb3, 0x07, 0xd2, 0xdd, 0x77, 0xc1, 0x51, 0xe2, 0xe8, 0x00, 0xda, 0x4b, + 0xd9, 0x48, 0xfa, 0xb9, 0xa6, 0x5b, 0x77, 0xdd, 0x5a, 0xf7, 0x50, 0x83, 0x51, 0x3a, 0x1d, 0x96, + 0x17, 0x8d, 0xa1, 0x7d, 0x3a, 0x1d, 0x2a, 0xce, 0x90, 0x24, 0xdf, 0xd2, 0xe9, 0x84, 0x32, 0xd4, + 0x86, 0xd6, 0xd9, 0xac, 0x20, 0x9a, 0x65, 0xdd, 0xd0, 0x98, 0x0e, 0x0b, 0x1b, 0x60, 0xdf, 0xda, + 0x00, 0xe7, 0x9e, 0x0d, 0x88, 0x7e, 0xdb, 0xe0, 0x5d, 0xef, 0xc3, 0x2e, 0xb8, 0x5f, 0x98, 0x90, + 0x4f, 0xd5, 0xb6, 0x3d, 0x5f, 0x12, 0xc4, 0xa6, 0x6e, 0x46, 0xd2, 0x97, 0x6f, 0x98, 0x0e, 0x4a, + 0x29, 0xcc, 0xbb, 0xb3, 0xb5, 0xac, 0x98, 0x53, 0x8c, 0xe8, 0x2d, 0xb4, 0x0e, 0x55, 0x5c, 0x4a, + 0x63, 0x6b, 0xcd, 0xe6, 0xb2, 0xa6, 0x66, 0x18, 0x49, 0x17, 0x9a, 0xfb, 0x79, 0x9e, 0x2a, 0x85, + 0xa3, 0x15, 0x2f, 0x96, 0x15, 0x15, 0xc1, 0xbc, 0x9d, 0xbb, 0xe0, 0x2f, 0xfa, 0xbc, 0x3f, 0x3a, + 0x5b, 0x45, 0xd7, 0x79, 0x03, 0xeb, 0xb7, 0x4c, 0x3e, 0x10, 0x76, 0xa7, 0x0b, 0x6b, 0x37, 0x2d, + 0xde, 0x2f, 0xb0, 0xb4, 0x20, 0x86, 0x60, 0xd1, 0xe1, 0x3f, 0xf8, 0x2d, 0xfd, 0xad, 0xf8, 0x00, + 0xee, 0x7f, 0xa6, 0x3e, 0x74, 0xf5, 0x37, 0xb3, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x86, + 0x01, 0x7e, 0x6a, 0x05, 0x00, 0x00, } diff --git a/grpc/common/common.proto b/grpc/common/common.proto index ecb7e9d22..eb9b638ad 100644 --- a/grpc/common/common.proto +++ b/grpc/common/common.proto @@ -43,10 +43,18 @@ message Metric { int64 Version = 2; ConfigMap Config = 3; Time LastAdvertisedTime = 4; - bytes Data = 5; - string DataType = 6; - map Tags = 9; - Time Timestamp = 10; + map Tags = 5; + Time Timestamp = 6; + string Unit = 7; + string Description = 8; + oneof data { + string string_data = 9; + float float32_data = 10; + double float64_data = 11; + int32 int32_data = 12; + int64 int64_data = 13; + bytes bytes_data = 14; + } } message NamespaceElement { diff --git a/grpc/controlproxy/rpc/control.pb.go b/grpc/controlproxy/rpc/control.pb.go index 120b960e8..1b2a47cbe 100644 --- a/grpc/controlproxy/rpc/control.pb.go +++ b/grpc/controlproxy/rpc/control.pb.go @@ -375,6 +375,10 @@ func init() { var _ context.Context var _ grpc.ClientConn +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion2 + // Client API for MetricManager service type MetricManagerClient interface { @@ -498,112 +502,166 @@ func RegisterMetricManagerServer(s *grpc.Server, srv MetricManagerServer) { s.RegisterService(&_MetricManager_serviceDesc, srv) } -func _MetricManager_GetPluginContentTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_GetPluginContentTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPluginContentTypesRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).GetPluginContentTypes(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).GetPluginContentTypes(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/GetPluginContentTypes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).GetPluginContentTypes(ctx, req.(*GetPluginContentTypesRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_ExpandWildcards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_ExpandWildcards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExpandWildcardsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).ExpandWildcards(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).ExpandWildcards(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/ExpandWildcards", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).ExpandWildcards(ctx, req.(*ExpandWildcardsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_CollectMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_CollectMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CollectMetricsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).CollectMetrics(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).CollectMetrics(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/CollectMetrics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).CollectMetrics(ctx, req.(*CollectMetricsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_PublishMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_PublishMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PubProcMetricsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).PublishMetrics(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).PublishMetrics(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/PublishMetrics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).PublishMetrics(ctx, req.(*PubProcMetricsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_ProcessMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_ProcessMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PubProcMetricsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).ProcessMetrics(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).ProcessMetrics(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/ProcessMetrics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).ProcessMetrics(ctx, req.(*PubProcMetricsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_ValidateDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_ValidateDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ValidateDepsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).ValidateDeps(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).ValidateDeps(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/ValidateDeps", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).ValidateDeps(ctx, req.(*ValidateDepsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_SubscribeDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_SubscribeDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SubscribeDepsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).SubscribeDeps(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).SubscribeDeps(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/SubscribeDeps", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).SubscribeDeps(ctx, req.(*SubscribeDepsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_UnsubscribeDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_UnsubscribeDeps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SubscribeDepsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).UnsubscribeDeps(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).UnsubscribeDeps(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/UnsubscribeDeps", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).UnsubscribeDeps(ctx, req.(*SubscribeDepsRequest)) + } + return interceptor(ctx, in, info, handler) } -func _MetricManager_MatchQueryToNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { +func _MetricManager_MatchQueryToNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExpandWildcardsRequest) if err := dec(in); err != nil { return nil, err } - out, err := srv.(MetricManagerServer).MatchQueryToNamespaces(ctx, in) - if err != nil { - return nil, err + if interceptor == nil { + return srv.(MetricManagerServer).MatchQueryToNamespaces(ctx, in) } - return out, nil + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpc.MetricManager/MatchQueryToNamespaces", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MetricManagerServer).MatchQueryToNamespaces(ctx, req.(*ExpandWildcardsRequest)) + } + return interceptor(ctx, in, info, handler) } var _MetricManager_serviceDesc = grpc.ServiceDesc{ @@ -651,63 +709,57 @@ var _MetricManager_serviceDesc = grpc.ServiceDesc{ } var fileDescriptor0 = []byte{ - // 923 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x56, 0x5f, 0x73, 0xdb, 0x44, - 0x10, 0xc7, 0x56, 0x6c, 0x25, 0xeb, 0x38, 0xa1, 0x97, 0x3f, 0x08, 0xc1, 0x94, 0xa2, 0xe9, 0xd0, - 0xf4, 0x01, 0x7b, 0x46, 0x99, 0x61, 0x18, 0x1e, 0xda, 0x09, 0xb5, 0xa7, 0x30, 0x9d, 0x74, 0x8c, - 0x64, 0xda, 0x27, 0x1e, 0xce, 0xd2, 0xe1, 0x68, 0x22, 0x9f, 0xc4, 0x9d, 0xd4, 0x89, 0x5f, 0x78, - 0xe0, 0x99, 0x0f, 0xc4, 0x87, 0xe1, 0xc3, 0x70, 0x7f, 0x24, 0x59, 0x32, 0x6a, 0x02, 0x84, 0xa7, - 0xe4, 0x76, 0xf7, 0x76, 0xf7, 0xf7, 0xdb, 0xd5, 0xef, 0x0c, 0xcf, 0x96, 0x51, 0x76, 0x95, 0x2f, - 0x46, 0x41, 0xb2, 0x1a, 0x47, 0x34, 0x23, 0x31, 0x0f, 0xa3, 0x2f, 0x6f, 0xc6, 0x9c, 0xe2, 0x74, - 0xbc, 0x64, 0x69, 0x30, 0x0e, 0x12, 0x9a, 0xb1, 0x24, 0x4e, 0x59, 0x72, 0xb3, 0x1e, 0xd7, 0x0c, - 0x23, 0x61, 0xc9, 0x12, 0x64, 0x08, 0x93, 0x7d, 0x7e, 0x77, 0x92, 0xd5, 0x2a, 0xa1, 0xc5, 0x1f, - 0x7d, 0xd3, 0x19, 0xc2, 0xc0, 0x27, 0x8c, 0x25, 0xcc, 0x23, 0x69, 0xbc, 0x76, 0xfe, 0xec, 0xc0, - 0xc9, 0x2c, 0x5f, 0xcc, 0x58, 0x12, 0x5c, 0x92, 0x8c, 0x45, 0x01, 0xf7, 0xc8, 0x2f, 0x39, 0xe1, - 0x19, 0x7a, 0x04, 0x83, 0x17, 0xa2, 0x26, 0xa1, 0xd9, 0x7c, 0x9d, 0x12, 0xab, 0xf3, 0xa8, 0x73, - 0xb6, 0xe7, 0x0d, 0x82, 0x8d, 0x09, 0x59, 0x60, 0x16, 0x11, 0x56, 0x57, 0x78, 0xf7, 0x3d, 0xb3, - 0xf0, 0xa2, 0x87, 0x00, 0xb3, 0x38, 0x5f, 0x46, 0xf4, 0x35, 0x5e, 0x11, 0xcb, 0x50, 0x57, 0x21, - 0xad, 0x2c, 0xe8, 0x31, 0x0c, 0xb5, 0xff, 0x0d, 0x61, 0x3c, 0x4a, 0xa8, 0xb5, 0x23, 0x42, 0x0c, - 0x6f, 0x98, 0xd6, 0x8d, 0xe8, 0x29, 0xf4, 0x45, 0xfe, 0x9f, 0xa3, 0xa5, 0xd5, 0x13, 0xee, 0x81, - 0xfb, 0x60, 0x54, 0x20, 0xd1, 0xd6, 0x4b, 0x9c, 0x7a, 0xfd, 0x40, 0xfd, 0x8b, 0x4e, 0xa1, 0x3f, - 0xc7, 0xfc, 0xfa, 0xfb, 0xd0, 0xea, 0xab, 0x62, 0xfd, 0x4c, 0x9d, 0x9c, 0xc7, 0x00, 0xd3, 0x0a, - 0xac, 0x8c, 0x52, 0x27, 0x2e, 0xd0, 0x18, 0x32, 0x4a, 0x11, 0xc1, 0x9d, 0x08, 0x8e, 0x24, 0x01, - 0x84, 0xf3, 0x8a, 0x03, 0x19, 0x7e, 0x1f, 0x06, 0x36, 0xa5, 0x8c, 0x46, 0xa9, 0x18, 0x3e, 0x7d, - 0x49, 0x32, 0x0d, 0xbe, 0x96, 0xbc, 0x62, 0x1d, 0xc1, 0x8e, 0xe2, 0x4c, 0x17, 0xdb, 0xa1, 0x92, - 0xad, 0x8a, 0x4d, 0xd5, 0x86, 0x2c, 0xd4, 0x2b, 0xd9, 0x2c, 0xbb, 0x28, 0x79, 0x34, 0x94, 0xd3, - 0x7c, 0xa7, 0x8f, 0xce, 0xaf, 0x60, 0xbf, 0xa7, 0x9a, 0xc4, 0x27, 0xa6, 0x70, 0x11, 0x04, 0x24, - 0xcd, 0x48, 0xa8, 0xac, 0x05, 0x2b, 0x43, 0x5c, 0x37, 0xca, 0x28, 0x8f, 0x64, 0x39, 0xa3, 0x65, - 0x54, 0x57, 0x47, 0xb1, 0xba, 0x11, 0x1d, 0x43, 0x4f, 0xe1, 0x2d, 0x86, 0xdd, 0x53, 0x70, 0x1d, - 0x0e, 0x47, 0x6f, 0x70, 0x1c, 0x85, 0x38, 0x23, 0x13, 0x92, 0x56, 0x20, 0xcf, 0xc0, 0x2c, 0x88, - 0x56, 0x25, 0x07, 0xee, 0x41, 0x39, 0x59, 0x6d, 0xf6, 0xcc, 0x95, 0x76, 0x23, 0x17, 0x4c, 0xdd, - 0xbd, 0x2e, 0x3b, 0x70, 0xad, 0x32, 0xd2, 0xcf, 0x17, 0x3c, 0x60, 0xd1, 0x82, 0x84, 0x3a, 0xc0, - 0x33, 0x35, 0x23, 0xdc, 0x79, 0x06, 0x0f, 0x9a, 0x45, 0x25, 0xd6, 0xa7, 0x8d, 0xd1, 0xd7, 0x76, - 0xc9, 0x17, 0x5f, 0x8b, 0x5e, 0x91, 0x72, 0x44, 0xbf, 0x75, 0xe0, 0xb8, 0xca, 0xfe, 0xdf, 0xda, - 0x3e, 0xdb, 0x6e, 0xbb, 0x8a, 0xdc, 0x6a, 0xb6, 0xb6, 0xb8, 0x46, 0x63, 0x71, 0x9f, 0x03, 0xda, - 0xea, 0xe1, 0x5f, 0xa2, 0x18, 0x81, 0x21, 0x3e, 0x10, 0xf4, 0x04, 0xcc, 0xa9, 0x10, 0x8e, 0x88, - 0x94, 0x57, 0x86, 0x23, 0xa1, 0x0c, 0x23, 0xe1, 0x92, 0xe6, 0xb5, 0x67, 0x12, 0xed, 0x75, 0x5c, - 0xd8, 0x2d, 0x8d, 0xe8, 0x43, 0x30, 0x5e, 0x91, 0x75, 0xb1, 0x83, 0xc6, 0x35, 0x59, 0xcb, 0xf1, - 0x0a, 0x4e, 0x73, 0xbd, 0x7d, 0x62, 0xbc, 0xef, 0xe4, 0xc1, 0xf9, 0xbd, 0x0b, 0x27, 0x2f, 0x92, - 0x38, 0x26, 0x41, 0xb6, 0x25, 0x1e, 0x25, 0xac, 0x49, 0x91, 0x44, 0xc3, 0x9a, 0xd4, 0x29, 0xec, - 0xde, 0x45, 0xe1, 0xee, 0x84, 0xe0, 0x30, 0x8e, 0xa8, 0x16, 0x90, 0x81, 0xbb, 0x5f, 0x86, 0xce, - 0xa3, 0x15, 0xf1, 0x76, 0xc3, 0xc2, 0x8b, 0x2e, 0xc0, 0xbc, 0x88, 0xe3, 0x39, 0x5e, 0x72, 0x21, - 0x23, 0x32, 0xe7, 0x13, 0x05, 0xb1, 0xb5, 0xb1, 0x51, 0x11, 0x59, 0x80, 0xc7, 0xfa, 0x64, 0x4f, - 0x60, 0xbf, 0xee, 0x90, 0x04, 0x5c, 0x37, 0x09, 0x78, 0x08, 0x1a, 0xb3, 0x22, 0x60, 0xe0, 0xee, - 0x96, 0x2c, 0x16, 0x54, 0x7c, 0xd3, 0xfd, 0xba, 0xe3, 0xbc, 0x85, 0xa3, 0xed, 0xa2, 0x72, 0x68, - 0xff, 0x7c, 0x6d, 0x36, 0xa2, 0xd1, 0x6d, 0x88, 0xc6, 0x0c, 0x4e, 0xa7, 0x37, 0x29, 0xa6, 0xe1, - 0xdb, 0x28, 0x0e, 0x03, 0xcc, 0xc2, 0x8a, 0xe7, 0xaf, 0x60, 0x4f, 0xca, 0x05, 0x4f, 0x71, 0x40, - 0x8a, 0xec, 0xd5, 0x17, 0x52, 0x39, 0xa6, 0x31, 0x59, 0x89, 0x31, 0x7b, 0x7b, 0xb4, 0xb4, 0x38, - 0xe7, 0xb0, 0x77, 0xc1, 0x98, 0x2f, 0xca, 0xd2, 0x25, 0xfa, 0x02, 0x3a, 0xfe, 0x9d, 0x97, 0x3b, - 0xdc, 0xc1, 0x70, 0xfc, 0xb7, 0x36, 0xb4, 0x4e, 0x1a, 0xaf, 0x7d, 0xbf, 0x02, 0x27, 0x99, 0xa9, - 0x92, 0x7b, 0x06, 0xf5, 0x7d, 0xb1, 0x85, 0x85, 0x3a, 0x74, 0x9b, 0x42, 0xbe, 0x59, 0x5b, 0x2d, - 0x18, 0xee, 0x1f, 0x3d, 0x18, 0x6a, 0x56, 0x2e, 0x31, 0xc5, 0x4b, 0xc2, 0xd0, 0x4f, 0x70, 0xd2, - 0x2a, 0x61, 0xe8, 0x73, 0x55, 0xe8, 0x36, 0x31, 0xb5, 0x3f, 0xbb, 0x2d, 0x44, 0xbe, 0x7e, 0x1f, - 0xa0, 0x57, 0x70, 0xb8, 0x85, 0x09, 0x7d, 0xa2, 0x6e, 0xb5, 0x13, 0x6e, 0x7f, 0xdc, 0xee, 0xd4, - 0xc9, 0xbe, 0x83, 0x83, 0xe6, 0x02, 0x20, 0xfb, 0xfd, 0xab, 0x68, 0x5b, 0xad, 0x3e, 0x9d, 0xe9, - 0x39, 0x1c, 0x88, 0x57, 0x39, 0x8e, 0xf8, 0x55, 0x33, 0x53, 0xeb, 0x53, 0x6d, 0x1f, 0xea, 0xa6, - 0x36, 0xaf, 0xba, 0x6a, 0xa5, 0xf9, 0xa4, 0xdd, 0x9a, 0x40, 0xb7, 0xd2, 0xf2, 0x06, 0x8a, 0x4c, - 0xdf, 0xc2, 0x7e, 0x5d, 0x4e, 0x91, 0x8e, 0x6d, 0x91, 0x75, 0xfb, 0xb4, 0xc5, 0xa3, 0x73, 0x4c, - 0x61, 0xd8, 0x50, 0x33, 0xa4, 0x69, 0x6c, 0x53, 0x59, 0xfb, 0xa3, 0x36, 0x97, 0x4e, 0xf3, 0x12, - 0x0e, 0x7f, 0xa4, 0xfc, 0x7f, 0x48, 0xe4, 0xc1, 0xe9, 0x25, 0xce, 0x82, 0xab, 0x1f, 0x72, 0xc2, - 0xd6, 0xf3, 0xa4, 0x5a, 0xf6, 0x7b, 0x0c, 0x7f, 0xd1, 0x57, 0xbf, 0xaf, 0xce, 0xff, 0x0a, 0x00, - 0x00, 0xff, 0xff, 0x43, 0xcf, 0x95, 0x03, 0xdb, 0x09, 0x00, 0x00, + // 821 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x56, 0xd9, 0x6e, 0xd3, 0x40, + 0x14, 0x25, 0x71, 0x93, 0x34, 0xd7, 0x59, 0xd4, 0x49, 0x17, 0xe3, 0x56, 0x5d, 0x8c, 0xd8, 0x84, + 0x48, 0x50, 0x2a, 0x41, 0xc5, 0x03, 0xa8, 0xb4, 0xa1, 0xa0, 0x2a, 0x55, 0x9b, 0xa4, 0x45, 0x3c, + 0xf0, 0xe0, 0xd8, 0x43, 0x62, 0xd5, 0xb1, 0xcd, 0xd8, 0x46, 0xcd, 0xb7, 0xf0, 0x23, 0x7c, 0x0c, + 0x1f, 0xc3, 0x2c, 0xb6, 0xb3, 0xe0, 0x2e, 0x08, 0x9e, 0x5a, 0xdf, 0x7b, 0xe7, 0xcc, 0xb9, 0xe7, + 0x2e, 0x13, 0x78, 0x33, 0xb0, 0x82, 0x61, 0xd8, 0xaf, 0x1b, 0xee, 0xa8, 0x61, 0x39, 0x01, 0xb6, + 0x7d, 0xd3, 0x7a, 0x7e, 0xd5, 0xf0, 0x1d, 0xdd, 0x6b, 0x0c, 0x88, 0x67, 0x34, 0x0c, 0xd7, 0x09, + 0x88, 0x6b, 0x7b, 0xc4, 0xbd, 0x1a, 0x37, 0xa6, 0x0c, 0x75, 0x6a, 0x09, 0x5c, 0x24, 0x51, 0x93, + 0xba, 0x7b, 0x3b, 0xc8, 0x68, 0xe4, 0x3a, 0xd1, 0x1f, 0x71, 0x52, 0x2b, 0x83, 0xdc, 0xc5, 0x84, + 0xb8, 0xa4, 0x83, 0x3d, 0x7b, 0xac, 0xfd, 0xc8, 0xc0, 0xca, 0x69, 0xd8, 0x3f, 0x25, 0xae, 0xd1, + 0xc6, 0x01, 0xb1, 0x0c, 0xbf, 0x83, 0xbf, 0x85, 0xd8, 0x0f, 0x50, 0x0d, 0xe4, 0x03, 0x7a, 0x27, + 0x76, 0x82, 0xde, 0xd8, 0xc3, 0x4a, 0x66, 0x3b, 0xf3, 0xa4, 0x88, 0xaa, 0x50, 0x88, 0x8c, 0x4a, + 0x96, 0x1a, 0x4a, 0x08, 0x01, 0x9c, 0xda, 0xe1, 0xc0, 0x72, 0x4e, 0xf4, 0x11, 0x56, 0x24, 0x1e, + 0xb4, 0x02, 0x65, 0x61, 0xbb, 0xc0, 0xc4, 0xb7, 0x5c, 0x47, 0x59, 0xa0, 0x66, 0x09, 0xed, 0x40, + 0x9e, 0x9e, 0xfd, 0x6a, 0x0d, 0x94, 0x1c, 0xfd, 0x96, 0x9b, 0x4b, 0xf5, 0x88, 0x98, 0xb0, 0xb6, + 0x75, 0x0f, 0x55, 0x20, 0xdf, 0xd3, 0xfd, 0xcb, 0x8f, 0xa6, 0x92, 0x67, 0x48, 0xda, 0x06, 0x40, + 0x2b, 0xe1, 0xca, 0xbc, 0xfc, 0xcb, 0xa7, 0x64, 0x24, 0xea, 0x3d, 0x86, 0x1a, 0xe3, 0x8d, 0x7d, + 0x3f, 0xa1, 0xce, 0xc2, 0xee, 0x46, 0x7c, 0x02, 0x26, 0x71, 0xb0, 0x33, 0xd8, 0x38, 0xc2, 0x81, + 0xe0, 0x3d, 0x75, 0x3c, 0x91, 0xa3, 0x04, 0x0b, 0x3c, 0x45, 0x01, 0x97, 0xa4, 0xcd, 0xaf, 0x60, + 0x88, 0x39, 0x76, 0x45, 0x9c, 0x30, 0xd3, 0x21, 0xa7, 0x7d, 0x06, 0xf5, 0x1a, 0x48, 0x46, 0x93, + 0xaa, 0xb4, 0x6f, 0x18, 0xd8, 0x0b, 0xb0, 0xc9, 0xad, 0x22, 0x29, 0x66, 0xee, 0xe0, 0x20, 0x24, + 0x4e, 0x6c, 0xce, 0x72, 0x73, 0x19, 0x72, 0x9c, 0xae, 0x90, 0x58, 0xd3, 0xa1, 0x76, 0xa1, 0xdb, + 0x96, 0xa9, 0x07, 0xf8, 0x10, 0x7b, 0x09, 0xc9, 0x2d, 0x28, 0x44, 0x52, 0x70, 0x34, 0xb9, 0x59, + 0x89, 0x35, 0x16, 0x66, 0xf4, 0x14, 0x0a, 0x82, 0x8f, 0xc0, 0x95, 0x9b, 0x4a, 0x1c, 0xd0, 0x0d, + 0xfb, 0xbe, 0x41, 0xac, 0x3e, 0x36, 0x45, 0x80, 0xf6, 0x12, 0x96, 0x66, 0xaf, 0x60, 0xa4, 0x77, + 0x66, 0x4a, 0x30, 0x55, 0xc3, 0x2e, 0x6d, 0x3a, 0xee, 0xd1, 0x86, 0xb0, 0x9c, 0x60, 0xfd, 0x15, + 0xb7, 0xad, 0x79, 0x6e, 0x49, 0x80, 0x30, 0x4f, 0x75, 0x87, 0x10, 0xe1, 0x15, 0xa0, 0xb9, 0x9b, + 0xee, 0x48, 0xf1, 0x21, 0x48, 0xac, 0xdb, 0x36, 0xa1, 0xd0, 0xa2, 0x43, 0x65, 0xe1, 0x38, 0xb4, + 0x5c, 0xa7, 0x53, 0x53, 0xa7, 0x2e, 0x66, 0x1e, 0x6b, 0x8f, 0x60, 0x31, 0xfe, 0x1f, 0xc9, 0x20, + 0x1d, 0xe3, 0x71, 0x54, 0x7d, 0x5a, 0x0c, 0x2a, 0x4d, 0x28, 0x0a, 0x5f, 0xd4, 0x7e, 0xd1, 0x19, + 0x3a, 0x70, 0x6d, 0x1b, 0x1b, 0xc1, 0xdc, 0x0c, 0xc5, 0x8c, 0x0f, 0xa3, 0x83, 0x53, 0x1a, 0x64, + 0x53, 0x35, 0xd8, 0x84, 0xc5, 0x43, 0xac, 0x9b, 0xb6, 0xe5, 0x88, 0x61, 0x92, 0x9b, 0xa5, 0x38, + 0xa2, 0x67, 0x8d, 0x30, 0xda, 0x83, 0xc2, 0xbe, 0x6d, 0xf7, 0xf4, 0x81, 0x4f, 0x87, 0x8a, 0x01, + 0x3c, 0xe6, 0x94, 0x53, 0x6f, 0xaf, 0x47, 0x91, 0x3c, 0x01, 0x75, 0x0f, 0x4a, 0xd3, 0xdf, 0x2c, + 0xa1, 0xcb, 0x24, 0xa1, 0x35, 0xc8, 0x7d, 0x4f, 0x12, 0x92, 0x9b, 0x8b, 0xb1, 0x0e, 0xaf, 0xb3, + 0x7b, 0x19, 0xed, 0x3d, 0xd4, 0xe6, 0xf1, 0x99, 0xce, 0xb7, 0xd6, 0x73, 0x32, 0x61, 0xbc, 0x85, + 0xb5, 0x16, 0xac, 0xb6, 0xae, 0x3c, 0xdd, 0x31, 0x3f, 0x59, 0xb6, 0x69, 0xe8, 0xc4, 0x4c, 0x64, + 0x7a, 0x06, 0x45, 0x36, 0x5b, 0xbe, 0xa7, 0x1b, 0x38, 0x02, 0x4b, 0xfa, 0x32, 0x71, 0xb4, 0x6c, + 0x3c, 0xa2, 0x13, 0xa4, 0xbd, 0x80, 0xe2, 0x3e, 0x21, 0x5d, 0x7a, 0x85, 0x33, 0x40, 0x0f, 0x20, + 0xd3, 0xbd, 0xf5, 0xc4, 0x39, 0x2c, 0xff, 0x71, 0x31, 0xcb, 0x60, 0x1d, 0xa4, 0x93, 0x6e, 0x37, + 0x61, 0xcf, 0x72, 0x9e, 0x20, 0x6f, 0xc7, 0x03, 0x97, 0x9d, 0x5d, 0x56, 0x49, 0x17, 0x35, 0x7f, + 0xe6, 0xa0, 0x2c, 0x52, 0x6d, 0xeb, 0x8e, 0x3e, 0xc0, 0x04, 0x7d, 0x81, 0x95, 0xd4, 0x81, 0x47, + 0x3b, 0x1c, 0xfc, 0xa6, 0xfd, 0xa2, 0x6e, 0xdd, 0x14, 0xc2, 0x36, 0xf5, 0x3d, 0x74, 0x0c, 0xd5, + 0xb9, 0x3c, 0xd0, 0x3a, 0x3f, 0x95, 0x2e, 0xab, 0x7a, 0x3f, 0xdd, 0x29, 0xc0, 0x3e, 0x40, 0x65, + 0xb6, 0xaa, 0x48, 0xbd, 0xbe, 0x95, 0x54, 0x25, 0xd5, 0x27, 0x90, 0xde, 0x42, 0x85, 0xbe, 0x20, + 0xb6, 0xe5, 0x0f, 0x67, 0x91, 0x52, 0x9f, 0x15, 0xb5, 0x2a, 0x48, 0x4d, 0x5e, 0x20, 0x4e, 0x65, + 0x76, 0x8f, 0xdf, 0x08, 0x20, 0xa8, 0xa4, 0x2c, 0x7e, 0x8a, 0xf4, 0x0e, 0x4a, 0xd3, 0x3b, 0x0b, + 0x89, 0xd8, 0x94, 0x4d, 0xa9, 0xae, 0xa6, 0x78, 0x04, 0x46, 0x0b, 0xca, 0x33, 0x5b, 0x05, 0x09, + 0x19, 0xd3, 0x76, 0x9a, 0xba, 0x96, 0xe6, 0x12, 0x30, 0x47, 0x50, 0x3d, 0x77, 0xfc, 0xff, 0x00, + 0xd4, 0x81, 0xd5, 0xb6, 0x1e, 0x18, 0xc3, 0xb3, 0x10, 0x93, 0x71, 0xcf, 0x4d, 0xba, 0xfb, 0x1f, + 0x8a, 0xdf, 0xcf, 0xf3, 0xdf, 0x02, 0xbb, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x71, 0xbc, 0x72, + 0xd1, 0x87, 0x08, 0x00, 0x00, }