Commit 57ea27ee authored by vyzo's avatar vyzo

remote tracer

parent 0aa629c7
......@@ -86,7 +86,7 @@ func (x *TraceEvent_Type) UnmarshalJSON(data []byte) error {
return nil
}
func (TraceEvent_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 0}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 0}
}
type TraceEvent struct {
......@@ -115,7 +115,7 @@ func (m *TraceEvent) Reset() { *m = TraceEvent{} }
func (m *TraceEvent) String() string { return proto.CompactTextString(m) }
func (*TraceEvent) ProtoMessage() {}
func (*TraceEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0}
return fileDescriptor_trace_a154d83c271edb68, []int{0}
}
func (m *TraceEvent) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -268,7 +268,7 @@ func (m *TraceEvent_PublishMessage) Reset() { *m = TraceEvent_PublishMes
func (m *TraceEvent_PublishMessage) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_PublishMessage) ProtoMessage() {}
func (*TraceEvent_PublishMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 0}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 0}
}
func (m *TraceEvent_PublishMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -324,7 +324,7 @@ func (m *TraceEvent_RejectMessage) Reset() { *m = TraceEvent_RejectMessa
func (m *TraceEvent_RejectMessage) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_RejectMessage) ProtoMessage() {}
func (*TraceEvent_RejectMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 1}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 1}
}
func (m *TraceEvent_RejectMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -386,7 +386,7 @@ func (m *TraceEvent_DuplicateMessage) Reset() { *m = TraceEvent_Duplicat
func (m *TraceEvent_DuplicateMessage) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_DuplicateMessage) ProtoMessage() {}
func (*TraceEvent_DuplicateMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 2}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 2}
}
func (m *TraceEvent_DuplicateMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -440,7 +440,7 @@ func (m *TraceEvent_DeliverMessage) Reset() { *m = TraceEvent_DeliverMes
func (m *TraceEvent_DeliverMessage) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_DeliverMessage) ProtoMessage() {}
func (*TraceEvent_DeliverMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 3}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 3}
}
func (m *TraceEvent_DeliverMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -488,7 +488,7 @@ func (m *TraceEvent_AddPeer) Reset() { *m = TraceEvent_AddPeer{} }
func (m *TraceEvent_AddPeer) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_AddPeer) ProtoMessage() {}
func (*TraceEvent_AddPeer) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 4}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 4}
}
func (m *TraceEvent_AddPeer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -542,7 +542,7 @@ func (m *TraceEvent_RemovePeer) Reset() { *m = TraceEvent_RemovePeer{} }
func (m *TraceEvent_RemovePeer) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_RemovePeer) ProtoMessage() {}
func (*TraceEvent_RemovePeer) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 5}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 5}
}
func (m *TraceEvent_RemovePeer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -590,7 +590,7 @@ func (m *TraceEvent_RecvRPC) Reset() { *m = TraceEvent_RecvRPC{} }
func (m *TraceEvent_RecvRPC) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_RecvRPC) ProtoMessage() {}
func (*TraceEvent_RecvRPC) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 6}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 6}
}
func (m *TraceEvent_RecvRPC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -645,7 +645,7 @@ func (m *TraceEvent_SendRPC) Reset() { *m = TraceEvent_SendRPC{} }
func (m *TraceEvent_SendRPC) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_SendRPC) ProtoMessage() {}
func (*TraceEvent_SendRPC) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 7}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 7}
}
func (m *TraceEvent_SendRPC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -700,7 +700,7 @@ func (m *TraceEvent_DropRPC) Reset() { *m = TraceEvent_DropRPC{} }
func (m *TraceEvent_DropRPC) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_DropRPC) ProtoMessage() {}
func (*TraceEvent_DropRPC) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 8}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 8}
}
func (m *TraceEvent_DropRPC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -754,7 +754,7 @@ func (m *TraceEvent_Join) Reset() { *m = TraceEvent_Join{} }
func (m *TraceEvent_Join) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_Join) ProtoMessage() {}
func (*TraceEvent_Join) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 9}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 9}
}
func (m *TraceEvent_Join) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -801,7 +801,7 @@ func (m *TraceEvent_Leave) Reset() { *m = TraceEvent_Leave{} }
func (m *TraceEvent_Leave) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_Leave) ProtoMessage() {}
func (*TraceEvent_Leave) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 10}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 10}
}
func (m *TraceEvent_Leave) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -849,7 +849,7 @@ func (m *TraceEvent_Graft) Reset() { *m = TraceEvent_Graft{} }
func (m *TraceEvent_Graft) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_Graft) ProtoMessage() {}
func (*TraceEvent_Graft) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 11}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 11}
}
func (m *TraceEvent_Graft) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -904,7 +904,7 @@ func (m *TraceEvent_Prune) Reset() { *m = TraceEvent_Prune{} }
func (m *TraceEvent_Prune) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_Prune) ProtoMessage() {}
func (*TraceEvent_Prune) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 12}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 12}
}
func (m *TraceEvent_Prune) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -960,7 +960,7 @@ func (m *TraceEvent_RPCMeta) Reset() { *m = TraceEvent_RPCMeta{} }
func (m *TraceEvent_RPCMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_RPCMeta) ProtoMessage() {}
func (*TraceEvent_RPCMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 13}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 13}
}
func (m *TraceEvent_RPCMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1022,7 +1022,7 @@ func (m *TraceEvent_MessageMeta) Reset() { *m = TraceEvent_MessageMeta{}
func (m *TraceEvent_MessageMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_MessageMeta) ProtoMessage() {}
func (*TraceEvent_MessageMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 14}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 14}
}
func (m *TraceEvent_MessageMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1077,7 +1077,7 @@ func (m *TraceEvent_SubMeta) Reset() { *m = TraceEvent_SubMeta{} }
func (m *TraceEvent_SubMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_SubMeta) ProtoMessage() {}
func (*TraceEvent_SubMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 15}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 15}
}
func (m *TraceEvent_SubMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1134,7 +1134,7 @@ func (m *TraceEvent_ControlMeta) Reset() { *m = TraceEvent_ControlMeta{}
func (m *TraceEvent_ControlMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_ControlMeta) ProtoMessage() {}
func (*TraceEvent_ControlMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 16}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 16}
}
func (m *TraceEvent_ControlMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1203,7 +1203,7 @@ func (m *TraceEvent_ControlIHaveMeta) Reset() { *m = TraceEvent_ControlI
func (m *TraceEvent_ControlIHaveMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_ControlIHaveMeta) ProtoMessage() {}
func (*TraceEvent_ControlIHaveMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 17}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 17}
}
func (m *TraceEvent_ControlIHaveMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1257,7 +1257,7 @@ func (m *TraceEvent_ControlIWantMeta) Reset() { *m = TraceEvent_ControlI
func (m *TraceEvent_ControlIWantMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_ControlIWantMeta) ProtoMessage() {}
func (*TraceEvent_ControlIWantMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 18}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 18}
}
func (m *TraceEvent_ControlIWantMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1304,7 +1304,7 @@ func (m *TraceEvent_ControlGraftMeta) Reset() { *m = TraceEvent_ControlG
func (m *TraceEvent_ControlGraftMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_ControlGraftMeta) ProtoMessage() {}
func (*TraceEvent_ControlGraftMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 19}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 19}
}
func (m *TraceEvent_ControlGraftMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1351,7 +1351,7 @@ func (m *TraceEvent_ControlPruneMeta) Reset() { *m = TraceEvent_ControlP
func (m *TraceEvent_ControlPruneMeta) String() string { return proto.CompactTextString(m) }
func (*TraceEvent_ControlPruneMeta) ProtoMessage() {}
func (*TraceEvent_ControlPruneMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_f5041bb48e7a4810, []int{0, 20}
return fileDescriptor_trace_a154d83c271edb68, []int{0, 20}
}
func (m *TraceEvent_ControlPruneMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
......@@ -1387,6 +1387,100 @@ func (m *TraceEvent_ControlPruneMeta) GetTopic() string {
return ""
}
type TraceEventBatch struct {
Batch []*TraceEvent `protobuf:"bytes,1,rep,name=batch" json:"batch,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TraceEventBatch) Reset() { *m = TraceEventBatch{} }
func (m *TraceEventBatch) String() string { return proto.CompactTextString(m) }
func (*TraceEventBatch) ProtoMessage() {}
func (*TraceEventBatch) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_a154d83c271edb68, []int{1}
}
func (m *TraceEventBatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *TraceEventBatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_TraceEventBatch.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalTo(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (dst *TraceEventBatch) XXX_Merge(src proto.Message) {
xxx_messageInfo_TraceEventBatch.Merge(dst, src)
}
func (m *TraceEventBatch) XXX_Size() int {
return m.Size()
}
func (m *TraceEventBatch) XXX_DiscardUnknown() {
xxx_messageInfo_TraceEventBatch.DiscardUnknown(m)
}
var xxx_messageInfo_TraceEventBatch proto.InternalMessageInfo
func (m *TraceEventBatch) GetBatch() []*TraceEvent {
if m != nil {
return m.Batch
}
return nil
}
type CompressedTraceEventBatch struct {
Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CompressedTraceEventBatch) Reset() { *m = CompressedTraceEventBatch{} }
func (m *CompressedTraceEventBatch) String() string { return proto.CompactTextString(m) }
func (*CompressedTraceEventBatch) ProtoMessage() {}
func (*CompressedTraceEventBatch) Descriptor() ([]byte, []int) {
return fileDescriptor_trace_a154d83c271edb68, []int{2}
}
func (m *CompressedTraceEventBatch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *CompressedTraceEventBatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_CompressedTraceEventBatch.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalTo(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (dst *CompressedTraceEventBatch) XXX_Merge(src proto.Message) {
xxx_messageInfo_CompressedTraceEventBatch.Merge(dst, src)
}
func (m *CompressedTraceEventBatch) XXX_Size() int {
return m.Size()
}
func (m *CompressedTraceEventBatch) XXX_DiscardUnknown() {
xxx_messageInfo_CompressedTraceEventBatch.DiscardUnknown(m)
}
var xxx_messageInfo_CompressedTraceEventBatch proto.InternalMessageInfo
func (m *CompressedTraceEventBatch) GetData() []byte {
if m != nil {
return m.Data
}
return nil
}
func init() {
proto.RegisterType((*TraceEvent)(nil), "pubsub.pb.TraceEvent")
proto.RegisterType((*TraceEvent_PublishMessage)(nil), "pubsub.pb.TraceEvent.PublishMessage")
......@@ -1410,6 +1504,8 @@ func init() {
proto.RegisterType((*TraceEvent_ControlIWantMeta)(nil), "pubsub.pb.TraceEvent.ControlIWantMeta")
proto.RegisterType((*TraceEvent_ControlGraftMeta)(nil), "pubsub.pb.TraceEvent.ControlGraftMeta")
proto.RegisterType((*TraceEvent_ControlPruneMeta)(nil), "pubsub.pb.TraceEvent.ControlPruneMeta")
proto.RegisterType((*TraceEventBatch)(nil), "pubsub.pb.TraceEventBatch")
proto.RegisterType((*CompressedTraceEventBatch)(nil), "pubsub.pb.CompressedTraceEventBatch")
proto.RegisterEnum("pubsub.pb.TraceEvent_Type", TraceEvent_Type_name, TraceEvent_Type_value)
}
func (m *TraceEvent) Marshal() (dAtA []byte, err error) {
......@@ -2334,6 +2430,66 @@ func (m *TraceEvent_ControlPruneMeta) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *TraceEventBatch) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *TraceEventBatch) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Batch) > 0 {
for _, msg := range m.Batch {
dAtA[i] = 0xa
i++
i = encodeVarintTrace(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n
}
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
return i, nil
}
func (m *CompressedTraceEventBatch) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CompressedTraceEventBatch) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Data != nil {
dAtA[i] = 0xa
i++
i = encodeVarintTrace(dAtA, i, uint64(len(m.Data)))
i += copy(dAtA[i:], m.Data)
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
return i, nil
}
func encodeVarintTrace(dAtA []byte, offset int, v uint64) int {
for v >= 1<<7 {
dAtA[offset] = uint8(v&0x7f | 0x80)
......@@ -2844,6 +3000,40 @@ func (m *TraceEvent_ControlPruneMeta) Size() (n int) {
return n
}
func (m *TraceEventBatch) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.Batch) > 0 {
for _, e := range m.Batch {
l = e.Size()
n += 1 + l + sovTrace(uint64(l))
}
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *CompressedTraceEventBatch) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.Data != nil {
l = len(m.Data)
n += 1 + l + sovTrace(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func sovTrace(x uint64) (n int) {
for {
n++
......@@ -5668,6 +5858,170 @@ func (m *TraceEvent_ControlPruneMeta) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *TraceEventBatch) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTrace
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: TraceEventBatch: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: TraceEventBatch: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Batch", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTrace
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTrace
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Batch = append(m.Batch, &TraceEvent{})
if err := m.Batch[len(m.Batch)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTrace(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthTrace
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *CompressedTraceEventBatch) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTrace
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CompressedTraceEventBatch: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CompressedTraceEventBatch: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTrace
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthTrace
}
postIndex := iNdEx + byteLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
if m.Data == nil {
m.Data = []byte{}
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTrace(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthTrace
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipTrace(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
......@@ -5773,68 +6127,71 @@ var (
ErrIntOverflowTrace = fmt.Errorf("proto: integer overflow")
)
func init() { proto.RegisterFile("trace.proto", fileDescriptor_trace_f5041bb48e7a4810) }
var fileDescriptor_trace_f5041bb48e7a4810 = []byte{
// 958 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xcf, 0x6e, 0xdb, 0x46,
0x10, 0xc6, 0x4b, 0xfd, 0x31, 0xc5, 0x11, 0x2d, 0xb3, 0xdb, 0xa6, 0x20, 0xd8, 0xc4, 0x50, 0xdd,
0x20, 0xd0, 0x49, 0x40, 0x0c, 0x14, 0x39, 0x34, 0x01, 0xaa, 0x88, 0xb4, 0x2d, 0x43, 0xb6, 0x89,
0x91, 0xac, 0x1e, 0x5d, 0x4a, 0xda, 0x26, 0x0c, 0x24, 0x92, 0x20, 0x29, 0x15, 0x79, 0x80, 0xbe,
0x5b, 0x6e, 0xed, 0x23, 0x14, 0x3e, 0xf5, 0x31, 0x8a, 0xdd, 0x25, 0x29, 0x51, 0xa6, 0x98, 0x34,
0xed, 0x8d, 0xb3, 0xfc, 0x7e, 0xb3, 0x3b, 0xcb, 0xf9, 0x06, 0x84, 0x66, 0x1c, 0x3a, 0x33, 0xda,
0x0d, 0x42, 0x3f, 0xf6, 0x89, 0x12, 0xac, 0xa6, 0xd1, 0x6a, 0xda, 0x0d, 0xa6, 0x27, 0x7f, 0x3f,
0x02, 0x18, 0xb3, 0x57, 0xd6, 0x9a, 0x7a, 0x31, 0xe9, 0x42, 0x2d, 0x7e, 0x1f, 0x50, 0x5d, 0x6a,
0x4b, 0x9d, 0xd6, 0xa9, 0xd1, 0xcd, 0x84, 0xdd, 0x8d, 0xa8, 0x3b, 0x7e, 0x1f, 0x50, 0xe4, 0x3a,
0xf2, 0x0d, 0x1c, 0x04, 0x94, 0x86, 0x03, 0x53, 0xaf, 0xb4, 0xa5, 0x8e, 0x8a, 0x49, 0x44, 0x1e,
0x83, 0x12, 0xbb, 0x4b, 0x1a, 0xc5, 0xce, 0x32, 0xd0, 0xab, 0x6d, 0xa9, 0x53, 0xc5, 0xcd, 0x02,
0x19, 0x42, 0x2b, 0x58, 0x4d, 0x17, 0x6e, 0xf4, 0xf6, 0x8a, 0x46, 0x91, 0xf3, 0x86, 0xea, 0xb5,
0xb6, 0xd4, 0x69, 0x9e, 0x3e, 0x2d, 0xde, 0xcf, 0xce, 0x69, 0x71, 0x87, 0x25, 0x03, 0x38, 0x0c,
0xe9, 0x3b, 0x3a, 0x8b, 0xd3, 0x64, 0x75, 0x9e, 0xec, 0xfb, 0xe2, 0x64, 0xb8, 0x2d, 0xc5, 0x3c,
0x49, 0x10, 0xb4, 0xf9, 0x2a, 0x58, 0xb8, 0x33, 0x27, 0xa6, 0x69, 0xb6, 0x03, 0x9e, 0xed, 0x59,
0x71, 0x36, 0x73, 0x47, 0x8d, 0x0f, 0x78, 0x56, 0xec, 0x9c, 0x2e, 0xdc, 0x35, 0x0d, 0xd3, 0x8c,
0x72, 0x59, 0xb1, 0x66, 0x4e, 0x8b, 0x3b, 0x2c, 0x79, 0x01, 0xb2, 0x33, 0x9f, 0xdb, 0x94, 0x86,
0x7a, 0x83, 0xa7, 0x79, 0x52, 0x9c, 0xa6, 0x27, 0x44, 0x98, 0xaa, 0xc9, 0x4f, 0x00, 0x21, 0x5d,
0xfa, 0x6b, 0xca, 0x59, 0x85, 0xb3, 0xed, 0x7d, 0x57, 0x94, 0xea, 0x70, 0x8b, 0x61, 0x5b, 0x87,
0x74, 0xb6, 0x46, 0xbb, 0xaf, 0x43, 0xd9, 0xd6, 0x28, 0x44, 0x98, 0xaa, 0x19, 0x18, 0x51, 0x6f,
0xce, 0xc0, 0x66, 0x19, 0x38, 0x12, 0x22, 0x4c, 0xd5, 0x0c, 0x9c, 0x87, 0x7e, 0xc0, 0x40, 0xb5,
0x0c, 0x34, 0x85, 0x08, 0x53, 0x35, 0x6b, 0xe3, 0x77, 0xbe, 0xeb, 0xe9, 0x87, 0x9c, 0xda, 0xd3,
0xc6, 0x97, 0xbe, 0xeb, 0x21, 0xd7, 0x91, 0xe7, 0x50, 0x5f, 0x50, 0x67, 0x4d, 0xf5, 0x16, 0x07,
0xbe, 0x2d, 0x06, 0x86, 0x4c, 0x82, 0x42, 0xc9, 0x90, 0x37, 0xa1, 0xf3, 0x6b, 0xac, 0x1f, 0x95,
0x21, 0xe7, 0x4c, 0x82, 0x42, 0xc9, 0x90, 0x20, 0x5c, 0x79, 0x54, 0xd7, 0xca, 0x10, 0x9b, 0x49,
0x50, 0x28, 0x8d, 0x33, 0x68, 0xe5, 0xbb, 0x9f, 0x39, 0x6b, 0x29, 0x1e, 0x07, 0x26, 0xb7, 0xa9,
0x8a, 0x9b, 0x05, 0xe6, 0xc7, 0xd8, 0x0f, 0xdc, 0x59, 0xa4, 0x57, 0xda, 0xd5, 0x8e, 0x82, 0x49,
0x64, 0xb8, 0x70, 0x98, 0x6b, 0xfc, 0x8f, 0xa4, 0x39, 0x01, 0x35, 0xa4, 0x33, 0xea, 0xae, 0xe9,
0xfc, 0x2c, 0xf4, 0x97, 0x89, 0xb9, 0x73, 0x6b, 0x6c, 0xab, 0x90, 0x3a, 0x91, 0xef, 0x71, 0x7f,
0x2b, 0x98, 0x44, 0xc6, 0x18, 0xb4, 0x5d, 0x57, 0xfc, 0xf7, 0xdd, 0x8c, 0x2e, 0xb4, 0xf2, 0xce,
0x28, 0xcf, 0x69, 0xbc, 0x00, 0x39, 0xb1, 0xc0, 0xd6, 0x8c, 0x92, 0x72, 0x33, 0xea, 0x6b, 0xf6,
0x39, 0xfc, 0xd8, 0xe7, 0xfb, 0x29, 0x28, 0x02, 0xe3, 0x29, 0xc0, 0xa6, 0xff, 0xf7, 0xb1, 0xc6,
0x2f, 0x20, 0x27, 0x6d, 0xfe, 0xe0, 0xf4, 0x52, 0xc1, 0x5d, 0x3d, 0x87, 0xda, 0x92, 0xc6, 0x0e,
0xdf, 0x69, 0xbf, 0x6f, 0xec, 0xfe, 0x15, 0x8d, 0x1d, 0xe4, 0x52, 0x63, 0x0c, 0x72, 0xe2, 0x07,
0x76, 0x08, 0xe6, 0x88, 0xb1, 0x9f, 0x1e, 0x42, 0x44, 0x9f, 0x99, 0x35, 0x31, 0xcb, 0xff, 0x99,
0xf5, 0x31, 0xd4, 0x98, 0x99, 0xd8, 0x8d, 0xf2, 0x7e, 0xe3, 0x19, 0x15, 0x14, 0x81, 0xf1, 0x04,
0xea, 0xdc, 0x39, 0x9b, 0xd7, 0x95, 0xed, 0xd7, 0x3f, 0x40, 0x9d, 0xbb, 0xa4, 0xec, 0x3b, 0x15,
0x63, 0xdc, 0x29, 0xff, 0x12, 0xfb, 0x20, 0x81, 0x9c, 0x1c, 0x9e, 0xbc, 0x82, 0x46, 0xd2, 0x30,
0x91, 0x2e, 0xb5, 0xab, 0x9d, 0xe6, 0xe9, 0x77, 0xc5, 0xd5, 0x26, 0x2d, 0xc7, 0x2b, 0xce, 0x10,
0xd2, 0x03, 0x35, 0x5a, 0x4d, 0xa3, 0x59, 0xe8, 0x06, 0xb1, 0xeb, 0x7b, 0xdc, 0x71, 0xfb, 0x67,
0xdb, 0x6a, 0xca, 0xf1, 0x1c, 0x42, 0x7e, 0x04, 0x79, 0xe6, 0x7b, 0x71, 0xe8, 0x2f, 0xb8, 0x89,
0xf6, 0x1e, 0xa0, 0x2f, 0x44, 0x3c, 0x43, 0x4a, 0x18, 0x7d, 0x68, 0x6e, 0x1d, 0xec, 0x33, 0x07,
0xc3, 0x2b, 0x90, 0x93, 0xa3, 0xb1, 0x04, 0xc9, 0xe1, 0xa6, 0xe2, 0x07, 0xa0, 0x81, 0x9b, 0x85,
0x3d, 0xd7, 0xf9, 0x7b, 0x05, 0x9a, 0x5b, 0x87, 0x23, 0x2f, 0xa1, 0xee, 0xbe, 0x65, 0x83, 0x54,
0xdc, 0xe7, 0xb3, 0xd2, 0x72, 0x06, 0x17, 0xce, 0x5a, 0x5c, 0xaa, 0x80, 0x38, 0xfd, 0x9b, 0xe3,
0xc5, 0xc9, 0x55, 0x7e, 0x84, 0xfe, 0xd9, 0xf1, 0xe2, 0x84, 0x66, 0x10, 0xa3, 0xc5, 0x44, 0xae,
0x7e, 0x02, 0xcd, 0x5b, 0x4e, 0xd0, 0x62, 0x38, 0xbf, 0x4c, 0x87, 0x73, 0xed, 0x13, 0x68, 0xde,
0x79, 0x82, 0x16, 0x73, 0xfa, 0x02, 0xb4, 0xdd, 0xa2, 0x8a, 0xdd, 0x40, 0x8e, 0x01, 0xb2, 0xaf,
0x22, 0x3e, 0x86, 0x8a, 0x5b, 0x2b, 0xc6, 0xe9, 0x26, 0x53, 0x5a, 0xe0, 0x0e, 0x23, 0x3d, 0x60,
0x3a, 0x19, 0x93, 0x95, 0xb5, 0xc7, 0x8b, 0x1b, 0x65, 0x56, 0x42, 0xb1, 0xf2, 0xe4, 0x0f, 0x09,
0x6a, 0xec, 0x47, 0x8f, 0x7c, 0x05, 0x47, 0xf6, 0xed, 0xeb, 0xe1, 0x60, 0x74, 0x71, 0x77, 0x65,
0x8d, 0x46, 0xbd, 0x73, 0x4b, 0xfb, 0x82, 0x10, 0x68, 0xa1, 0x75, 0x69, 0xf5, 0xc7, 0xd9, 0x9a,
0x44, 0x1e, 0xc1, 0x97, 0xe6, 0xad, 0x3d, 0x1c, 0xf4, 0x7b, 0x63, 0x2b, 0x5b, 0xae, 0x30, 0xde,
0xb4, 0x86, 0x83, 0x89, 0x85, 0xd9, 0x62, 0x95, 0xa8, 0xd0, 0xe8, 0x99, 0xe6, 0x9d, 0x6d, 0x59,
0xa8, 0xd5, 0xc8, 0x11, 0x34, 0xd1, 0xba, 0xba, 0x99, 0x58, 0x62, 0xa1, 0xce, 0x5e, 0xa3, 0xd5,
0x9f, 0xdc, 0xa1, 0xdd, 0xd7, 0x0e, 0x58, 0x34, 0xb2, 0xae, 0x4d, 0x1e, 0xc9, 0x2c, 0x32, 0xf1,
0xc6, 0xe6, 0x51, 0x83, 0x34, 0xa0, 0x76, 0x79, 0x33, 0xb8, 0xd6, 0x14, 0xa2, 0x40, 0x7d, 0x68,
0xf5, 0x26, 0x96, 0x06, 0xec, 0xf1, 0x1c, 0x7b, 0x67, 0x63, 0xad, 0xc9, 0x1e, 0x6d, 0xbc, 0xbd,
0xb6, 0x34, 0xf5, 0xb5, 0xfa, 0xe1, 0xfe, 0x58, 0xfa, 0xf3, 0xfe, 0x58, 0xfa, 0xeb, 0xfe, 0x58,
0xfa, 0x27, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x5e, 0x59, 0x8a, 0x11, 0x0b, 0x00, 0x00,
func init() { proto.RegisterFile("trace.proto", fileDescriptor_trace_a154d83c271edb68) }
var fileDescriptor_trace_a154d83c271edb68 = []byte{
// 1006 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xc7, 0x71, 0x3e, 0x36, 0xc9, 0x49, 0x9a, 0x9a, 0x81, 0x22, 0x63, 0x76, 0xab, 0x10, 0x56,
0xab, 0x48, 0x48, 0x41, 0x5b, 0x09, 0xed, 0x05, 0xbb, 0x88, 0x34, 0x76, 0xdb, 0x54, 0x69, 0x6b,
0x9d, 0xa4, 0xe5, 0xb2, 0x38, 0xc9, 0xb0, 0xf5, 0x2a, 0xb1, 0x2d, 0x7b, 0x12, 0xb4, 0x0f, 0xc0,
0xbb, 0xed, 0x1d, 0x3c, 0x02, 0xea, 0x15, 0x8f, 0x81, 0x66, 0xc6, 0x8e, 0xe3, 0xd4, 0xf1, 0x2e,
0x0b, 0x77, 0x73, 0xc6, 0xff, 0xdf, 0x99, 0xaf, 0xf3, 0x3f, 0x32, 0xd4, 0x59, 0x60, 0x4f, 0x69,
0xd7, 0x0f, 0x3c, 0xe6, 0x91, 0x9a, 0xbf, 0x9c, 0x84, 0xcb, 0x49, 0xd7, 0x9f, 0xb4, 0xff, 0x3e,
0x00, 0x18, 0xf3, 0x4f, 0xe6, 0x8a, 0xba, 0x8c, 0x74, 0xa1, 0xc4, 0xde, 0xfa, 0x54, 0x53, 0x5a,
0x4a, 0xa7, 0x79, 0xa4, 0x77, 0xd7, 0xc2, 0x6e, 0x22, 0xea, 0x8e, 0xdf, 0xfa, 0x14, 0x85, 0x8e,
0x7c, 0x01, 0x8f, 0x7c, 0x4a, 0x83, 0x81, 0xa1, 0x15, 0x5a, 0x4a, 0xa7, 0x81, 0x51, 0x44, 0x1e,
0x43, 0x8d, 0x39, 0x0b, 0x1a, 0x32, 0x7b, 0xe1, 0x6b, 0xc5, 0x96, 0xd2, 0x29, 0x62, 0x32, 0x41,
0x86, 0xd0, 0xf4, 0x97, 0x93, 0xb9, 0x13, 0xde, 0x5d, 0xd0, 0x30, 0xb4, 0x5f, 0x53, 0xad, 0xd4,
0x52, 0x3a, 0xf5, 0xa3, 0xa7, 0xd9, 0xeb, 0x59, 0x29, 0x2d, 0x6e, 0xb1, 0x64, 0x00, 0x7b, 0x01,
0x7d, 0x43, 0xa7, 0x2c, 0x4e, 0x56, 0x16, 0xc9, 0xbe, 0xc9, 0x4e, 0x86, 0x9b, 0x52, 0x4c, 0x93,
0x04, 0x41, 0x9d, 0x2d, 0xfd, 0xb9, 0x33, 0xb5, 0x19, 0x8d, 0xb3, 0x3d, 0x12, 0xd9, 0x9e, 0x65,
0x67, 0x33, 0xb6, 0xd4, 0xf8, 0x80, 0xe7, 0x87, 0x9d, 0xd1, 0xb9, 0xb3, 0xa2, 0x41, 0x9c, 0xb1,
0x92, 0x77, 0x58, 0x23, 0xa5, 0xc5, 0x2d, 0x96, 0xbc, 0x80, 0x8a, 0x3d, 0x9b, 0x59, 0x94, 0x06,
0x5a, 0x55, 0xa4, 0x79, 0x92, 0x9d, 0xa6, 0x27, 0x45, 0x18, 0xab, 0xc9, 0x4f, 0x00, 0x01, 0x5d,
0x78, 0x2b, 0x2a, 0xd8, 0x9a, 0x60, 0x5b, 0xbb, 0xae, 0x28, 0xd6, 0xe1, 0x06, 0xc3, 0x97, 0x0e,
0xe8, 0x74, 0x85, 0x56, 0x5f, 0x83, 0xbc, 0xa5, 0x51, 0x8a, 0x30, 0x56, 0x73, 0x30, 0xa4, 0xee,
0x8c, 0x83, 0xf5, 0x3c, 0x70, 0x24, 0x45, 0x18, 0xab, 0x39, 0x38, 0x0b, 0x3c, 0x9f, 0x83, 0x8d,
0x3c, 0xd0, 0x90, 0x22, 0x8c, 0xd5, 0xbc, 0x8c, 0xdf, 0x78, 0x8e, 0xab, 0xed, 0x09, 0x6a, 0x47,
0x19, 0x9f, 0x7b, 0x8e, 0x8b, 0x42, 0x47, 0x9e, 0x43, 0x79, 0x4e, 0xed, 0x15, 0xd5, 0x9a, 0x02,
0xf8, 0x2a, 0x1b, 0x18, 0x72, 0x09, 0x4a, 0x25, 0x47, 0x5e, 0x07, 0xf6, 0xaf, 0x4c, 0xdb, 0xcf,
0x43, 0x4e, 0xb9, 0x04, 0xa5, 0x92, 0x23, 0x7e, 0xb0, 0x74, 0xa9, 0xa6, 0xe6, 0x21, 0x16, 0x97,
0xa0, 0x54, 0xea, 0x27, 0xd0, 0x4c, 0x57, 0x3f, 0x77, 0xd6, 0x42, 0x0e, 0x07, 0x86, 0xb0, 0x69,
0x03, 0x93, 0x09, 0xee, 0x47, 0xe6, 0xf9, 0xce, 0x34, 0xd4, 0x0a, 0xad, 0x62, 0xa7, 0x86, 0x51,
0xa4, 0x3b, 0xb0, 0x97, 0x2a, 0xfc, 0xf7, 0xa4, 0x69, 0x43, 0x23, 0xa0, 0x53, 0xea, 0xac, 0xe8,
0xec, 0x24, 0xf0, 0x16, 0x91, 0xb9, 0x53, 0x73, 0x7c, 0xa9, 0x80, 0xda, 0xa1, 0xe7, 0x0a, 0x7f,
0xd7, 0x30, 0x8a, 0xf4, 0x31, 0xa8, 0xdb, 0xae, 0xf8, 0xef, 0xab, 0xe9, 0x5d, 0x68, 0xa6, 0x9d,
0x91, 0x9f, 0x53, 0x7f, 0x01, 0x95, 0xc8, 0x02, 0x1b, 0x3d, 0x4a, 0x49, 0xf5, 0xa8, 0xcf, 0xf9,
0x73, 0x78, 0xcc, 0x13, 0xeb, 0xd5, 0x50, 0x06, 0xfa, 0x53, 0x80, 0xa4, 0xfe, 0x77, 0xb1, 0xfa,
0x2f, 0x50, 0x89, 0xca, 0xfc, 0xc1, 0xee, 0x95, 0x8c, 0xbb, 0x7a, 0x0e, 0xa5, 0x05, 0x65, 0xb6,
0x58, 0x69, 0xb7, 0x6f, 0xac, 0xfe, 0x05, 0x65, 0x36, 0x0a, 0xa9, 0x3e, 0x86, 0x4a, 0xe4, 0x07,
0xbe, 0x09, 0xee, 0x88, 0xb1, 0x17, 0x6f, 0x42, 0x46, 0x1f, 0x99, 0x35, 0x32, 0xcb, 0xff, 0x99,
0xf5, 0x31, 0x94, 0xb8, 0x99, 0xf8, 0x8d, 0x8a, 0x7a, 0x13, 0x19, 0x6b, 0x28, 0x03, 0xfd, 0x09,
0x94, 0x85, 0x73, 0x92, 0xcf, 0x85, 0xcd, 0xcf, 0xdf, 0x43, 0x59, 0xb8, 0x24, 0xef, 0x9d, 0xb2,
0x31, 0xe1, 0x94, 0x7f, 0x89, 0xbd, 0x53, 0xa0, 0x12, 0x6d, 0x9e, 0xbc, 0x82, 0x6a, 0x54, 0x30,
0xa1, 0xa6, 0xb4, 0x8a, 0x9d, 0xfa, 0xd1, 0xd7, 0xd9, 0xa7, 0x8d, 0x4a, 0x4e, 0x9c, 0x78, 0x8d,
0x90, 0x1e, 0x34, 0xc2, 0xe5, 0x24, 0x9c, 0x06, 0x8e, 0xcf, 0x1c, 0xcf, 0x15, 0x8e, 0xdb, 0xdd,
0xdb, 0x96, 0x13, 0x81, 0xa7, 0x10, 0xf2, 0x03, 0x54, 0xa6, 0x9e, 0xcb, 0x02, 0x6f, 0x2e, 0x4c,
0xb4, 0x73, 0x03, 0x7d, 0x29, 0x12, 0x19, 0x62, 0x42, 0xef, 0x43, 0x7d, 0x63, 0x63, 0x1f, 0xd9,
0x18, 0x5e, 0x41, 0x25, 0xda, 0x1a, 0x4f, 0x10, 0x6d, 0x6e, 0x22, 0x7f, 0x00, 0xaa, 0x98, 0x4c,
0xec, 0xb8, 0xce, 0xdf, 0x0b, 0x50, 0xdf, 0xd8, 0x1c, 0x79, 0x09, 0x65, 0xe7, 0x8e, 0x37, 0x52,
0x79, 0x9f, 0xcf, 0x72, 0x8f, 0x33, 0x38, 0xb3, 0x57, 0xf2, 0x52, 0x25, 0x24, 0xe8, 0xdf, 0x6c,
0x97, 0x45, 0x57, 0xf9, 0x1e, 0xfa, 0x67, 0xdb, 0x65, 0x11, 0xcd, 0x21, 0x4e, 0xcb, 0x8e, 0x5c,
0xfc, 0x00, 0x5a, 0x94, 0x9c, 0xa4, 0x65, 0x73, 0x7e, 0x19, 0x37, 0xe7, 0xd2, 0x07, 0xd0, 0xa2,
0xf2, 0x24, 0x2d, 0xfb, 0xf4, 0x19, 0xa8, 0xdb, 0x87, 0xca, 0x76, 0x03, 0x39, 0x04, 0x58, 0xbf,
0x8a, 0x7c, 0x8c, 0x06, 0x6e, 0xcc, 0xe8, 0x47, 0x49, 0xa6, 0xf8, 0x80, 0x5b, 0x8c, 0xf2, 0x80,
0xe9, 0xac, 0x99, 0xf5, 0xb1, 0x76, 0x78, 0x31, 0x51, 0xae, 0x8f, 0x90, 0xad, 0x6c, 0xff, 0xa1,
0x40, 0x89, 0xff, 0xe8, 0x91, 0xcf, 0x60, 0xdf, 0xba, 0x3e, 0x1e, 0x0e, 0x46, 0x67, 0xb7, 0x17,
0xe6, 0x68, 0xd4, 0x3b, 0x35, 0xd5, 0x4f, 0x08, 0x81, 0x26, 0x9a, 0xe7, 0x66, 0x7f, 0xbc, 0x9e,
0x53, 0xc8, 0x01, 0x7c, 0x6a, 0x5c, 0x5b, 0xc3, 0x41, 0xbf, 0x37, 0x36, 0xd7, 0xd3, 0x05, 0xce,
0x1b, 0xe6, 0x70, 0x70, 0x63, 0xe2, 0x7a, 0xb2, 0x48, 0x1a, 0x50, 0xed, 0x19, 0xc6, 0xad, 0x65,
0x9a, 0xa8, 0x96, 0xc8, 0x3e, 0xd4, 0xd1, 0xbc, 0xb8, 0xba, 0x31, 0xe5, 0x44, 0x99, 0x7f, 0x46,
0xb3, 0x7f, 0x73, 0x8b, 0x56, 0x5f, 0x7d, 0xc4, 0xa3, 0x91, 0x79, 0x69, 0x88, 0xa8, 0xc2, 0x23,
0x03, 0xaf, 0x2c, 0x11, 0x55, 0x49, 0x15, 0x4a, 0xe7, 0x57, 0x83, 0x4b, 0xb5, 0x46, 0x6a, 0x50,
0x1e, 0x9a, 0xbd, 0x1b, 0x53, 0x05, 0x3e, 0x3c, 0xc5, 0xde, 0xc9, 0x58, 0xad, 0xf3, 0xa1, 0x85,
0xd7, 0x97, 0xa6, 0xda, 0x68, 0xff, 0x08, 0xfb, 0xc9, 0x4b, 0x1e, 0xdb, 0x6c, 0x7a, 0x47, 0xbe,
0x85, 0xf2, 0x84, 0x0f, 0xa2, 0x72, 0x3d, 0xc8, 0x7c, 0x74, 0x94, 0x9a, 0xf6, 0x77, 0xf0, 0x65,
0xdf, 0x5b, 0xf8, 0x01, 0x0d, 0x43, 0x3a, 0xdb, 0xce, 0x44, 0xa0, 0x34, 0xb3, 0x99, 0x1d, 0x19,
0x4f, 0x8c, 0x8f, 0x1b, 0xef, 0xee, 0x0f, 0x95, 0x3f, 0xef, 0x0f, 0x95, 0xbf, 0xee, 0x0f, 0x95,
0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x80, 0x70, 0x3c, 0x82, 0x0b, 0x00, 0x00,
}
......@@ -139,3 +139,11 @@ message TraceEvent {
optional string topic = 1;
}
}
message TraceEventBatch {
repeated TraceEvent batch = 1;
}
message CompressedTraceEventBatch {
optional bytes data = 1;
}
package pubsub
import (
"bytes"
"compress/gzip"
"context"
"encoding/json"
"io"
"os"
"sync"
ggio "github.com/gogo/protobuf/io"
"time"
pb "github.com/libp2p/go-libp2p-pubsub/pb"
"github.com/libp2p/go-libp2p-core/helpers"
"github.com/libp2p/go-libp2p-core/host"
"github.com/libp2p/go-libp2p-core/network"
"github.com/libp2p/go-libp2p-core/peer"
"github.com/libp2p/go-libp2p-core/protocol"
ggio "github.com/gogo/protobuf/io"
)
type basicTracer struct {
......@@ -136,3 +146,152 @@ func (t *PBTracer) doWrite() {
}
var _ EventTracer = (*PBTracer)(nil)
const RemoteTracerProtoID = protocol.ID("/libp2p/pubsub/tracer/1.0.0")
// RemoteTracer is a tracer that sends trace events to a remote peer
type RemoteTracer struct {
basicTracer
ctx context.Context
host host.Host
pi peer.AddrInfo
}
// NewRemoteTracer constructs a RemoteTracer, tracing to the peer identified by pi
func NewRemoteTracer(ctx context.Context, host host.Host, pi peer.AddrInfo) (*RemoteTracer, error) {
tr := &RemoteTracer{ctx: ctx, host: host, pi: pi, basicTracer: basicTracer{ch: make(chan struct{}, 1)}}
go tr.doWrite()
return tr, nil
}
func (t *RemoteTracer) doWrite() {
var buf []*pb.TraceEvent
s, err := t.openStream()
if err != nil {
log.Errorf("error opening remote tracer stream: %s", err.Error())
return
}
w := ggio.NewDelimitedWriter(s)
for {
_, ok := <-t.ch
// nil out the buffer to gc events
for i := range buf {
buf[i] = nil
}
t.mx.Lock()
tmp := t.buf
t.buf = buf[:0]
buf = tmp
t.mx.Unlock()
if len(buf) == 0 {
goto end
}
{
batch := &pb.TraceEventBatch{Batch: buf}
blob, err := batch.Marshal()
if err != nil {
log.Errorf("error marshalling trace event batch: %s", err.Error())
goto end
}
// compress batch
var cbuf bytes.Buffer
gzipW := gzip.NewWriter(&cbuf)
_, err = gzipW.Write(blob)
if err != nil {
log.Errorf("error compressing trace event batch: %s", err.Error())
goto end
}
err = gzipW.Close()
if err != nil {
log.Errorf("error compressing trace event batch: %s", err.Error())
goto end
}
cblob := cbuf.Bytes()
cbatch := &pb.CompressedTraceEventBatch{Data: cblob}
err = w.WriteMsg(cbatch)
if err != nil {
log.Errorf("error writing trace event data: %s", err.Error())
if !ok {
goto end
}
// reset output
s.Reset()
s, err = t.openStream()
if err != nil {
log.Errorf("error opening remote tracer stream: %s", err.Error())
return
}
w = ggio.NewDelimitedWriter(s)
}
}
end:
if !ok {
helpers.FullClose(s)
return
}
}
}
func (t *RemoteTracer) connect() error {
for {
ctx, cancel := context.WithTimeout(t.ctx, time.Minute)
err := t.host.Connect(ctx, t.pi)
cancel()
if err != nil {
if t.ctx.Err() != nil {
return err
}
// wait a minute and try again, to account for transient server downtime
select {
case <-time.After(time.Minute):
continue
case <-t.ctx.Done():
return t.ctx.Err()
}
}
return nil
}
}
func (t *RemoteTracer) openStream() (network.Stream, error) {
for {
err := t.connect()
if err != nil {
return nil, err
}
ctx, cancel := context.WithTimeout(t.ctx, time.Minute)
s, err := t.host.NewStream(ctx, t.pi.ID, RemoteTracerProtoID)
cancel()
if err != nil {
if t.ctx.Err() != nil {
return nil, err
}
// wait a minute and try again, to account for transient server downtime
select {
case <-time.After(time.Minute):
continue
case <-t.ctx.Done():
return nil, t.ctx.Err()
}
}
return s, nil
}
}
var _ EventTracer = (*RemoteTracer)(nil)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment