MCPcopy
hub / github.com/grpc/grpc-go / channelTraceToProto

Function channelTraceToProto

channelz/internal/protoconv/channel.go:53–83  ·  view source on GitHub ↗
(ct *channelz.ChannelTrace)

Source from the content-addressed store, hash-verified

51}
52
53func channelTraceToProto(ct *channelz.ChannelTrace) *channelzpb.ChannelTrace {
54 pbt := &channelzpb.ChannelTrace{}
55 if ct == nil {
56 return pbt
57 }
58 pbt.NumEventsLogged = ct.EventNum
59 if ts := timestamppb.New(ct.CreationTime); ts.IsValid() {
60 pbt.CreationTimestamp = ts
61 }
62 events := make([]*channelzpb.ChannelTraceEvent, 0, len(ct.Events))
63 for _, e := range ct.Events {
64 cte := &channelzpb.ChannelTraceEvent{
65 Description: e.Desc,
66 Severity: channelzpb.ChannelTraceEvent_Severity(e.Severity),
67 }
68 if ts := timestamppb.New(e.Timestamp); ts.IsValid() {
69 cte.Timestamp = ts
70 }
71 if e.RefID != 0 {
72 switch e.RefType {
73 case channelz.RefChannel:
74 cte.ChildRef = &channelzpb.ChannelTraceEvent_ChannelRef{ChannelRef: &channelzpb.ChannelRef{ChannelId: e.RefID, Name: e.RefName}}
75 case channelz.RefSubChannel:
76 cte.ChildRef = &channelzpb.ChannelTraceEvent_SubchannelRef{SubchannelRef: &channelzpb.SubchannelRef{SubchannelId: e.RefID, Name: e.RefName}}
77 }
78 }
79 events = append(events, cte)
80 }
81 pbt.Events = events
82 return pbt
83}
84
85func channelToProto(cm *channelz.Channel) *channelzpb.Channel {
86 c := &channelzpb.Channel{}

Callers 2

channelToProtoFunction · 0.85
subChannelToProtoFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected