Documentation ¶
Overview ¶
package diagnostics implements a network diagnostics service that allows a request to traverse the network and gather information on every node connected to it.
Index ¶
- Constants
- Variables
- func GetGraphJson(dinfo []*DiagInfo) []byte
- type DiagInfo
- type Diagnostics
- type DotWriter
- func (w *DotWriter) Write(buf []byte) (n int, err error)
- func (w *DotWriter) WriteEdge(i, j int, di *DiagInfo, conn connDiagInfo) error
- func (w *DotWriter) WriteGraph(dinfo []*DiagInfo) error
- func (w *DotWriter) WriteNetHeader(dinfo []*DiagInfo) error
- func (w *DotWriter) WriteNode(i int, di *DiagInfo) error
- func (w *DotWriter) WriteS(s string) (n int, err error)
Constants ¶
View Source
const HopTimeoutDecrement = time.Second * 2
View Source
const ResponseTimeout = time.Second * 10
Variables ¶
View Source
var ErrAlreadyRunning = errors.New("diagnostic with that ID already running")
View Source
var ProtocolDiag protocol.ID = "/ipfs/diagnostics"
ProtocolDiag is the diagnostics protocol.ID
Functions ¶
func GetGraphJson ¶
Types ¶
type DiagInfo ¶
type DiagInfo struct { // This nodes ID ID string // A list of peers this node currently has open connections to Connections []connDiagInfo // A list of keys provided by this node // (currently not filled) Keys []string // How long this node has been running for // TODO rename Uptime LifeSpan time.Duration // Incoming Bandwidth Usage BwIn uint64 // Outgoing Bandwidth Usage BwOut uint64 // Information about the version of code this node is running CodeVersion string }
type Diagnostics ¶
type Diagnostics struct {
// contains filtered or unexported fields
}
Diagnostics is a net service that manages requesting and responding to diagnostic requests
func NewDiagnostics ¶
func NewDiagnostics(self peer.ID, h host.Host) *Diagnostics
NewDiagnostics instantiates a new diagnostics service running on the given network
func (*Diagnostics) GetDiagnostic ¶
func (d *Diagnostics) GetDiagnostic(timeout time.Duration) ([]*DiagInfo, error)
GetDiagnostic runs a diagnostics request across the entire network
func (*Diagnostics) HandleMessage ¶
type DotWriter ¶
func (*DotWriter) Write ¶
Write writes a buffer to the internal writer. It handles errors as in: http://blog.golang.org/errors-are-values
func (*DotWriter) WriteGraph ¶
func (*DotWriter) WriteNetHeader ¶
Click to show internal directories.
Click to hide internal directories.