LearnBitcoin

Bitcoin Dev Archive 2014

statoshi.info is now live

5 messages, 11 to 14 May 2014. Started by Jameson Lopp.

Jameson Lopp (2), Wladimir J. van der Laan, Josh Lehan, Pieter Wuille

Permalink Original thread on gnusha.org

Jameson Lopp permalink original

Since it seems unlikely that we'll be able to ship an integrated stats / monitoring feature in the short term, I went ahead and set up a public Statoshi instance and threw a nicer interface on top of it.

http://statoshi.info

You can also view the raw Graphite stats at http://statoshi.info:8080/

If there are any metrics that you think would be helpful for development or monitoring purposes, just let me know and I'll take a shot at adding them.

Jameson

Wladimir J. van der Laan in reply to Jameson Lopp permalink original

Hello Jameson,

On Sun, May 11, 2014 at 7:14 PM, Jameson Lopp <jameson.lopp@gmail•com> wrote:

Quoted text (6 lines)
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Since it seems unlikely that we'll be able to ship an integrated stats / monitoring feature in the short term, I went ahead and set up a public Statoshi instance and threw a nicer interface on top of it.
>
> http://statoshi.info

Must say it looks very nice.

One comment about the graphs: in the 'connected peers' chart you visualize some larger quantities (especially knownAddresses) and some very small ones (peer.(dis)connect). This makes the latter invisible due to scale.

Some random stats may be useful as well:

- Number of connected peers that are SPV clients or full nodes (NODE_NETWORK) - Current block height (so that it's possible to detect stuck nodes) - Number of transactions in mempool - Number of transactions in UTXO set - Maybe some fee statistics, https://github.com/bitcoin/bitcoin/pull/3959 would be useful here - Number of orphan blocks/orphan transactions

Wladimir

Josh Lehan in reply to Wladimir J. van der Laan permalink original

I agree, it looks very slick. Well done.

While on the subject of connected peers, what about the idea of adding the ping time from this node to other peers? The problem with fitting that information into the current design is that the graphs seem to be comprised of overall statistics for this node, not per-peer statistics that can vary between peers (such as ping time). If a line were to be added to a graph to represent each peer's ping time, the number of lines (statistics) on the graph would have to vary in real time as peers are added or removed, which would be a challenge.

I earlier added the "ping" feature to bitcoind, and it works to measure the ping time, however this feature is on-demand: it won't ping other nodes unless requested. So, something would have to send the "ping" RPC command on a regular schedule, to ensure the graph is updated with new information. Also, there is currently no support for overlapping pings (although that would be easy to add), so if a peer is slow enough to not respond at all to the first ping request, and a second ping request goes out in the meantime, any late response from the first ping request would then be discarded.

Great graphs, and these are just brainstorms for future ideas :)

Josh Lehan

Sent from my iPad

Quoted text (41 lines)
> On May 13, 2014, at 4:43, Wladimir <laanwj@gmail•com> wrote:
>
> Hello Jameson,
>
>> On Sun, May 11, 2014 at 7:14 PM, Jameson Lopp <jameson.lopp@gmail•com> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Since it seems unlikely that we'll be able to ship an integrated stats / monitoring feature in the short term, I went ahead and set up a public Statoshi instance and threw a nicer interface on top of it.
>>
>> http://statoshi.info
>
> Must say it looks very nice.
>
> One comment about the graphs: in the 'connected peers' chart you
> visualize some larger quantities (especially knownAddresses) and some
> very small ones (peer.(dis)connect). This makes the latter invisible
> due to scale.
>
> Some random stats may be useful as well:
>
> - Number of connected peers that are SPV clients or full nodes (NODE_NETWORK)
> - Current block height (so that it's possible to detect stuck nodes)
> - Number of transactions in mempool
> - Number of transactions in UTXO set
> - Maybe some fee statistics,
> https://github.com/bitcoin/bitcoin/pull/3959 would be useful here
> - Number of orphan blocks/orphan transactions
>
> Wladimir
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge•net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
Jameson Lopp in reply to Josh Lehan permalink original

Thanks; I've received several suggestions for other metrics to collect that I hope to implement soon, but you're right in that tracking per-peer pings is a different type of metric than what I'm currently collecting. I actually noted the lack of pong messages in a post I made a few weeks ago: http://coinchomp.com/2014/04/27/peeking-hood-running-bitcoin-node/

Once I added metrics for sent messages, it validated my theory: my node has never sent a single ping request to a peer and thus has never received a pong message. I can't even add sent pings or received pongs to this chart because they don't exist in my graphite instance. http://statoshi.info:8080/render/?width=1548&height=883&_salt=1400066995.622&target=stats.message.received.ping&target=stats.message.sent.pong&lineMode=connected&bgcolor=000000&fgcolor=FFFFFF

I guess my question regarding ping stats is how useful that information would be - it seems to me that if we are trying to quantify the cohesiveness of the network, we should instead be observing the message propagation times. Though that's outside the scope of my project; there are other people who are doing just that.

http://bitcoinstats.com/network/propagation/

Jameson

On 05/13/2014 01:48 PM, Josh Lehan wrote:

Quoted text (53 lines)
> I agree, it looks very slick.  Well done.
>
> While on the subject of connected peers, what about the idea of adding the ping time from this node to other peers?  The problem with fitting that information into the current design is that the graphs seem to be comprised of overall statistics for this node, not per-peer statistics that can vary between peers (such as ping time).  If a line were to be added to a graph to represent each peer's ping time, the number of lines (statistics) on the graph would have to vary in real time as peers are added or removed, which would be a challenge.
>
> I earlier added the "ping" feature to bitcoind, and it works to measure the ping time, however this feature is on-demand: it won't ping other nodes unless requested.  So, something would have to send the "ping" RPC command on a regular schedule, to ensure the graph is updated with new information.  Also, there is currently no support for overlapping pings (although that would be easy to add), so if a peer is slow enough to not respond at all to the first ping request, and a second ping request goes out in the meantime, any late response from the first ping request would then be discarded.
>
> Great graphs, and these are just brainstorms for future ideas :)
>
> Josh Lehan
>
> Sent from my iPad
>
>> On May 13, 2014, at 4:43, Wladimir <laanwj@gmail•com> wrote:
>>
>> Hello Jameson,
>>
>>> On Sun, May 11, 2014 at 7:14 PM, Jameson Lopp <jameson.lopp@gmail•com> wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Since it seems unlikely that we'll be able to ship an integrated stats / monitoring feature in the short term, I went ahead and set up a public Statoshi instance and threw a nicer interface on top of it.
>>>
>>> http://statoshi.info
>>
>> Must say it looks very nice.
>>
>> One comment about the graphs: in the 'connected peers' chart you
>> visualize some larger quantities (especially knownAddresses) and some
>> very small ones (peer.(dis)connect). This makes the latter invisible
>> due to scale.
>>
>> Some random stats may be useful as well:
>>
>> - Number of connected peers that are SPV clients or full nodes (NODE_NETWORK)
>> - Current block height (so that it's possible to detect stuck nodes)
>> - Number of transactions in mempool
>> - Number of transactions in UTXO set
>> - Maybe some fee statistics,
>> https://github.com/bitcoin/bitcoin/pull/3959 would be useful here
>> - Number of orphan blocks/orphan transactions
>>
>> Wladimir
>>
>> ------------------------------------------------------------------------------
>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>> Instantly run your Selenium tests across 300+ browser/OS combos.
>> Get unparalleled scalability from the best Selenium testing platform available
>> Simple to use. Nothing to install. Get started now for free."
>> http://p.sf.net/sfu/SauceLabs
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists•sourceforge•net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
Pieter Wuille in reply to Jameson Lopp permalink original

On May 14, 2014 1:42 PM, "Jameson Lopp" <jameson.lopp@gmail•com> wrote:

Quoted text (5 lines)
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Thanks; I've received several suggestions for other metrics to collect

that I hope to implement soon, but you're right in that tracking per-peer pings is a different type of metric than what I'm currently collecting. I actually noted the lack of pong messages in a post I made a few weeks ago: http://coinchomp.com/2014/04/27/peeking-hood-running-bitcoin-node/

See pull request #2784.

(Sent from my phone)