mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-07 01:08:08 +08:00
log(dht) log a couple events to demonstrate API
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
This commit is contained in:
parent
2c88e342db
commit
4b1607819f
22
peer/peer.go
22
peer/peer.go
@ -101,6 +101,8 @@ type Peer interface {
|
||||
|
||||
// Update with the data of another peer instance
|
||||
Update(Peer) error
|
||||
|
||||
Loggable() map[string]interface{}
|
||||
}
|
||||
|
||||
type Type uint8
|
||||
@ -112,6 +114,17 @@ const (
|
||||
Remote
|
||||
)
|
||||
|
||||
func (t Type) String() string {
|
||||
switch t {
|
||||
case Local:
|
||||
return "localPeer"
|
||||
case Remote:
|
||||
return "remotePeer"
|
||||
default:
|
||||
}
|
||||
return "unspecifiedPeer"
|
||||
}
|
||||
|
||||
type peer struct {
|
||||
id ID
|
||||
addresses []ma.Multiaddr
|
||||
@ -145,6 +158,15 @@ func (p *peer) String() string {
|
||||
return "[Peer " + pid[:maxRunes] + "]"
|
||||
}
|
||||
|
||||
func (p *peer) Loggable() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
p.GetType().String(): map[string]interface{}{
|
||||
"id": p.ID(),
|
||||
"latency": p.GetLatency(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Key returns the ID as a Key (string) for maps.
|
||||
func (p *peer) Key() u.Key {
|
||||
return u.Key(p.id)
|
||||
|
||||
@ -18,6 +18,7 @@ import (
|
||||
kb "github.com/jbenet/go-ipfs/routing/kbucket"
|
||||
u "github.com/jbenet/go-ipfs/util"
|
||||
ctxc "github.com/jbenet/go-ipfs/util/ctxcloser"
|
||||
"github.com/jbenet/go-ipfs/util/elog"
|
||||
|
||||
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
|
||||
ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore"
|
||||
@ -25,7 +26,7 @@ import (
|
||||
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
|
||||
)
|
||||
|
||||
var log = u.Logger("dht")
|
||||
var log = elog.Logger("dht")
|
||||
|
||||
const doPinging = false
|
||||
|
||||
@ -152,6 +153,7 @@ func (dht *IpfsDHT) HandleMessage(ctx context.Context, mes msg.NetMessage) msg.N
|
||||
dht.Update(mPeer)
|
||||
|
||||
// Print out diagnostic
|
||||
log.Event(ctx, "foo", dht.self, mPeer, pmes)
|
||||
log.Debugf("%s got message type: '%s' from %s",
|
||||
dht.self, pb.Message_MessageType_name[int32(pmes.GetType())], mPeer)
|
||||
|
||||
@ -197,6 +199,7 @@ func (dht *IpfsDHT) sendRequest(ctx context.Context, p peer.Peer, pmes *pb.Messa
|
||||
start := time.Now()
|
||||
|
||||
// Print out diagnostic
|
||||
log.Event(ctx, "sentMessage", dht.self, p, pmes)
|
||||
log.Debugf("Sent message type: '%s' to %s",
|
||||
pb.Message_MessageType_name[int32(pmes.GetType())], p)
|
||||
|
||||
|
||||
@ -65,3 +65,11 @@ func (m *Message) SetClusterLevel(level int) {
|
||||
lvl := int32(level)
|
||||
m.ClusterLevelRaw = &lvl
|
||||
}
|
||||
|
||||
func (m *Message) Loggable() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"message": map[string]string{
|
||||
"type": m.Type.String(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ func init() {
|
||||
|
||||
type EventLogger interface {
|
||||
StandardLogger
|
||||
Event(ctx context.Context, event string, m ...Metadata)
|
||||
Event(ctx context.Context, event string, m ...Loggable)
|
||||
}
|
||||
|
||||
type StandardLogger interface {
|
||||
@ -46,14 +46,14 @@ type eventLogger struct {
|
||||
*logging.Logger
|
||||
}
|
||||
|
||||
func (el *eventLogger) Event(ctx context.Context, event string, metadata ...Metadata) {
|
||||
func (el *eventLogger) Event(ctx context.Context, event string, metadata ...Loggable) {
|
||||
existing, err := MetadataFromContext(ctx)
|
||||
if err != nil {
|
||||
existing = Metadata{}
|
||||
}
|
||||
accum := existing
|
||||
for _, datum := range metadata {
|
||||
accum = DeepMerge(accum, datum)
|
||||
accum = DeepMerge(accum, datum.Loggable())
|
||||
}
|
||||
accum["event"] = event
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ type Metadata map[string]interface{}
|
||||
|
||||
// Loggable describes objects that can be marshalled into Metadata for logging
|
||||
type Loggable interface {
|
||||
Loggable() Metadata
|
||||
Loggable() map[string]interface{}
|
||||
}
|
||||
|
||||
// UniqueEvent returns a Metadata with the string key and UUID value
|
||||
|
||||
Loading…
Reference in New Issue
Block a user