Commit Graph

56 Commits

Author SHA1 Message Date
Maciej Hirsz 0a6cd08747 feat: Live-update IO stats (#225) 2020-01-30 15:39:46 +01:00
Maciej Hirsz 19f57d71be I/O metrics (#224)
* feat: Proxy Node IO stats to the FE

* chore: Sync up FE

* feat: Charts for cache sizes

* feat: All graphs are in

* chore: Remove browserlist
2020-01-30 15:03:19 +01:00
Maciej Hirsz b62f89efb7 Sort by column (#198)
* chore: Split HeaderCell out of Row.tsx

* feat: toggle and highlight selected column header

* feat: Fixed sorting, added stylized headers

* fix: Performance and hardware column sorting

* fix: Rebuild the sorted list when changing the comparator
2019-11-12 14:19:40 +01:00
Maciej Hirsz 735b2b431f feat: Use array for node map (#197)
* feat: Use array for node map
* fix: Map growing
2019-11-09 15:19:16 +01:00
Maciej Hirsz 3e34720f66 Node Uptime (#196)
* fix: node stats updating live
* fix: Propagation time for first node to hit a block
* chore: Leaner feed serialization
* fix: Handle old nodes with stringified network_state
* feat: Add Node Uptime to the list
* chore: Remove old backend from test pipeline
2019-11-09 12:16:39 +01:00
Maciej Hirsz a3b6f6a5a1 Rust backend (#185) 2019-11-07 10:52:38 +01:00
Maciej Hirsz 983919fd87 feat: Instead of delisting, push stale nodes to bottom (#161) 2019-07-02 14:52:06 +02:00
Michael Müller 7add77137a Grandpa visualization optimizations + improvements (#150)
* Prefix CSS rules properly
* Fix Jdenticon placeholder
* Implement shouldComponentUpdate()
* Force casting of block numbers in backend
* Ensure array is properly sorted
* Fix backfilling and hold only limited blocks in memory
* Use proper ellipsis
* Display note if no grandpa data available yet
* Apply flexing only when two blocks are displayed
* Display consensus icons above all other elements
* Type authoritySetId properly
* Display loading screen only when necessary
* Only measure when necessary
* Reset state on tab change
* Remove tooltips and add keys
* fix: Remove some `any` types, fix list view CSS
* Fix updateState type
* Add keys to more elements
* Limit number of authorities for which vis works
2019-05-27 17:08:21 +02:00
Michael Müller 26000f3e8a Move address to end in nodeDetails (#149)
This makes the backend backwards compatible with
frontends which still have an old version of nodeDetails.
2019-05-22 21:06:49 +02:00
Michael Müller 35a853a64b Increment version number (#148) 2019-05-20 14:43:26 +02:00
Michael Müller 5d82253257 Display state of Grandpa (#134)
* Make it clear that settings apply only to list view

Since the consensus view will be added users could
mistake the settings as being applied there as well.

* Add Jdenticon

* Add Grandpa consensus visualisation

* Remove fade-in animation

* Update packages and yarn.lock

* Broadcast only delta of what changed

* Minor code improvements

* Use NodeId instead of Address in first dimension

By using the NodeId instead of the Address in the first
dimension of the consensus matrice we save quite some
space in the payload which is sent to the browser.

The commit also contains some minor refactoring.

* Refactoring and improving naming

* Display boxes only after size has been detected

This look a bit nicer, otherwise the UI will still adapt
the box sizes once everything has already been loaded up.

* Fix cache

* Send consensus info on first subscribe

So that frontend can immediately display the current state
and doesn't have to aggregate first.

* Increase cache size

* Send deltas only if block in cache

Otherwise the UI will update old blocks which
are still visible to an empty shell.

* Adjust cache size

* Make cache sizes dependent

* Ensure authority caches are aligned

If only one authority has already submitted consensus info
for a new block then the cache of that one is offset by one
from all other authorities.

* Handle restarts on authority set changes properly

* Fix backfill mechanism

* Extract function

* Display only blocks since last authority set change

* Handle authority set sent on connect

When nodes lose their connection to telemetry
or connect on first time they sent their current
authority set for the UI to have something to
display.

These sets don't contain an explicit block number,
because the set didn't change -- it just got resent.
In this case the set is `undefined`.

* Introduce Authority type

This is necessary to cover the case where one
node connects, submits its authority set containing
another node which has not yet connected to Telemetry.

In this case we still want to create a shell object
and fill it with the address.

* Handle corner case

In the case of only one block having been produced, two authorities,
and only one authority connected, the UI did not show up.

* Display placeholder if name not yet available

* Replace with camelCase

* Replace with correct types

* Replace grandpa icon

* Change consensus icon to cube (finalized block icon)

* Upgrade dependencies

* Implement thin backend instead of thick

* Cleanup and minor improvements

* Minor refactoring

* Extract common code into function

* Switch module to class

* Remove unused code

* Clean markup

* Remove unused code

* Revert "Upgrade dependencies"

This reverts commit bf4d9ea48b3417860ccf40f0c5122027ffc59689.

* Update polkadot-identicon in frontend

Change version number to `^1.1.45` and run
`npm update polkadot-identicon`.

* Run yarn install

* Update react-measure to 2.3.0

Changed version number, ran

	cd packages/frontend/ && npm update react-reasure &&
	cd ../../ && yarn install

* Improve typing by introducing partial type

* Reduce indexing operations

* Shorten function

* Shorten function

* Introduce initialiseConsensusViewByRef

* Remove dead conditional branch

* Return consensusView ref from initialiseConsensusView

*  Handle consensusView ref returned from initialiseConsensusView
2019-05-20 13:20:40 +02:00
Maciej Hirsz 4a48a6eecf fix: Stringify network state on demand (#146) 2019-05-14 15:19:00 +02:00
Gregory Terzian 0134677c2d Add network state to backend (#123) 2019-03-15 11:57:03 +01:00
Maciej Hirsz 1023b72fe7 Remove debug logging (#119) 2019-03-06 16:08:55 +01:00
Maciej Hirsz dc71df7911 Add finalized block info (#104) 2019-02-01 15:53:05 +01:00
Maciej Hirsz 052f5c846c Add bandwidth monitors (#100) 2019-01-31 12:43:53 +01:00
Maciej Hirsz abe2ff5057 Fix sorting (#77) 2018-10-08 14:14:21 +02:00
Maciej Hirsz 717c5a3ac9 Only update hardware stats when necessary (#73) 2018-10-01 14:10:54 +02:00
Maciej Hirsz 76e9155823 Better Sparklines (#72)
* Cleaner renders
* Add timestamps to Sparklines
* Keep track of chart history up to 1h in the past
2018-10-01 11:41:40 +02:00
Maciej Hirsz 51fb2cf326 No repeated Node ids (#70) 2018-09-30 10:33:29 +02:00
Maciej Hirsz dd379676fd Clear nodes on re-subbing (#69) 2018-09-30 09:43:03 +02:00
Maciej Hirsz f9078c6979 Sparklines (#65) 2018-09-28 13:47:39 +02:00
Maciej Hirsz 62d2847bb0 Don't sort the list on every render (#58) 2018-09-27 17:01:51 +02:00
maciejhirsz 884b6e7fca Fix average indexing 2018-09-26 10:15:40 +02:00
Maciej Hirsz df56e33bf6 Deploy script (#52)
* No-downtime deploy script
* Easier to use helper for average numbers
2018-09-25 11:53:57 +02:00
Maciej Hirsz 5e995ea21d Use node name as backup in case pubkey is not present (#50) 2018-09-24 21:33:06 +02:00
Maciej Hirsz ca0ab38bd2 Settings Tab (#42)
* Settings tab
2018-09-21 18:07:14 +02:00
Maciej Hirsz 07b5880e5f Show CPU and memory use, disable last block time for now (#40) 2018-09-18 14:37:09 +02:00
Maciej Hirsz 762db7ebdc Show validator address for nodes (#37)
Show validator address for nodes
2018-09-12 13:55:37 +02:00
Maciej Hirsz afef6d7d8f Cache NodeId and Location (#35)
* Cache NodeId and Location
* Fix frontend dependency vuln
2018-08-24 16:26:05 +02:00
maciejhirsz ba545799fe Reorganize Node components and state 2018-08-10 14:36:05 +02:00
Luke Schoen caab03a6e9 fix: Do not import from same package as importing into as recursive 2018-07-26 18:07:15 +02:00
Luke Schoen b14b3383fb fix: Remove Maybe from import 2018-07-26 18:01:45 +02:00
Luke Schoen 760e45e89f fix: Remove Maybe from return type since not returning null value 2018-07-26 18:01:45 +02:00
Luke Schoen ee8b76233a fix: Relates to #9. Reuse calculation of average block time
Issues:

* Unable to import `blockAverage` into Chain.ts or Node.ts due to Issue #21.
* TypeScript says `[ts] Module '"/Users/Me/code/blockchain/clones/paritytech/dotstats/packages/common/build/index"' has no exported member 'blockAverage'.`
2018-07-26 18:01:43 +02:00
maciejhirsz 2f0f250d81 Log backend connections 2018-07-26 15:26:14 +02:00
maciejhirsz aadc4fc5bb Fix reconnecting 2018-07-26 13:53:21 +02:00
maciejhirsz 0945d7b4d6 Fixing the zombie UI state 2018-07-25 18:41:58 +02:00
maciejhirsz a909400678 Add ping to the client, reconnect on dead connections 2018-07-25 17:49:53 +02:00
maciejhirsz 5c1480f9f5 Display location on map node details 2018-07-18 16:59:47 +02:00
maciejhirsz f4a4f1091a Tweak map, remove legacy version msg 2018-07-17 17:03:06 +02:00
maciejhirsz 43a87deb9c Add hidden map 2018-07-15 22:50:41 +02:00
maciejhirsz 2c073eac19 Working on map view 2018-07-14 22:56:20 +02:00
maciejhirsz 2d14c27d9e Resubscribe on reconnect 2018-07-14 15:52:53 +02:00
maciejhirsz ef3f52f5c8 Offline indicator, average block time and stuff 2018-07-13 23:20:29 +02:00
maciejhirsz ea8d7ad77d Sort chains by node count 2018-07-12 16:04:04 +02:00
maciejhirsz 47b80ad30e Display block propagation time 2018-07-08 16:04:55 +02:00
maciejhirsz 538a30ccc3 Reformatting 2018-07-06 17:53:42 +02:00
maciejhirsz 9a8e625df6 Categorize nodes by chains 2018-07-06 15:08:22 +02:00
maciejhirsz 8bec72be35 Styles 2018-07-05 18:29:19 +02:00