From 2c317c642e598740c70f4b74bb7a05d1c3792e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 27 Jun 2016 17:26:38 +0300 Subject: [PATCH 1/4] Add note about broken table in RST --- docs/running_ringpop.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/running_ringpop.md b/docs/running_ringpop.md index 6d930e5..730eb33 100644 --- a/docs/running_ringpop.md +++ b/docs/running_ringpop.md @@ -49,6 +49,10 @@ identity in the stat path, e.g. `ringpop.10_30_8_26_20600.*`; the dots and colon are replaced by underscores. The table below lists all stats that Ringpop emits: +*Note: if you are reading this page from ringpop.readthedocs.org, the table +below is probably broken, and we [can't do anything about it yet][1]. For a +properly-formatted table, please see [this page on github][2].* + |Node.js Path|Description|Type |----|----|---- |changes.apply|Number of changes applied per membership update|gauge @@ -135,3 +139,6 @@ Content coming soon... ## Troubleshooting Content coming soon... + +[1]: https://github.com/rtfd/recommonmark/issues/3 +[2]: https://github.com/uber/ringpop-common/blob/master/docs/running_ringpop.md#monitoring From 794386fa99a458f3afcb6fc3f71addb0d772956b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 27 Jun 2016 17:30:42 +0300 Subject: [PATCH 2/4] ring.change is a counter --- docs/running_ringpop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_ringpop.md b/docs/running_ringpop.md index 730eb33..de68a7e 100644 --- a/docs/running_ringpop.md +++ b/docs/running_ringpop.md @@ -128,7 +128,7 @@ properly-formatted table, please see [this page on github][2].* |requestProxy.retry.succeeded|Forwarded request succeeded after retries|count |requestProxy.send.error|Forwarded request failed|count |requestProxy.send.success|Forwarded request was successful|count -|ring.change|Hash ring keyspace changed|gauge +|ring.change|Hash ring keyspace changed|counter |ring.checksum-computed|Hash ring checksum was computed|count |ring.server-added|Node (and its points) added to hash ring|count |ring.server-removed|Node (and its points) removed from hash ring|count From 962ae424ea910fb83ef2e510a98e5840221c2387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 27 Jun 2016 17:30:51 +0300 Subject: [PATCH 3/4] Document location of tick-cluster --- docs/running_ringpop.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/running_ringpop.md b/docs/running_ringpop.md index de68a7e..eab317c 100644 --- a/docs/running_ringpop.md +++ b/docs/running_ringpop.md @@ -2,19 +2,20 @@ Before we get to programming against Ringpop, let's just run it by itself and see what happens. There are several ways to accomplish this and they are documented below. There's nothing too fancy going on when Ringpop runs by itself. To reap the full potential of it, you'll need to embed it into your application and start divvying incoming requests based on the sharding key of your choice. No matter, we're here, in this section, to get a look at what happens in Ringpop at steady-state, how its membership protocol behaves and how to launch a standalone version of it from the command-line. Let's get to it! ## Running with tick-cluster -`tick-cluster` is a utility located in the `scripts/` directory of the Ringpop repo that allows you to quickly spin up a Ringpop cluster of arbitrary size and test basic failure modes: suspending, killing and respawning nodes. +`tick-cluster` is a utility located in the `tools/` directory of this repo that allows you to quickly spin up a Ringpop cluster of arbitrary size and test basic failure modes: suspending, killing and respawning nodes. To use `tick-cluster`, first clone the repo and install Ringpop's dependencies: ``` -$ git clone git@github.com:uber/ringpop.git +$ git clone git@github.com:uber/ringpop-common.git +$ cd tools $ npm install ``` Then run `tick-cluster`: ``` -$ ./scripts/tick-cluster.js [-n size-of-cluster] [-i interpreter-that-runs-program] +$ ./tick-cluster.js [-n size-of-cluster] [-i interpreter-that-runs-program] ``` `tick-cluster` will spawn a child process for each node in the cluster. They will bootstrap themselves using an auto-generated `hosts.json` bootstrap file and converge on a single membership list within seconds. Commands can be issued against the cluster while `tick-cluster` runs. Press `h` or `?` to see which commands are available. @@ -24,7 +25,7 @@ Whenever it is specified, the program is run by an interpreter, otherwise the pr Here's a sample of the output you may see after launching a 7-node cluster with `tick-cluster`: ``` -$ ./scripts/tick-cluster.js -n 7 -i node ./main.js +$ ./tick-cluster.js -n 7 -i node ./main.js [init] 11:11:52.805 tick-cluster started d: debug flags, g: gossip, j: join, k: kill, K: revive all, l: sleep, p: protocol stats, q: quit, s: cluster stats, t: tick [cluster] 11:11:52.807 using 10.80.135.224 to listen [init] 11:11:52.818 started 7 procs: 76365, 76366, 76367, 76368, 76369, 76370, 76371 From 412aeaa32fe5f20302f5a7aee35ca6299033d1b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 27 Jun 2016 17:36:41 +0300 Subject: [PATCH 4/4] Add {membership,ring}.checksum-periodic --- docs/running_ringpop.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/running_ringpop.md b/docs/running_ringpop.md index eab317c..a1521ff 100644 --- a/docs/running_ringpop.md +++ b/docs/running_ringpop.md @@ -97,6 +97,7 @@ properly-formatted table, please see [this page on github][2].* |membership-update.leave|A member was updated in the leave state|count |membership-update.suspect|A member was updated to be suspect|count |membership-update.unknown|A member was updated in the unknown state|count +|membership.checksum-periodic|Current membership checksum|gauge |membership.checksum-computed|Membership checksum was computed|count |not-ready.ping|Ping received before Ringpop was ready|count |not-ready.ping-req|Ping-req received before Ringpop was ready|count @@ -131,6 +132,7 @@ properly-formatted table, please see [this page on github][2].* |requestProxy.send.success|Forwarded request was successful|count |ring.change|Hash ring keyspace changed|counter |ring.checksum-computed|Hash ring checksum was computed|count +|ring.checksum-periodic|Current ring checksum|gauge |ring.server-added|Node (and its points) added to hash ring|count |ring.server-removed|Node (and its points) removed from hash ring|count |updates|Number of membership updates applied|timer