log(gcr/s,c) add addtional eventlogs
Brian Tiger Chow committed
Feb 1, 2015 at 22:49 UTC
eb8db2ec79fcf1f6e9622ef4fedc890cd81463ef
3 files changed
+20
-15
routing/grandcentral/client.go
+1
@@ -36,6 +36,7 @@ func NewClient(px proxy.Proxy, h host.Host, ps peer.Peerstore, local peer.ID) (*
36
}
37
38
func (c *Client) FindProvidersAsync(ctx context.Context, k u.Key, max int) <-chan peer.PeerInfo {
39
+ ctx = eventlog.ContextWithLoggable(ctx, eventlog.Uuid("findProviders"))
40
defer log.EventBegin(ctx, "findProviders", &k).Done()
41
ch := make(chan peer.PeerInfo)
42
go func() {
routing/grandcentral/proxy/standard.go
+17
-14
@@ -87,35 +87,38 @@ func (px *standard) SendRequest(ctx context.Context, m *dhtpb.Message) (*dhtpb.M
87
return nil, err // NB: returns the last error
88
}
89
90
-func (px *standard) sendRequest(ctx context.Context, m *dhtpb.Message, remote peer.ID) (_ *dhtpb.Message, err error) {
91
- e := log.EventBegin(ctx, "sendRoutingRequest", px.Host.ID(), remote, m)
92
- defer func() {
93
- if err != nil {
94
- e.SetError(err)
95
- }
96
- e.Done()
97
- }()
98
- if err = px.Host.Connect(ctx, peer.PeerInfo{ID: remote}); err != nil {
90
+func (px *standard) sendRequest(ctx context.Context, m *dhtpb.Message, remote peer.ID) (*dhtpb.Message, error) {
91
+ e := log.EventBegin(ctx, "sendRoutingRequest", px.Host.ID(), remote, eventlog.Pair("request", m))
92
+ defer e.Done()
93
+ if err := px.Host.Connect(ctx, peer.PeerInfo{ID: remote}); err != nil {
94
+ e.SetError(err)
95
return nil, err
96
}
97
s, err := px.Host.NewStream(ProtocolGCR, remote)
98
if err != nil {
99
+ e.SetError(err)
100
return nil, err
101
}
102
defer s.Close()
103
r := ggio.NewDelimitedReader(s, inet.MessageSizeMax)
104
w := ggio.NewDelimitedWriter(s)
105
if err = w.WriteMsg(m); err != nil {
106
+ e.SetError(err)
107
return nil, err
108
}
109
112
- var reply dhtpb.Message
113
- if err = r.ReadMsg(&reply); err != nil {
110
+ response := &dhtpb.Message{}
111
+ if err = r.ReadMsg(response); err != nil {
112
+ e.SetError(err)
113
return nil, err
114
}
115
// need ctx expiration?
117
- if &reply == nil {
118
- return nil, errors.New("no response to request")
116
+ if response == nil {
117
+ err := errors.New("no response to request")
118
+ e.SetError(err)
119
+ return nil, err
120
}
120
- return &reply, nil
121
+ e.Append(eventlog.Pair("response", response))
122
+ e.Append(eventlog.Pair("uuid", eventlog.Uuid("foo")))
123
+ return response, nil
124
}
routing/grandcentral/server.go
+2
-1
@@ -169,7 +169,8 @@ func storeProvidersToPeerstore(ps peer.Peerstore, p peer.ID, providers []*dhtpb.
169
}
170
171
func getRoutingProviders(local peer.ID, ds datastore.Datastore, k util.Key) ([]*dhtpb.Message_Peer, error) {
172
- log.Event(context.Background(), "getProviders", local, &k)
172
+ e := log.EventBegin(context.Background(), "getProviders", &k)
173
+ defer e.Done()
174
var providers []*dhtpb.Message_Peer
175
exists, err := ds.Has(k.DsKey()) // TODO store values in a local datastore?
176
if err == nil && exists {