Reverse Engineering Ethstats Agent for a FluentD plugin

Reverse Engineering Ethstats Agent for a FluentD plugin

Just spouting about some progress I made on reverse engineering some API for Ethstats agent and dashboard that soon will be a FluentD plugin, and with that working with Azure OMS to feed the analytical reporting for monitoring and real-time analysis of the health of an Ethereum client.

Anybody working with Ethereum is probably familiar with the Ethstats dashboard. This great dashboard is courtesy of Marian.

Well, for that dashboard to work today, there are 2 parts; 1 is the Dashboard itself - which is up on GitHub at dashboard. The Second part is the agent that must run on the local machine with the Ethereum client (Geth). That is also in the same GitHub organization agent.

We've been looking at creating a FluentD plugin so folks can just feed their choice of analytical platform. On Azure, the OMS suite service utilizes FluentD in the agent. So, any FluentD plugin (or many) just work in OMS.

I was working with someone briefly and they where asking "where are the API documentation or specs" - casually, and seriously I just responded "It's here in the code". Well for some that's just not good enough.

For me however, suites me just right. I know it's always up-2-date :).

Now, the next part of this is that Geth had introduced the --ethstats value command line option.

So, here's a quick view of the basic status being sent to the FluentD plugin from Geth's -ethstats thread.

fluentd plugin

What's nice is that Geth is fairly resilient to retrying the connection and recovering from breakage in the network link. Also, in the Geth 1.6 release some more fixes were made to bring the level of status more in line with what the two tools (Dashboard and Agent) that Marian provided.