monitoring using the $stats stream in a cluster

Hi All

I’d like to monitor Event Store through Zabbix and query the
$stats stream to get metrics and plot them.

It seems that the in-built $stats stream round-robins
through all of the cluster nodes, e.g.

Event #62458 <-- Reports Data from Node 1

Event #62457 <-- Reports Data from Node 2

Event #62456 <-- Reports Data from Node 3

Event #62455 <-- Reports Data from Node 1

etc, etc

Here’s what my http call looks like:

http://SomeIpAddress:2113/streams/$stats-0.0.0.0:2113/head

I don’t see any way to identify the node from the returned
json other than the proc-id, which could theoretically be the same on two
nodes.

Questions:

  • Is there a stats stream that returns data on a per-node
    basis?

  • Am I missing an obvious way to identify the node within
    the returned values?

  • Is using $stats to report metrics even a sensible approach
    here?

Environment:

Event Store 4.0.1.0

Ubuntu 16.04

Thanks!

John

There is a stats stream per node (based on ip). For uptime status
monitoring though I would recommend looking at node://gossip instead.

Thanks Greg, the gossip stream is useful.

Just on the stats per node, would the uri look something like this (assuming node ip is 10.1.1.20)?

http://nodeaddress:2113/web/index.html#/streams/$stats-10.1.1.20:2113

I have int-ip and ext-ip listening on 0.0.0.0 if that’s significant, we have two interfaces on these boxes.

Thanks!

John

Yes that is correct. The stats are based on ip/port.

Great, thanks for that Greg