mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-17 01:13:45 +00:00
dashboard: rename variables, use group declaration
This commit is contained in:
parent
f4b4204072
commit
f95107fea0
6 changed files with 133 additions and 130 deletions
|
|
@ -26509,12 +26509,12 @@ var _bundleJs = []byte((((((((((`!function(modules) {
|
|||
home: {
|
||||
activeMemory: [],
|
||||
virtualMemory: [],
|
||||
ingress: [],
|
||||
egress: [],
|
||||
networkIngress: [],
|
||||
networkEgress: [],
|
||||
processCPU: [],
|
||||
systemCPU: [],
|
||||
read: [],
|
||||
write: []
|
||||
diskRead: [],
|
||||
diskWrite: []
|
||||
},
|
||||
chain: {},
|
||||
txpool: {},
|
||||
|
|
@ -26531,12 +26531,12 @@ var _bundleJs = []byte((((((((((`!function(modules) {
|
|||
home: {
|
||||
activeMemory: appender(200),
|
||||
virtualMemory: appender(200),
|
||||
ingress: appender(200),
|
||||
egress: appender(200),
|
||||
networkIngress: appender(200),
|
||||
networkEgress: appender(200),
|
||||
processCPU: appender(200),
|
||||
systemCPU: appender(200),
|
||||
read: appender(200),
|
||||
write: appender(200)
|
||||
diskRead: appender(200),
|
||||
diskWrite: appender(200)
|
||||
},
|
||||
chain: null,
|
||||
txpool: null,
|
||||
|
|
@ -31303,16 +31303,16 @@ var _bundleJs = []byte((((((((((`!function(modules) {
|
|||
data: home.virtualMemory,
|
||||
tooltip: (0, _CustomTooltip.bytePlotter)("Virtual", (0, _CustomTooltip.multiplier)(-1))
|
||||
}), this.doubleChart("all", {
|
||||
data: home.read,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Read")
|
||||
data: home.diskRead,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Disk Read")
|
||||
}, {
|
||||
data: home.write,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Write", (0, _CustomTooltip.multiplier)(-1))
|
||||
data: home.diskWrite,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Disk Write", (0, _CustomTooltip.multiplier)(-1))
|
||||
}), this.doubleChart("all", {
|
||||
data: home.ingress,
|
||||
data: home.networkIngress,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Download")
|
||||
}, {
|
||||
data: home.egress,
|
||||
data: home.networkEgress,
|
||||
tooltip: (0, _CustomTooltip.bytePerSecPlotter)("Upload", (0, _CustomTooltip.multiplier)(-1))
|
||||
}))), _react2.default.createElement(_Grid2.default, {
|
||||
item: !0
|
||||
|
|
@ -38400,7 +38400,7 @@ func bundleJs() (*asset, error) {
|
|||
}
|
||||
|
||||
info := bindataFileInfo{name: "bundle.js", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2d, 0x78, 0x89, 0xa1, 0x7d, 0x2e, 0xa5, 0xe0, 0xc, 0x68, 0x80, 0x26, 0x5, 0xa7, 0x37, 0x59, 0x73, 0xe6, 0xf2, 0xeb, 0x42, 0x9, 0xb6, 0x84, 0x1, 0x69, 0xb7, 0x23, 0x67, 0x42, 0x97, 0xa5}}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc0, 0x90, 0x71, 0xbf, 0x69, 0x84, 0xe8, 0x63, 0x9a, 0x6c, 0x14, 0x49, 0xbd, 0x8b, 0x72, 0x2b, 0xe2, 0xd7, 0xdf, 0x49, 0x80, 0xea, 0x49, 0x2e, 0x7d, 0x4f, 0x23, 0x6b, 0xef, 0xcd, 0xc4, 0xdb}}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -82,14 +82,14 @@ const defaultContent: Content = {
|
|||
commit: null,
|
||||
},
|
||||
home: {
|
||||
activeMemory: [],
|
||||
virtualMemory: [],
|
||||
ingress: [],
|
||||
egress: [],
|
||||
processCPU: [],
|
||||
systemCPU: [],
|
||||
read: [],
|
||||
write: [],
|
||||
activeMemory: [],
|
||||
virtualMemory: [],
|
||||
networkIngress: [],
|
||||
networkEgress: [],
|
||||
processCPU: [],
|
||||
systemCPU: [],
|
||||
diskRead: [],
|
||||
diskWrite: [],
|
||||
},
|
||||
chain: {},
|
||||
txpool: {},
|
||||
|
|
@ -109,14 +109,14 @@ const updaters = {
|
|||
commit: replacer,
|
||||
},
|
||||
home: {
|
||||
activeMemory: appender(200),
|
||||
virtualMemory: appender(200),
|
||||
ingress: appender(200),
|
||||
egress: appender(200),
|
||||
processCPU: appender(200),
|
||||
systemCPU: appender(200),
|
||||
read: appender(200),
|
||||
write: appender(200),
|
||||
activeMemory: appender(200),
|
||||
virtualMemory: appender(200),
|
||||
networkIngress: appender(200),
|
||||
networkEgress: appender(200),
|
||||
processCPU: appender(200),
|
||||
systemCPU: appender(200),
|
||||
diskRead: appender(200),
|
||||
diskWrite: appender(200),
|
||||
},
|
||||
chain: null,
|
||||
txpool: null,
|
||||
|
|
|
|||
|
|
@ -151,13 +151,13 @@ class Footer extends Component<Props> {
|
|||
)}
|
||||
{this.doubleChart(
|
||||
'all',
|
||||
{data: home.read, tooltip: bytePerSecPlotter('Read')},
|
||||
{data: home.write, tooltip: bytePerSecPlotter('Write', multiplier(-1))},
|
||||
{data: home.diskRead, tooltip: bytePerSecPlotter('Disk Read')},
|
||||
{data: home.diskWrite, tooltip: bytePerSecPlotter('Disk Write', multiplier(-1))},
|
||||
)}
|
||||
{this.doubleChart(
|
||||
'all',
|
||||
{data: home.ingress, tooltip: bytePerSecPlotter('Download')},
|
||||
{data: home.egress, tooltip: bytePerSecPlotter('Upload', multiplier(-1))},
|
||||
{data: home.networkIngress, tooltip: bytePerSecPlotter('Download')},
|
||||
{data: home.networkEgress, tooltip: bytePerSecPlotter('Upload', multiplier(-1))},
|
||||
)}
|
||||
</ChartRow>
|
||||
</Grid>
|
||||
|
|
|
|||
|
|
@ -34,12 +34,12 @@ export type General = {
|
|||
export type Home = {
|
||||
activeMemory: ChartEntries,
|
||||
virtualMemory: ChartEntries,
|
||||
ingress: ChartEntries,
|
||||
egress: ChartEntries,
|
||||
networkIngress: ChartEntries,
|
||||
networkEgress: ChartEntries,
|
||||
processCPU: ChartEntries,
|
||||
systemCPU: ChartEntries,
|
||||
read: ChartEntries,
|
||||
write: ChartEntries,
|
||||
diskRead: ChartEntries,
|
||||
diskWrite: ChartEntries,
|
||||
};
|
||||
|
||||
export type ChartEntries = Array<ChartEntry>;
|
||||
|
|
|
|||
|
|
@ -44,14 +44,14 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
activeMemorySampleLimit = 200 // Maximum number of active memory data samples
|
||||
virtualMemorySampleLimit = 200 // Maximum number of virtual memory data samples
|
||||
ingressSampleLimit = 200 // Maximum number of ingress data samples
|
||||
egressSampleLimit = 200 // Maximum number of egress data samples
|
||||
processCPUSampleLimit = 200 // Maximum number of process cpu data samples
|
||||
systemCPUSampleLimit = 200 // Maximum number of system cpu data samples
|
||||
readSampleLimit = 200 // Maximum number of read data samples
|
||||
writeSampleLimit = 200 // Maximum number of write data samples
|
||||
activeMemorySampleLimit = 200 // Maximum number of active memory data samples
|
||||
virtualMemorySampleLimit = 200 // Maximum number of virtual memory data samples
|
||||
networkIngressSampleLimit = 200 // Maximum number of network ingress data samples
|
||||
networkEgressSampleLimit = 200 // Maximum number of network egress data samples
|
||||
processCPUSampleLimit = 200 // Maximum number of process cpu data samples
|
||||
systemCPUSampleLimit = 200 // Maximum number of system cpu data samples
|
||||
diskReadSampleLimit = 200 // Maximum number of disk read data samples
|
||||
diskWriteSampleLimit = 200 // Maximum number of disk write data samples
|
||||
)
|
||||
|
||||
var nextID uint32 // Next connection id
|
||||
|
|
@ -79,30 +79,31 @@ type client struct {
|
|||
|
||||
// New creates a new dashboard instance with the given configuration.
|
||||
func New(config *Config, commit string) (*Dashboard, error) {
|
||||
now := time.Now()
|
||||
db := &Dashboard{
|
||||
conns: make(map[uint32]*client),
|
||||
config: config,
|
||||
quit: make(chan chan error),
|
||||
charts: new(HomeMessage),
|
||||
charts: &HomeMessage{
|
||||
ActiveMemory: emptyChartEntries(now, activeMemorySampleLimit, config.Refresh),
|
||||
VirtualMemory: emptyChartEntries(now, virtualMemorySampleLimit, config.Refresh),
|
||||
NetworkIngress: emptyChartEntries(now, networkIngressSampleLimit, config.Refresh),
|
||||
NetworkEgress: emptyChartEntries(now, networkEgressSampleLimit, config.Refresh),
|
||||
ProcessCPU: emptyChartEntries(now, processCPUSampleLimit, config.Refresh),
|
||||
SystemCPU: emptyChartEntries(now, systemCPUSampleLimit, config.Refresh),
|
||||
DiskRead: emptyChartEntries(now, diskReadSampleLimit, config.Refresh),
|
||||
DiskWrite: emptyChartEntries(now, diskWriteSampleLimit, config.Refresh),
|
||||
},
|
||||
commit: commit,
|
||||
}
|
||||
now := time.Now()
|
||||
db.charts.ActiveMemory = db.emptyChartEntries(now, activeMemorySampleLimit)
|
||||
db.charts.VirtualMemory = db.emptyChartEntries(now, virtualMemorySampleLimit)
|
||||
db.charts.Ingress = db.emptyChartEntries(now, ingressSampleLimit)
|
||||
db.charts.Egress = db.emptyChartEntries(now, egressSampleLimit)
|
||||
db.charts.ProcessCPU = db.emptyChartEntries(now, processCPUSampleLimit)
|
||||
db.charts.SystemCPU = db.emptyChartEntries(now, systemCPUSampleLimit)
|
||||
db.charts.Read = db.emptyChartEntries(now, readSampleLimit)
|
||||
db.charts.Write = db.emptyChartEntries(now, writeSampleLimit)
|
||||
return db, nil
|
||||
}
|
||||
|
||||
func (db *Dashboard) emptyChartEntries(t time.Time, limit int) ChartEntries {
|
||||
func emptyChartEntries(t time.Time, limit int, refresh time.Duration) ChartEntries {
|
||||
ce := make(ChartEntries, limit)
|
||||
for i := 0; i < limit; i++ {
|
||||
ce[i] = &ChartEntry{
|
||||
Time: t.Add(-time.Duration(i) * db.config.Refresh),
|
||||
Time: t.Add(-time.Duration(i) * refresh),
|
||||
}
|
||||
}
|
||||
return ce
|
||||
|
|
@ -240,14 +241,14 @@ func (db *Dashboard) apiHandler(conn *websocket.Conn) {
|
|||
Commit: db.commit,
|
||||
},
|
||||
Home: &HomeMessage{
|
||||
ActiveMemory: db.charts.ActiveMemory,
|
||||
VirtualMemory: db.charts.VirtualMemory,
|
||||
Ingress: db.charts.Ingress,
|
||||
Egress: db.charts.Egress,
|
||||
ProcessCPU: db.charts.ProcessCPU,
|
||||
SystemCPU: db.charts.SystemCPU,
|
||||
Read: db.charts.Read,
|
||||
Write: db.charts.Write,
|
||||
ActiveMemory: db.charts.ActiveMemory,
|
||||
VirtualMemory: db.charts.VirtualMemory,
|
||||
NetworkIngress: db.charts.NetworkIngress,
|
||||
NetworkEgress: db.charts.NetworkEgress,
|
||||
ProcessCPU: db.charts.ProcessCPU,
|
||||
SystemCPU: db.charts.SystemCPU,
|
||||
DiskRead: db.charts.DiskRead,
|
||||
DiskWrite: db.charts.DiskWrite,
|
||||
},
|
||||
}
|
||||
// Start tracking the connection and drop at connection loss.
|
||||
|
|
@ -272,17 +273,19 @@ func (db *Dashboard) apiHandler(conn *websocket.Conn) {
|
|||
// collectData collects the required data to plot on the dashboard.
|
||||
func (db *Dashboard) collectData() {
|
||||
defer db.wg.Done()
|
||||
|
||||
prevIn := metrics.DefaultRegistry.Get("p2p/InboundTraffic").(metrics.Meter).Count()
|
||||
prevOut := metrics.DefaultRegistry.Get("p2p/OutboundTraffic").(metrics.Meter).Count()
|
||||
prevProcessCPUTime := getProcessCPUTime()
|
||||
systemCPUUsage := gosigar.Cpu{}
|
||||
systemCPUUsage.Get()
|
||||
prevRead := metrics.DefaultRegistry.Get("eth/db/chaindata/compact/input").(metrics.Meter).Count()
|
||||
prevWrite := metrics.DefaultRegistry.Get("eth/db/chaindata/compact/output").(metrics.Meter).Count()
|
||||
var (
|
||||
prevNetworkIngress = metrics.DefaultRegistry.Get("p2p/InboundTraffic").(metrics.Meter).Count()
|
||||
prevNetworkEgress = metrics.DefaultRegistry.Get("p2p/OutboundTraffic").(metrics.Meter).Count()
|
||||
prevProcessCPUTime = getProcessCPUTime()
|
||||
prevSystemCPUUsage = systemCPUUsage
|
||||
prevDiskRead = metrics.DefaultRegistry.Get("eth/db/chaindata/compact/input").(metrics.Meter).Count()
|
||||
prevDiskWrite = metrics.DefaultRegistry.Get("eth/db/chaindata/compact/output").(metrics.Meter).Count()
|
||||
|
||||
frequency := float64(db.config.Refresh / time.Second)
|
||||
numCPU := float64(runtime.NumCPU())
|
||||
frequency = float64(db.config.Refresh / time.Second)
|
||||
numCPU = float64(runtime.NumCPU())
|
||||
)
|
||||
|
||||
for {
|
||||
select {
|
||||
|
|
@ -290,34 +293,34 @@ func (db *Dashboard) collectData() {
|
|||
errc <- nil
|
||||
return
|
||||
case <-time.After(db.config.Refresh):
|
||||
var mem runtime.MemStats
|
||||
runtime.ReadMemStats(&mem)
|
||||
|
||||
curIn := metrics.DefaultRegistry.Get("p2p/InboundTraffic").(metrics.Meter).Count()
|
||||
inboundTraffic := float64(curIn - prevIn)
|
||||
prevIn = curIn
|
||||
|
||||
curOut := metrics.DefaultRegistry.Get("p2p/OutboundTraffic").(metrics.Meter).Count()
|
||||
outboundTraffic := float64(curOut - prevOut)
|
||||
prevOut = curOut
|
||||
|
||||
curProcessCPUTime := getProcessCPUTime()
|
||||
processCPUTime := curProcessCPUTime - prevProcessCPUTime
|
||||
prevProcessCPUTime = curProcessCPUTime
|
||||
|
||||
prevSystemCPUUsage := systemCPUUsage
|
||||
systemCPUUsage.Get()
|
||||
deltaCPU := systemCPUUsage.Delta(prevSystemCPUUsage)
|
||||
|
||||
curRead := metrics.DefaultRegistry.Get("eth/db/chaindata/compact/input").(metrics.Meter).Count()
|
||||
deltaRead := curRead - prevRead
|
||||
prevRead = curRead
|
||||
|
||||
curWrite := metrics.DefaultRegistry.Get("eth/db/chaindata/compact/output").(metrics.Meter).Count()
|
||||
deltaWrite := curWrite - prevWrite
|
||||
prevWrite = curWrite
|
||||
var (
|
||||
curNetworkIngress = metrics.DefaultRegistry.Get("p2p/InboundTraffic").(metrics.Meter).Count()
|
||||
curNetworkEgress = metrics.DefaultRegistry.Get("p2p/OutboundTraffic").(metrics.Meter).Count()
|
||||
curProcessCPUTime = getProcessCPUTime()
|
||||
curSystemCPUUsage = systemCPUUsage
|
||||
curDiskRead = metrics.DefaultRegistry.Get("eth/db/chaindata/compact/input").(metrics.Meter).Count()
|
||||
curDiskWrite = metrics.DefaultRegistry.Get("eth/db/chaindata/compact/output").(metrics.Meter).Count()
|
||||
)
|
||||
var (
|
||||
deltaNetworkIngress = float64(curNetworkIngress - prevNetworkIngress)
|
||||
deltaNetworkEgress = float64(curNetworkEgress - prevNetworkEgress)
|
||||
deltaProcessCPUTime = curProcessCPUTime - prevProcessCPUTime
|
||||
deltaSystemCPUUsage = systemCPUUsage.Delta(prevSystemCPUUsage)
|
||||
deltaDiskRead = curDiskRead - prevDiskRead
|
||||
deltaDiskWrite = curDiskWrite - prevDiskWrite
|
||||
)
|
||||
prevNetworkIngress = curNetworkIngress
|
||||
prevNetworkEgress = curNetworkEgress
|
||||
prevProcessCPUTime = curProcessCPUTime
|
||||
prevSystemCPUUsage = curSystemCPUUsage
|
||||
prevDiskRead = curDiskRead
|
||||
prevDiskWrite = curDiskWrite
|
||||
|
||||
now := time.Now()
|
||||
|
||||
var mem runtime.MemStats
|
||||
runtime.ReadMemStats(&mem)
|
||||
activeMemory := &ChartEntry{
|
||||
Time: now,
|
||||
Value: float64(mem.Alloc) / frequency,
|
||||
|
|
@ -326,49 +329,49 @@ func (db *Dashboard) collectData() {
|
|||
Time: now,
|
||||
Value: float64(mem.Sys) / frequency,
|
||||
}
|
||||
ingress := &ChartEntry{
|
||||
networkIngress := &ChartEntry{
|
||||
Time: now,
|
||||
Value: inboundTraffic / frequency,
|
||||
Value: deltaNetworkIngress / frequency,
|
||||
}
|
||||
egress := &ChartEntry{
|
||||
networkEgress := &ChartEntry{
|
||||
Time: now,
|
||||
Value: outboundTraffic / frequency,
|
||||
Value: deltaNetworkEgress / frequency,
|
||||
}
|
||||
processCPU := &ChartEntry{
|
||||
Time: now,
|
||||
Value: processCPUTime / frequency / numCPU * 100,
|
||||
Value: deltaProcessCPUTime / frequency / numCPU * 100,
|
||||
}
|
||||
systemCPU := &ChartEntry{
|
||||
Time: now,
|
||||
Value: float64(deltaCPU.Sys+deltaCPU.User) / frequency / numCPU,
|
||||
Value: float64(deltaSystemCPUUsage.Sys+deltaSystemCPUUsage.User) / frequency / numCPU,
|
||||
}
|
||||
read := &ChartEntry{
|
||||
diskRead := &ChartEntry{
|
||||
Time: now,
|
||||
Value: float64(deltaRead) / frequency,
|
||||
Value: float64(deltaDiskRead) / frequency,
|
||||
}
|
||||
write := &ChartEntry{
|
||||
diskWrite := &ChartEntry{
|
||||
Time: now,
|
||||
Value: float64(deltaWrite) / frequency,
|
||||
Value: float64(deltaDiskWrite) / frequency,
|
||||
}
|
||||
db.charts.ActiveMemory = append(db.charts.ActiveMemory[1:], activeMemory)
|
||||
db.charts.VirtualMemory = append(db.charts.VirtualMemory[1:], virtualMemory)
|
||||
db.charts.Ingress = append(db.charts.Ingress[1:], ingress)
|
||||
db.charts.Egress = append(db.charts.Egress[1:], egress)
|
||||
db.charts.NetworkIngress = append(db.charts.NetworkIngress[1:], networkIngress)
|
||||
db.charts.NetworkEgress = append(db.charts.NetworkEgress[1:], networkEgress)
|
||||
db.charts.ProcessCPU = append(db.charts.ProcessCPU[1:], processCPU)
|
||||
db.charts.SystemCPU = append(db.charts.SystemCPU[1:], systemCPU)
|
||||
db.charts.Read = append(db.charts.Read[1:], read)
|
||||
db.charts.Write = append(db.charts.Read[1:], write)
|
||||
db.charts.DiskRead = append(db.charts.DiskRead[1:], diskRead)
|
||||
db.charts.DiskWrite = append(db.charts.DiskRead[1:], diskWrite)
|
||||
|
||||
db.sendToAll(&Message{
|
||||
Home: &HomeMessage{
|
||||
ActiveMemory: ChartEntries{activeMemory},
|
||||
VirtualMemory: ChartEntries{virtualMemory},
|
||||
Ingress: ChartEntries{ingress},
|
||||
Egress: ChartEntries{egress},
|
||||
ProcessCPU: ChartEntries{processCPU},
|
||||
SystemCPU: ChartEntries{systemCPU},
|
||||
Read: ChartEntries{read},
|
||||
Write: ChartEntries{write},
|
||||
ActiveMemory: ChartEntries{activeMemory},
|
||||
VirtualMemory: ChartEntries{virtualMemory},
|
||||
NetworkIngress: ChartEntries{networkIngress},
|
||||
NetworkEgress: ChartEntries{networkEgress},
|
||||
ProcessCPU: ChartEntries{processCPU},
|
||||
SystemCPU: ChartEntries{systemCPU},
|
||||
DiskRead: ChartEntries{diskRead},
|
||||
DiskWrite: ChartEntries{diskWrite},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,14 +34,14 @@ type GeneralMessage struct {
|
|||
}
|
||||
|
||||
type HomeMessage struct {
|
||||
ActiveMemory ChartEntries `json:"activeMemory,omitempty"`
|
||||
VirtualMemory ChartEntries `json:"virtualMemory,omitempty"`
|
||||
Ingress ChartEntries `json:"ingress,omitempty"`
|
||||
Egress ChartEntries `json:"egress,omitempty"`
|
||||
ProcessCPU ChartEntries `json:"processCPU,omitempty"`
|
||||
SystemCPU ChartEntries `json:"systemCPU,omitempty"`
|
||||
Read ChartEntries `json:"read,omitempty"`
|
||||
Write ChartEntries `json:"write,omitempty"`
|
||||
ActiveMemory ChartEntries `json:"activeMemory,omitempty"`
|
||||
VirtualMemory ChartEntries `json:"virtualMemory,omitempty"`
|
||||
NetworkIngress ChartEntries `json:"networkIngress,omitempty"`
|
||||
NetworkEgress ChartEntries `json:"networkEgress,omitempty"`
|
||||
ProcessCPU ChartEntries `json:"processCPU,omitempty"`
|
||||
SystemCPU ChartEntries `json:"systemCPU,omitempty"`
|
||||
DiskRead ChartEntries `json:"diskRead,omitempty"`
|
||||
DiskWrite ChartEntries `json:"diskWrite,omitempty"`
|
||||
}
|
||||
|
||||
type ChartEntries []*ChartEntry
|
||||
|
|
|
|||
Loading…
Reference in a new issue