diff --git a/docs/agent/basics.html.markdown b/docs/agent/basics.html.markdown index 9a3963196..f1fa7dc97 100644 --- a/docs/agent/basics.html.markdown +++ b/docs/agent/basics.html.markdown @@ -57,17 +57,17 @@ There are six important components that `serf agent` outputs: By default, this binds only to localhost on the default port. If you change this address, you'll have to specify an `-rpc-addr` to commands such as `serf members` so they know how to talk to the agent. This is also - the address other applications can use over [RPC to control Serf](/docs/agent/rpc.html). + the address other applications can use over [RPC to control Serf](/docs/agent/rpc.html.markdown). * **Encrypted**: This shows if Serf is encrypting all traffic that it sends and expects to receive. It is a good sanity check to avoid sending non-encrypted traffic over any public networks. You can read more about - [encryption here](/docs/agent/encryption.html). + [encryption here](/docs/agent/encryption.html.markdown). * **Snapshot**: This shows if Serf snapshotting is enabled. The snapshot file enables Serf to automatically re-join a cluster after failure and prevents replay of events that have already been seen. It requires storing - state on disk, and [must be configured](/docs/agent/options.html) + state on disk, and [must be configured](/docs/agent/options.html.markdown) using a CLI flag or in the configuration directory. If it is not provided, other nodes will still attempt to reconnect on recovery, however the node will take longer to join the cluster and will replay old events. @@ -76,7 +76,7 @@ There are six important components that `serf agent` outputs: be appropriate to the environment Serf is running in. It defaults to optimizing for a LAN environment, but can also be set for WAN or local-only communication. The profile can be set in - the [configuration](/docs/agent/options.html). + the [configuration](/docs/agent/options.html.markdown). ## Stopping an Agent diff --git a/docs/agent/encryption.html.markdown b/docs/agent/encryption.html.markdown index 8dbacaead..756dce5af 100644 --- a/docs/agent/encryption.html.markdown +++ b/docs/agent/encryption.html.markdown @@ -10,7 +10,7 @@ description: |- The Serf agent supports encrypting all of its network traffic. The exact method of this encryption is described on the -[encryption internals page](/docs/internals/security.html). +[encryption internals page](/docs/internals/security.html.markdown). ## Enabling Encryption diff --git a/docs/agent/event-handlers.html.markdown b/docs/agent/event-handlers.html.markdown index 6fbe8f9d8..5cd1a2091 100644 --- a/docs/agent/event-handlers.html.markdown +++ b/docs/agent/event-handlers.html.markdown @@ -12,7 +12,7 @@ Serf's true power and flexibility comes in the form of event handlers: scripts that are executed in response to various events that can occur related to the Serf cluster. Serf invokes events related to membership changes (when a node comes online or goes offline) as well as -[custom events](/docs/commands/event.html) or [queries](/docs/commands/query.html). +[custom events](/docs/commands/event.html) or [queries](/docs/commands/query.html.markdown). Event handlers can be any executable, including piped executables (such as `awk '{print $2}' | grep foo`), since event handlers are invoked within @@ -137,4 +137,4 @@ $stderr.reopen('/dev/null', 'w') ``` **Note:** This method is really only useful for event handlers, and is mostly -useless for [queries](/docs/commands/query.html). +useless for [queries](/docs/commands/query.html.markdown). diff --git a/docs/agent/options.html.markdown b/docs/agent/options.html.markdown index 14b0ea247..fc5631082 100644 --- a/docs/agent/options.html.markdown +++ b/docs/agent/options.html.markdown @@ -36,7 +36,7 @@ The options below are all specified on the command-line. If this configuration value is changed and no port is specified, the default of "7946" will be used. An important compatibility note, protocol version 2 introduces support for non-consistent ports across the cluster. For more information, - see the [compatibility page](/docs/compatibility.html). + see the [compatibility page](/docs/compatibility.html.markdown). Note: To use an IPv6 address, specify "[::1]" or "[::1]:7946". * `-iface` - This flag can be used to provide a binding interface. It can be @@ -89,7 +89,7 @@ The options below are all specified on the command-line. * `-event-handler` - Adds an event handler that Serf will invoke for events. This flag can be specified multiple times to define multiple event handlers. By default no event handlers are registered. See the - [event handler page](/docs/agent/event-handlers.html) for more details on + [event handler page](/docs/agent/event-handlers.html.markdown) for more details on event handlers as well as a syntax for filtering event handlers by event. Event handlers can be changed by reloading the configuration. @@ -124,7 +124,7 @@ The options below are all specified on the command-line. are too tight. * `-protocol` - The Serf protocol version to use. This defaults to the latest - version. This should be set only when [upgrading](/docs/upgrading.html). + version. This should be set only when [upgrading](/docs/upgrading.html.markdown). You can view the protocol versions supported by Serf by running `serf -v`. * `-retry-join` - Address of another agent to join after starting up. This can @@ -157,7 +157,7 @@ The options below are all specified on the command-line. By default this is "127.0.0.1:7373", allowing only loopback connections. The RPC address is used by other Serf commands, such as `serf members`, in order to query a running Serf agent. It is also used by other applications - to control Serf using it's [RPC protocol](/docs/agent/rpc.html). + to control Serf using it's [RPC protocol](/docs/agent/rpc.html.markdown). * `-snapshot` - The snapshot flag provides a file path that is used to store recovery information, so when Serf restarts it is able to automatically @@ -223,7 +223,7 @@ at a single JSON object with configuration within it. * `role` - **Deprecated**. Equivalent to the `-role` command-line flag. -* `disable_coordinates` - Disables features related to [network coordinates](/docs/internals/coordinates.html). +* `disable_coordinates` - Disables features related to [network coordinates](/docs/internals/coordinates.html.markdown). * `tags` - This is a dictionary of tag values. It is the same as specifying the `tag` command-line flag once per tag. diff --git a/docs/agent/rpc.html.markdown b/docs/agent/rpc.html.markdown index cbe137c6b..5d08f98c5 100644 --- a/docs/agent/rpc.html.markdown +++ b/docs/agent/rpc.html.markdown @@ -115,7 +115,7 @@ following request body: ``` The `Name` is a string, but `Payload` is just opaque bytes. Coalesce -is used to control if Serf should enable [event coalescing](/docs/commands/event.html). +is used to control if Serf should enable [event coalescing](/docs/commands/event.html.markdown). There is no special response body. @@ -217,7 +217,7 @@ the stream is stopped. The request body looks like: {"Type": "member-join,user:deploy"}` ``` -The format of type is the same as the [event handler](/docs/agent/event-handlers.html), +The format of type is the same as the [event handler](/docs/agent/event-handlers.html.markdown), except no script is specified. The one exception is that `"*"` can be specified to subscribe to all events. @@ -415,7 +415,7 @@ The request looks like: ``` The `Key` should be 32 bytes of base64-encoded data. `24` and `16` bytes are also accepted, but 32 bytes are recommended for improved security. This value can be generated -using the [keygen command](/docs/commands/keygen.html). +using the [keygen command](/docs/commands/keygen.html.markdown). Once invoked, this method will begin broadcasting the new key to all members in the cluster via the gossip protocol. Once the query has completed, a response @@ -507,7 +507,7 @@ successful, this number should be equivalent to the `NumNodes` field. If not all members are aware of a key, you should either rebroadcast that key using the `install-key` RPC command, or remove it using the `remove-key` RPC command. More on encryption keys can be found on the -[agent encryption](/docs/agent/encryption.html) page. +[agent encryption](/docs/agent/encryption.html.markdown) page. ### stats @@ -577,6 +577,6 @@ The returned coordinate is valid only if `Ok` is true. Otherwise, there wasn't a coordinate available for the given node. This might mean that coordinates are not enabled, or that the node has not yet contacted the agent. -See the [Network Coordinates](/docs/internals/coordinates.html) +See the [Network Coordinates](/docs/internals/coordinates.html.markdown) internals guide for more information on how these coordinates are computed, and for details on how to perform calculations with them. diff --git a/docs/commands/agent.html.markdown b/docs/commands/agent.html.markdown index 2a82f221b..c140d5019 100644 --- a/docs/commands/agent.html.markdown +++ b/docs/commands/agent.html.markdown @@ -15,6 +15,6 @@ performs the important task of maintaining membership information, propagating events, detecting failures, etc. Due to the power and flexibility of this command, the Serf agent -is documented in its own section. See the [Serf Agent](/docs/agent/basics.html) +is documented in its own section. See the [Serf Agent](/docs/agent/basics.html.markdown) section for more information on how to use this command and the -[options](/docs/agent/options.html) available. +[options](/docs/agent/options.html.markdown) available. diff --git a/docs/commands/event.html.markdown b/docs/commands/event.html.markdown index 389ce3bf2..1d1ada598 100644 --- a/docs/commands/event.html.markdown +++ b/docs/commands/event.html.markdown @@ -71,7 +71,7 @@ send the "deploy" event with "1234567890" as the payload. ## Receiving an Event The events can be handled by registering an -[event handler](/docs/agent/event-handlers.html) with the Serf agent. The +[event handler](/docs/agent/event-handlers.html.markdown) with the Serf agent. The documentation for how the user event is dispatched is all contained within that linked page. diff --git a/docs/commands/keygen.html.markdown b/docs/commands/keygen.html.markdown index 05a5a572b..f0bd7a823 100644 --- a/docs/commands/keygen.html.markdown +++ b/docs/commands/keygen.html.markdown @@ -11,6 +11,6 @@ description: |- Command: `serf keygen` The `serf keygen` command generates an encryption key that can be used for -[Serf agent traffic encryption](/docs/agent/encryption.html). +[Serf agent traffic encryption](/docs/agent/encryption.html.markdown). The keygen command uses a cryptographically strong pseudo-random number generator to generate the key. diff --git a/docs/commands/rtt.html.markdown b/docs/commands/rtt.html.markdown index 549b88653..3c09a25da 100644 --- a/docs/commands/rtt.html.markdown +++ b/docs/commands/rtt.html.markdown @@ -11,7 +11,7 @@ description: |- Command: `serf rtt` The `rtt` command estimates the network round trip time between two nodes using -Serf's network coordinate model of the cluster. See the [Network Coordinates](/docs/internals/coordinates.html) +Serf's network coordinate model of the cluster. See the [Network Coordinates](/docs/internals/coordinates.html.markdown) internals guide for more information on how these coordinates are computed. While contacting nodes as part of its normal gossip protocol, Serf builds up a diff --git a/docs/compatibility.html.markdown b/docs/compatibility.html.markdown index 8b85e31b4..5900c00c7 100644 --- a/docs/compatibility.html.markdown +++ b/docs/compatibility.html.markdown @@ -25,7 +25,7 @@ can be upgraded without cluster disruption. This compatibility guarantee makes it possible to upgrade Serf agents one at a time, one version at a time. For more details on the specifics of -upgrading, see the [upgrading page](/docs/upgrading.html). +upgrading, see the [upgrading page](/docs/upgrading.html.markdown). ## Protocol Compatibility Table diff --git a/docs/index.html.markdown b/docs/index.html.markdown index 0bbe4cad4..8d6ddca14 100644 --- a/docs/index.html.markdown +++ b/docs/index.html.markdown @@ -11,4 +11,4 @@ description: |- Welcome to the Serf documentation! This documentation is more of a reference guide for all available features and options of Serf. If you're just getting started with Serf, please start with the -[introduction and getting started guide](/intro/index.html) instead. +[introduction and getting started guide](/docs/intro/index.html.markdown) instead. diff --git a/docs/internals/coordinates.html.markdown b/docs/internals/coordinates.html.markdown index 0ac5e490c..54fff1d38 100644 --- a/docs/internals/coordinates.html.markdown +++ b/docs/internals/coordinates.html.markdown @@ -14,7 +14,7 @@ allow the network round trip time to be estimated between any two nodes using a very simple calculation. Coordinates are obtained by adding a very small amount of data to the probe -messages that Serf already sends as part of its [gossip protocol](/docs/internals/gossip.html), +messages that Serf already sends as part of its [gossip protocol](/docs/internals/gossip.html.markdown), so this system scales well and incurs very little overhead. Serf's network tomography is based on ["Vivaldi: A Decentralized Network Coordinate System"](https://www.cs.ucsb.edu/~ravenben/classes/276/papers/vivaldi-sigcomm04.pdf), with some additions from ["Network Coordinates in the Wild"](https://www.usenix.org/legacy/events/nsdi07/tech/full_papers/ledlie/ledlie_html/index_save.html) and ["On Suitability of Euclidean Embedding for Host-Based Network Coordinate Systems"](http://domino.research.ibm.com/library/cyberdig.nsf/papers/492D147FCCEA752C8525768F00535D8A). @@ -110,7 +110,7 @@ The following section shows how to perform calculations with these coordinates. Computing the estimated network round trip time between any two nodes is simple once you have their coordinates. Here's a sample coordinate, as returned from the -`get-coordinate` [RPC call](/docs/agent/rpc.html): +`get-coordinate` [RPC call](/docs/agent/rpc.html.markdown): ``` "Coord": { diff --git a/docs/internals/index.html.markdown b/docs/internals/index.html.markdown index d7d024bd4..3fb123394 100644 --- a/docs/internals/index.html.markdown +++ b/docs/internals/index.html.markdown @@ -10,7 +10,7 @@ description: |- This section goes over some of the internals of Serf, such as the gossip protocol, ordering of messages via Lamport clocks, etc. This section -also contains a useful [convergence simulator](/docs/internals/simulator.html) +also contains a useful [convergence simulator](/docs/internals/simulator.html.markdown) that can be used to see how fast a Serf cluster will converge under various conditions with specific configurations. diff --git a/docs/intro/getting-started/event-handlers.html.markdown b/docs/intro/getting-started/event-handlers.html.markdown index b18f2e44f..cb0da6f1b 100644 --- a/docs/intro/getting-started/event-handlers.html.markdown +++ b/docs/intro/getting-started/event-handlers.html.markdown @@ -99,5 +99,5 @@ to invoke multiple event handlers as well as invoke certain event handlers for only certain Serf events. To learn more about these features, see the full documentation section -of [event handlers](/docs/agent/event-handlers.html). +of [event handlers](/docs/agent/event-handlers.html.markdown). diff --git a/docs/intro/getting-started/next-steps.html.markdown b/docs/intro/getting-started/next-steps.html.markdown index 30836ad34..9d8654049 100644 --- a/docs/intro/getting-started/next-steps.html.markdown +++ b/docs/intro/getting-started/next-steps.html.markdown @@ -11,7 +11,7 @@ description: |- That concludes the getting started guide for Serf. Hopefully you're able to see that while Serf is an incredibly simple tool, it is also extremely powerful. The dead simple membership information and events system that -Serf provides make up the building blocks of [incredible use cases](/intro/use-cases.html). +Serf provides make up the building blocks of [incredible use cases](/docs/intro/use-cases.html.markdown). And because Serf is completely decentralized, fault tolerant, self-healing, etc. it is a dream tool for system administrators and built specifically @@ -19,7 +19,7 @@ for modern, elastic infrastructures. As a next step, the following resources are available: -* [Documentation](/docs/index.html) - The documentation is an in-depth reference +* [Documentation](/docs/index.html.markdown) - The documentation is an in-depth reference guide to all the features of Serf, including technical details about the internals of how Serf operates. diff --git a/docs/intro/getting-started/queries.html.markdown b/docs/intro/getting-started/queries.html.markdown index f8b083f4b..cdf8486f8 100644 --- a/docs/intro/getting-started/queries.html.markdown +++ b/docs/intro/getting-started/queries.html.markdown @@ -44,7 +44,7 @@ the current load average of the machine. Serf agents must be configured to handle queries before they will respond to them. See the "Specifying Event Handlers" section in the -[Event Handlers documentation](/docs/agent/event-handlers.html) for +[Event Handlers documentation](/docs/agent/event-handlers.html.markdown) for examples of the configuration format. ## Query Payloads diff --git a/docs/intro/getting-started/user-events.html.markdown b/docs/intro/getting-started/user-events.html.markdown index d5aea2a5e..f31a66f08 100644 --- a/docs/intro/getting-started/user-events.html.markdown +++ b/docs/intro/getting-started/user-events.html.markdown @@ -68,7 +68,7 @@ Custom events come with some trade-offs, however: * Events are eventually consistent: Because events are delivered over gossip, the messages _eventually_ arrive at every node. In theory (and anecdotally in practice), the state of the cluster - [converges rapidly](/docs/internals/simulator.html). + [converges rapidly](/docs/internals/simulator.html.markdown). * Payload size is limited: Serf gossips via UDP, so the payload must fit within a single UDP packet (alongside any other data Serf sends). This diff --git a/docs/intro/index.html.markdown b/docs/intro/index.html.markdown index 9e5ca80d9..bea8e6d4e 100644 --- a/docs/intro/index.html.markdown +++ b/docs/intro/index.html.markdown @@ -11,7 +11,7 @@ description: |- Welcome to the intro guide to Serf! This guide will show you what Serf is, explain the problems Serf solves, compare Serf versus other similar software, and show how easy it is to actually use Serf. If you're already familiar -with the basics of Serf, the [documentation](/docs/index.html) provides more +with the basics of Serf, the [documentation](/docs/index.html.markdown) provides more of a reference for all available features. ## What is Serf? @@ -22,7 +22,7 @@ highly available. Serf runs on every major platform: Linux, Mac OS X, and Window extremely lightweight: it uses 5 to 10 MB of resident memory and primarily communicates using infrequent UDP messages. -Serf uses an efficient [gossip protocol](/docs/internals/gossip.html) +Serf uses an efficient [gossip protocol](/docs/internals/gossip.html.markdown) to solve three major problems: * **Membership**: Serf maintains cluster membership lists and is able to @@ -42,9 +42,9 @@ to solve three major problems: deliver messages in the face of offline nodes or network partitions. Queries provide a simple realtime request/response mechanism. -See the [use cases page](/intro/use-cases.html) for a list of concrete use +See the [use cases page](/docs/intro/use-cases.html.markdown) for a list of concrete use cases built on top of the features Serf provides. See the page on -[how Serf compares to other software](/intro/vs-other-sw.html) to see just +[how Serf compares to other software](/docs/intro/vs-other-sw.html.markdown) to see just how it fits into your existing infrastructure. Or continue onwards with -the [getting started guide](/intro/getting-started/install.html) to get +the [getting started guide](/docs/intro/getting-started/install.html.markdown) to get Serf up and running and see how it works. diff --git a/docs/intro/use-cases.html.markdown b/docs/intro/use-cases.html.markdown index f7001a18e..3b1eabdce 100644 --- a/docs/intro/use-cases.html.markdown +++ b/docs/intro/use-cases.html.markdown @@ -8,7 +8,7 @@ description: |- # Use Cases -At this point you should know [what Serf is](/intro/index.html) and +At this point you should know [what Serf is](/docs/intro/index.html.markdown) and the high-level features Serf provides. This page lists a handful of concrete use cases of Serf. Note that this list is not exhaustive by any means. Serf is a general purpose tool and has infinitely many more diff --git a/docs/intro/vs-consul.html.markdown b/docs/intro/vs-consul.html.markdown index 259e9f127..a5def1ae9 100644 --- a/docs/intro/vs-consul.html.markdown +++ b/docs/intro/vs-consul.html.markdown @@ -37,7 +37,7 @@ Catalog, while Serf is only eventually consistent. In addition to the service level abstraction and improved health checking, Consul provides a key/value store and support for multiple datacenters. Serf can run across the WAN but with degraded performance. Consul makes use -of [multiple gossip pools](https://www.consul.io/docs/internals/architecture.html), +of [multiple gossip pools](https://www.consul.io/docs/internals/architecture.html.markdown), so that the performance of Serf over a LAN can be retained while still using it over a WAN for linking together multiple datacenters. diff --git a/docs/recipes.html.markdown b/docs/recipes.html.markdown index c63807272..48d89b300 100644 --- a/docs/recipes.html.markdown +++ b/docs/recipes.html.markdown @@ -17,8 +17,8 @@ request. --- -* [Event handler router](/docs/recipes/event-handler-router.html) - Provides +* [Event handler router](/docs/recipes/event-handler-router.html.markdown) - Provides dynamic event handler configuration using a simple shell script. -* [Get agent uptime](/docs/recipes/agent-uptime.html) - Expose the elapsed time +* [Get agent uptime](/docs/recipes/agent-uptime.html.markdown) - Expose the elapsed time since startup of a Serf agent. diff --git a/docs/recipes/event-handler-router.html.markdown b/docs/recipes/event-handler-router.html.markdown index 5ea6a5511..f62ee7b00 100644 --- a/docs/recipes/event-handler-router.html.markdown +++ b/docs/recipes/event-handler-router.html.markdown @@ -9,7 +9,7 @@ description: |- # Recipe: Event handler router Typically you must configure a handler for each type of event you expect to -encounter (more about events and handlers [here](/docs/agent/event-handlers.html)). +encounter (more about events and handlers [here](/docs/agent/event-handlers.html.markdown)). To change handler configuration, one must update the Serf configuration and reload the agent with a SIGHUP or a restart. diff --git a/docs/upgrading.html.markdown b/docs/upgrading.html.markdown index 33c058ee4..3694d96d7 100644 --- a/docs/upgrading.html.markdown +++ b/docs/upgrading.html.markdown @@ -33,7 +33,7 @@ below, assume you're running version A of Serf, and then version B comes out. You can verify this is the case by running `serf members -detailed` to make sure all members are speaking the same, latest protocol version. -The key to making this work is the [protocol compatibility](/docs/compatibility.html) +The key to making this work is the [protocol compatibility](/docs/compatibility.html.markdown) of Serf. The protocol version system is discussed below. ## Protocol Versions