This project is archived, its development was stopped 2 years ago.
Please check out our brand new RTView here.
RTView: real-time watching for Cardano nodes (ARCHIVED)
License: Apache License 2.0
This project is archived, its development was stopped 2 years ago.
Please check out our brand new RTView here.
cardano-rt-view
is missing cardano-prelude
in it's build-depends
section of cardano-rt-view.cabal
, see below:
[ 4s] + cd cardano-rt-view-0.1.0
[ 4s] + '[' -f Setup.hs -o -f Setup.lhs ']'
[ 4s] + '[' -x Setup ']'
[ 4s] + ghc --make -no-user-package-db Setup
[ 4s] [1 of 1] Compiling Main ( Setup.hs, Setup.o )
[ 4s] Linking Setup ...
[ 7s] + LANG=en_US.utf8
[ 7s] + ./Setup --version
[ 7s] Cabal library version 3.2.0.0
[ 7s] + '[' -x Setup ']'
[ 7s] + LANG=en_US.utf8
[ 7s] + ./Setup configure --prefix=/usr --libdir=/usr/lib64 --docdir=/usr/share/licenses/cardano-rt-view '--libsubdir=$compiler/$pkgid' '--datasubdir=$pkgid' --ghc '--dynlibdir=/usr/lib64/$compiler/$pkgid' --global '--ghc-options= ' -v -p --enable-shared --htmldir=/usr/share/doc/ghc-8.10.2/html/libraries/cardano-rt-view-0.1.0 --global
[ 8s] Using Parsec parser
[ 8s] Configuring cardano-rt-view-0.1.0...
[ 8s] CallStack (from HasCallStack):
[ 8s] $, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:1024:20 in Cabal-3.2.0.0:Distribution.Simple.Configure
[ 8s] configureFinalizedPackage, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:477:12 in Cabal-3.2.0.0:Distribution.Simple.Configure
[ 8s] configure, called at libraries/Cabal/Cabal/Distribution/Simple.hs:625:20 in Cabal-3.2.0.0:Distribution.Simple
[ 8s] confHook, called at libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs:65:5 in Cabal-3.2.0.0:Distribution.Simple.UserHooks
[ 8s] configureAction, called at libraries/Cabal/Cabal/Distribution/Simple.hs:180:19 in Cabal-3.2.0.0:Distribution.Simple
[ 8s] defaultMainHelper, called at libraries/Cabal/Cabal/Distribution/Simple.hs:116:27 in Cabal-3.2.0.0:Distribution.Simple
[ 8s] defaultMain, called at Setup.hs:2:8 in main:Main
[ 8s] Setup: Encountered missing or private dependencies:
[ 8s] cardano-prelude -any
[ 8s]
[ 8s] error: Bad exit status from /var/tmp/rpm-tmp.1Of1RU (%build)
In order to be 1 place for getting all the details about a stake pool, it would be nice to have different tabs for displaying:
Can we attach to documentation full config file listing or add link where there will be a node config file, (at least for mainnet) with all most important tracers, mappings and traceForwardTo section already added/defined so user can only download such file and start node ? I think it will be much more convenient for end users than adding it manually.
Producer node is not shown as started in RT-View even it is connected and synced through Relay (peer) node.
Steps to reproduce:
cardano-node.exe run --topology ./shelley_qa-topology.json --database-path ./state --port 3002 --config ./shelley_qa-config.json --socket-path \\.\pipe\cardano-node2
cardano-node.exe run --topology ./shelley_qa-topology.json --database-path ./state --host-addr 127.0.0.1 --port 3003 --config ./shelley_qa-config.json --socket-path \\.\pipe\cardano-node3 --shelley-kes-key pool_kes.skey --shelley-vrf-key pool_vrf.skey --shelley-operational-certificate pool_operational.cert
Files:
Relay:
relay2.zip
Producer
pool1.zip
producer_logs.txt
The Node commit
link from the Node Info tab open a new instance of the rt-view webpage.
When using pipes on windows, the message for traceForwardTo/contents
should indicate "\\.\pipe\Users-Dorin-AppData-Local-Temp-_rt-view-pipes_node-1" instead of "\.\pipe\Users-Dorin-AppData-Local-Temp-_rt-view-pipes_node-1", otherwise the node will not start complaining the value inside the node-config file is not correct.
IntersectMBO/cardano-node#1694
Describe the feature you'd like
Add an indicator as to whether the node is a producer or relay.
In Blockchain Tab of rt-view
we have stats like:
Forged blocks number: 0
Slot leader, number: 0
Cannot lead, number: 0
Missed slots number: 0
If node is a relay node - maybe add info "N/A - Not a block producer node" or something like that instead of displaying 0.
I used RT View for some days now, server from http://cardano.domain.com
. In order to be able to use Let's Encrypt's cerbot for https (which includes serving static "challenge" files to show one is the owner of the domain in question), I want to move RT View from /
to /rt-view/
in nginx' configuration (ergo http://cardano.domain.com/rt-view
).
Previous nginx config:
location / {
auth_basic "Cardano RT View Authorization";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd-cardano-rt-view;
proxy_pass http://127.0.0.1:8024/;
}
Resulting HTTP headers:
[...]
--> http://cardano.domain.com:80/haskell.js
<-- GET: HTTP/1.1 200 OK
--> ws://cardano.domain.com:80/websocket/
<-- GET: HTTP/1.1 101 WebSocket Protocol Handshake
[...]
Until here everything works as expected.
New nginx config:
root /srv/www/cardano.domain.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /rt-view/ {
auth_basic "Cardano RT View Authorization";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd-cardano-rt-view;
proxy_pass http://127.0.0.1:8024/;
}
HTTP headers:
[...]
--> http://cardano.domain.com:80/rt-view/haskell.js
<-- GET: HTTP/1.1 200 OK
--> ws://cardano.domain.com:80/websocket/
<-- NS_ERROR_CONNECTION_REFUSED
[...]
I've tried quite some configuration work-arounds, rewrites, added the same rules for location /websocket/
etc. but it seems that only a proper request might help here? As I'm no expert in nginx configuration I might be missing sth. as well...
OS: Fedora 33 Server
RT View: 0.1.0
Nginx: 1.18.0
Thanks in advance
I can't see values for Bars/Charts views in Resources View tab:
I can see information on other tabs.
I am using both tracers "cardano.node.metrics" & "cardano.node-metrics" in my configuration file.
Here is the config file I am using:
mainnet-config.txt
Browsers:
Chrome, Opera, FF
Platform:
Linux Mint 19.2 (Kernel: 4.15.0-101-generic)
cardano node:
cardano-node 1.19.1 - linux-x86_64 - ghc-8.6
git rev 497afd7dedc5d5b9bdcdb0e3cac6a50bd9f7dd54
Value of this FR depends on how many nodes people run at the same time - if there are many nodes then it might be useful to:
cardano-rt-view:
There is a lot of error entries:
Error: Switchboard's queue full, dropping log items!
Error: Switchboard's queue full, dropping log items!
Error: Switchboard's queue full, dropping log items!
which suggests that node tries to forward its metrics, but without a success.
After ~ one hour they stopped appearing.
This is the full log file, service was running for a bit over a one hour:
rt-view-log.txt
Platform:
Linux Mint 19.2 (Kernel: 4.15.0-101-generic)
cardano node:
cardano-node 1.19.1 - linux-x86_64 - ghc-8.6
git rev 497afd7dedc5d5b9bdcdb0e3cac6a50bd9f7dd54
config files that were used:
node: the same as in #3
cardano-rt-view: default options for one node.
The Key Features shows:
3. Web-based UI: it provides configurable sections, live charts, and interactive tooltips. Use any browser or run RTView behind a web server like NGINX and view your nodes' state on any third-party device.
If I understand that correctly it is possible to access the web-based UI from a third-party device like:
cardano-node (Client mashine) -> cardano-rt-view (Server mashine) <- access via Browser (tablet)
I have not yet figured out how to get this setup work as cardano-rt-view seems to listening on localhost only. Any help/docu out there?
Thank you
details here: https://input-output-rnd.slack.com/archives/C01DBUGPGTA/p1606133671069200?thread_ts=1606130611.066400&cid=C01DBUGPGTA
Now, indicate a host of machine RTView will be launched on (default is 0.0.0.0): x.x.x.x
Ok, it is assumed that RTView will be launched on the host "x.x.x.x"
http://x.x.x.x:8500/
but nothing happens (I cannot see anything coming into the rt-view console from the relay/linux machine)Should the rt-view server listen on 0.0.0.0:8500 or x.x.x.x:8500 instead of 127.0.0.1:8500 ? Or am I missing anything? (or doing anything wrong)
"traceForwardTo": {
"tag": "RemoteSocket",
"contents": [
"y.y.y.y",
"3011"
]
}
The RT View seems to not be able to connect to the node; The Node Endpoint seems not correct to.
PS: I tried to manually change the remoteAddr from rt-view.yaml to the IP of the remote node (x.x.x.x) but the RT View does not start anymore
As was reported in IntersectMBO/cardano-node#1624, there is a bug with uptime format (both in LiveView and RTView).
Summary
It appears that the Liveview on the nodes do not count "days" as part of the uptime and roll over after 24:00 back to 00:00 and recount.
Steps to reproduce
Expected behavior
The Uptime should count the days
System info (please complete the following information):
There are two minor parsing issues when going through initial config setup for rt-view
(in bold text):
artur@artur-desktop:~/Projects/RTView_1_19_1_node$ ./cardano-rt-view
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RTView: real-time watching for Cardano nodes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Saved configuration file is found. Do you want to use it? <Y/N>
5
How many nodes will you connect (1 - 99, default is 3):
1
Ok, 1 nodes.
Input the names of the nodes (default are "node-1"):
n-1
Ok, the last node has name "n-1"
Indicate the port for the web server (1024 - 65535, default is 8024):
Ok, the server will be listening on http://127.0.0.1:8024
Connections shall be made via pipes (P, default way) or networking sockets (S)?
D
Ok, pipes will be used. Indicate the directory for them, default is "/tmp/rt-view-pipes":
/home/artur/rt-view-pipes
Ok, directory "/home/artur/rt-view-pipes" will be used for the pipes.
Indicate the directory with static content for the web server, default is "static":
qa-static
Ok, static content will be taken from directory "qa-static".
──────────────────────────────
Great, RTView is ready to run!
This is the output when running node 1.19.1
with additional entries in config file needed for rt-view
, logs are cluttered with those notifications:
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
[artur-de:cardano.node.ChainDB:Notice:41] [2020-09-28 11:46:36.49 UTC] Chain extended, new tip: bb3ba87a12098b75957887cfce5945ff3dab3d8026a1edcd3e1e5839268eade8 at slot 3625253
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Notice: TraceForwarder's queue is full, dropping log items!
Edit: After running node for > 1 hour they do not show up.
Platform:
Linux Mint 19.2 (Kernel: 4.15.0-101-generic)
cardano node:
cardano-node 1.19.1 - linux-x86_64 - ghc-8.6
git rev 497afd7dedc5d5b9bdcdb0e3cac6a50bd9f7dd54
config file that was used:
mainnet-config.txt
Folloiwing comments breaks the build if build is enabled with haddock
using GHC 8.10.2, have not tried to replicate with 8.6.5
cardano-rt-view/src/Cardano/RTView/NodeState/Updater.hs
Lines 234 to 237 in 707566a
Possible workarrounds:
haddock
entirely e.q. using RPM macro %ghc_lib_build_without_haddock
System start time
is misleading as it is not clear (without reading the tooltip) if it is:
"Blockchain start time" is better even there could be better names too.
Scenario:
Let's say I have 1-3 nodes (Relays + Producer) on 3 different VMs (Linux, etc) somewhere on some clouds
I want to see all the stats, using RT-View, on my PC (Windows/Linux/MAC) --> so I need to use Sockets inside node configs
After responding to rt-view questions, it suggests to add the below traceForwards to the nodes, but we should use the (public) IP of the machine were rt-view is started instead of 127.0.0.1
It would be useful to have also the node start time (date + time) inside the Node Info tab.
I tried to build 0.1.0 and the last commit but both failed:
...
[122 of 270] Compiling Distribution.SPDX.LicenseReference ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseReference.hs, bootstrapping/Distribution/SPDX/LicenseReference.o )
[123 of 270] Compiling Distribution.SPDX.LicenseId ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseId.hs, bootstrapping/Distribution/SPDX/LicenseId.o )
ghc/ghc.mk:107: ghc/stage1/package-data.mk: No such file or directory
make[1]: *** [utils/ghc-cabal/ghc.mk:56: utils/ghc-cabal/dist/build/tmp/ghc-cabal] Killed
make: *** [Makefile:123: all] Error 2
builder for '/nix/store/jp8yc7m6mb273gy6m6sg536kj9fyac4j-ghc-8.6.5.drv' failed with exit code 2
cannot build derivation '/nix/store/y4fr020iv5spkkwfdr8zz7x8kl2yqnwa-ghc-8.10.2-configured-src.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/nqw8bg8n44828rqq3m1han06hb78szyz-ghc-8.10.2.drv': 1 dependencies couldn't be built
building '/nix/store/x5x0bzvdxl5ih3avb05a2z3zp4ck441s-tagged-0.8.6-3.cabal.drv'...
cannot build derivation '/nix/store/0c2rvc6ik4cf0al6m8fb2vhcrj834jsy-Cabal-lib-Cabal-3.2.0.0-config.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/azclpifm98wgjdc9hbi3p9a9bq21p6x1-Cabal-lib-Cabal-3.2.0.0-config.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/5bw58sfg09kcgiximbba8a4qklkcr8a0-Cabal-lib-Cabal-3.2.0.0-ghc-8.10.2-env.drv': 1 dependencies couldn't be built
...
error: while evaluating 'recRecurseIntoAttrs' at /nix/store/7lzfs8kl0s78d84f9q2lz1z095dm6w0n-source/overlays/haskell-nix-extra/default.nix:8:29, called from something-something/cardano-rt-view/default.nix:20:21:
while evaluating anonymous function at something-something/cardano-rt-view/nix/haskell.nix:4:1, called from something-something/cardano-rt-view/nix/pkgs.nix:3:34:
while evaluating 'cabalProject' at /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:551:13, called from something-something/cardano-rt-view/nix/haskell.nix:35:12:
while evaluating the attribute 'hsPkgs' at /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:518:15:
while evaluating the attribute 'hsPkgs' at /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:500:43:
while evaluating 'mkCabalProjectPkgSet' at /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:152:13, called from /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:485:30:
while evaluating the attribute 'haskell-nix.compiler."${(((plan-pkgs).pkgs hackage)).compiler.nix-name}".version' at /nix/store/acfzlk0y1lmpw05k67a54nws1x8irkzm-source/lib/attrsets.nix:344:7:
while evaluating anonymous function at /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/lib/import-and-filter-project.nix:5:1, called from /nix/store/dyapy325zdmjq3hcbg7pc9i79qqkk1xb-source/overlays/haskell.nix:487:31:
build of '/nix/store/l227sg85874l75gbkmxlvn86axp7y4ar-cardano-rt-view-src-plan-to-nix-pkgs.drv' failed
Steps to reproduce:
cardano-rt-view.exe: Foreign.JavaScript: Browser <-> Server communication broken
127.0.0.1 - - [30/Sep/2020:12:13:00 +0300] "GET /static/images/iohk-logo.png HTTP/1.1" 200 8764 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
Foreign.JavaScript: Browser window disconnected.
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET / HTTP/1.1" 200 369 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET / HTTP/1.1" 200 369 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /haskell.css HTTP/1.1" 200 80 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /haskell.js HTTP/1.1" 200 100857 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /favicon.ico HTTP/1.1" 200 369 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /static/css/w3.css HTTP/1.1" 304 0 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /static/js/chart.js HTTP/1.1" 304 0 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /static/images/question-circle-solid.svg HTTP/1.1" 200 868 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
127.0.0.1 - - [30/Sep/2020:12:15:36 +0300] "GET /static/images/iohk-logo.png HTTP/1.1" 200 8764 "http://127.0.0.1:8024/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
cardano-rt-view.exe: Foreign.JavaScript: Browser <-> Server communication broken.
I see different starting/ending points on time scale for nodes, I would expect they should start at the same time or I am wrong ?
(At the moment I can't see any values on Y axis, or for Bars view - not sure if this is related in any way to #6
Moreover - when I changed the view from pane view to grid view I see different starting points than in previous view:
Currently, RTView doesn't produce a local log. It would be useful to have such a log, at least for debugging purposes.
I see that under peers we are displaying the slot no but under blockchain we are displaying epoch/slot and block no
I think it would be useful (and consistent) to display values that could be easily comparable (in order to easily spot discrepancies), what do you think? One option could be to add the slot no also into the blockchain tab
As a pool operator, I am interested to find:
For the moment I cannot make an accurate correlation between the above expectations and the available values.
When displaying 1 node, especially in the Errors tab, it would be nice to have the option to make the window wider.
In the README in section Documentation
in the sentence
The documentation is published here.
the here link is not resolved. Please, correct to the one that works.
This is absolutely the lowest priority ""issue":
When you hover over Select metric, the very first item TraceAcceptor endpoint is displayed in two lines then after few seconds its moving to one line, changing the width of list and positions of elements, I mean user maybe pointing on some particular element on the list and when the click will happen list might slightly change at that time and different element will be clicked.
It would be nice to have another line inside the KES tab specifying in how many days the actual KES should be renewed. For mainnet, I think it is something like cardano_node_Forge_metrics_remainingKESPeriods_int * 129600 * 1 / 3600 / 24
On Windows, after responding to all the questions, and pressing Enter for starting the rt-view, the rt-view window is automatically closed and nothing happens.
I find this tab a lot :) and I would love to see some more improvements here, like:
Similarly to IntersectMBO/cardano-node#1200, cardano-rt-view
inherits systemd
dependency from iohk-monitoring
dependency, this should be mitigated just like it was in IntersectMBO/cardano-node#1775 for cardano-node
...
CC: @hasufell?
Make rt-view speak with the nodes without restarting them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.