You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+126-53
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,59 @@ The aim of this bosh release is to deploy a go-graphite cluster consisting of th
6
6
*[go-carbon](https://github.com/lomik/go-carbon) sever to storage metrics
7
7
*[carbonzipper](https://github.com/dgryski/carbonzipper) to transparently merge graphite carbon backends
8
8
*[carbonapi](https://github.com/dgryski/carbonapi) to provide the graphite API
9
+
*[buckytools](https://github.com/jjneely/buckytools) to provide a management layer on top of go-carbon
9
10
11
+
## Requirements
12
+
We structured the release around the conceps of availability zones and clusters. One of the properties required by the `carbon-c-relay` job
13
+
gives you a way of configuring the architecture of your `go-graphite` metrics deployment.
14
+
`go-carbon` instances are assigned automatically to a specific cluster based on the `az` value of their vm instance. This is achieved by taking advantage of [bosh links](https://bosh.io/docs/links.html).
15
+
16
+
Let's discuss this idea more in details:
17
+
```
18
+
properties:
19
+
carbon-c-relay:
20
+
clusters:
21
+
- name: "cluster1"
22
+
lb: "jump_fnv1a_ch"
23
+
replication: 1
24
+
azs: ["z1"]
25
+
- name: "cluster2"
26
+
lb: "jump_fnv1a_ch"
27
+
replication: 1
28
+
azs: ["z2"]
29
+
```
30
+
`clusters` is a list of dictionaries, each representing a carbon-c-relay cluster. The cluster instances are grouped by availability zone.
31
+
32
+
One cluster can be deployed across several `az`s, like in the following example:
33
+
```
34
+
properties:
35
+
carbon-c-relay:
36
+
clusters:
37
+
- name: "cluster1"
38
+
lb: "jump_fnv1a_ch"
39
+
replication: 1
40
+
azs: ["z1", "z2"] #<- A cluster can use as many azs as we'd like
41
+
```
42
+
43
+
however you cannot define different clusters using the same availability zone. For example this is not allowed, and a validation error is going to be raised at deployment time. Because of this limitation it is also impossible to define more `carbon-c-relay` clusters than the number of configured azs.
44
+
So in a typical 3 azs architecture you can create maximum 3 different clusters each of them deployed to a different az.
45
+
46
+
###Example of erroneous configuration
47
+
```
48
+
properties:
49
+
carbon-c-relay:
50
+
clusters:
51
+
- name: "cluster1"
52
+
lb: "jump_fnv1a_ch"
53
+
replication: 1
54
+
azs: ["z1", "z2"]
55
+
- name: "cluster2"
56
+
lb: "jump_fnv1a_ch"
57
+
replication: 1
58
+
azs: ["z2", "z3"] #<- Error: "z2 is already used by cluster `cluster1`"
59
+
```
60
+
61
+
You need to deploy at least **#azs * 2**`go-carbon` instances. This is due to a limitation in the current implementation of `buckytools` which does not support clusters formed by a single instance.
10
62
11
63
## Usage
12
64
@@ -15,71 +67,110 @@ section, or using the `yml` file in the `releases` folder.
15
67
16
68
This release makes use of [Bosh links](https://bosh.io/docs/links.html) between
17
69
instance groups in order to setup automatically the carbon relays and the carbonzippers
18
-
(for carbon API). This an example of V2 manifest:
70
+
(for carbon API). This an example of V2 manifest (for google cloud):
0 commit comments