Merge pull request #5749 from filecoin-project/feat/netpeers-ext-connmgr
Add connmgr metadata to NetPeerInfo
This commit is contained in:
commit
1755fc2d98
@ -123,6 +123,8 @@ func init() {
|
|||||||
addExample(retrievalmarket.DealStatusNew)
|
addExample(retrievalmarket.DealStatusNew)
|
||||||
addExample(network.ReachabilityPublic)
|
addExample(network.ReachabilityPublic)
|
||||||
addExample(build.NewestNetworkVersion)
|
addExample(build.NewestNetworkVersion)
|
||||||
|
addExample(map[string]int{"name": 42})
|
||||||
|
addExample(map[string]time.Time{"name": time.Unix(1615243938, 0).UTC()})
|
||||||
addExample(&types.ExecutionTrace{
|
addExample(&types.ExecutionTrace{
|
||||||
Msg: exampleValue("init", reflect.TypeOf(&types.Message{}), nil).(*types.Message),
|
Msg: exampleValue("init", reflect.TypeOf(&types.Message{}), nil).(*types.Message),
|
||||||
MsgRct: exampleValue("init", reflect.TypeOf(&types.MessageReceipt{}), nil).(*types.MessageReceipt),
|
MsgRct: exampleValue("init", reflect.TypeOf(&types.MessageReceipt{}), nil).(*types.MessageReceipt),
|
||||||
|
17
api/types.go
17
api/types.go
@ -3,6 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
@ -101,8 +102,16 @@ type NetBlockList struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ExtendedPeerInfo struct {
|
type ExtendedPeerInfo struct {
|
||||||
ID peer.ID
|
ID peer.ID
|
||||||
Agent string
|
Agent string
|
||||||
Addrs []string
|
Addrs []string
|
||||||
Protocols []string
|
Protocols []string
|
||||||
|
ConnMgrMeta *ConnMgrInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
type ConnMgrInfo struct {
|
||||||
|
FirstSeen time.Time
|
||||||
|
Value int
|
||||||
|
Tags map[string]int
|
||||||
|
Conns map[string]time.Time
|
||||||
}
|
}
|
||||||
|
@ -1064,7 +1064,17 @@ Response:
|
|||||||
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
|
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
|
||||||
"Agent": "string value",
|
"Agent": "string value",
|
||||||
"Addrs": null,
|
"Addrs": null,
|
||||||
"Protocols": null
|
"Protocols": null,
|
||||||
|
"ConnMgrMeta": {
|
||||||
|
"FirstSeen": "0001-01-01T00:00:00Z",
|
||||||
|
"Value": 123,
|
||||||
|
"Tags": {
|
||||||
|
"name": 42
|
||||||
|
},
|
||||||
|
"Conns": {
|
||||||
|
"name": "2021-03-08T22:52:18Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -2906,7 +2906,17 @@ Response:
|
|||||||
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
|
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
|
||||||
"Agent": "string value",
|
"Agent": "string value",
|
||||||
"Addrs": null,
|
"Addrs": null,
|
||||||
"Protocols": null
|
"Protocols": null,
|
||||||
|
"ConnMgrMeta": {
|
||||||
|
"FirstSeen": "0001-01-01T00:00:00Z",
|
||||||
|
"Value": 123,
|
||||||
|
"Tags": {
|
||||||
|
"name": 42
|
||||||
|
},
|
||||||
|
"Conns": {
|
||||||
|
"name": "2021-03-08T22:52:18Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@ import (
|
|||||||
|
|
||||||
"github.com/gbrlsnchs/jwt/v3"
|
"github.com/gbrlsnchs/jwt/v3"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
"go.uber.org/fx"
|
||||||
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
"github.com/libp2p/go-libp2p-core/host"
|
"github.com/libp2p/go-libp2p-core/host"
|
||||||
metrics "github.com/libp2p/go-libp2p-core/metrics"
|
metrics "github.com/libp2p/go-libp2p-core/metrics"
|
||||||
@ -17,8 +20,6 @@ import (
|
|||||||
basichost "github.com/libp2p/go-libp2p/p2p/host/basic"
|
basichost "github.com/libp2p/go-libp2p/p2p/host/basic"
|
||||||
"github.com/libp2p/go-libp2p/p2p/net/conngater"
|
"github.com/libp2p/go-libp2p/p2p/net/conngater"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
"go.uber.org/fx"
|
|
||||||
"golang.org/x/xerrors"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/go-jsonrpc/auth"
|
"github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
|
|
||||||
@ -110,12 +111,23 @@ func (a *CommonAPI) NetPeerInfo(_ context.Context, p peer.ID) (*api.ExtendedPeer
|
|||||||
for _, a := range a.Host.Peerstore().Addrs(p) {
|
for _, a := range a.Host.Peerstore().Addrs(p) {
|
||||||
info.Addrs = append(info.Addrs, a.String())
|
info.Addrs = append(info.Addrs, a.String())
|
||||||
}
|
}
|
||||||
|
sort.Strings(info.Addrs)
|
||||||
|
|
||||||
protocols, err := a.Host.Peerstore().GetProtocols(p)
|
protocols, err := a.Host.Peerstore().GetProtocols(p)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
sort.Strings(protocols)
|
||||||
info.Protocols = protocols
|
info.Protocols = protocols
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cm := a.Host.ConnManager().GetTagInfo(p); cm != nil {
|
||||||
|
info.ConnMgrMeta = &api.ConnMgrInfo{
|
||||||
|
FirstSeen: cm.FirstSeen,
|
||||||
|
Value: cm.Value,
|
||||||
|
Tags: cm.Tags,
|
||||||
|
Conns: cm.Conns,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return info, nil
|
return info, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user