diff options
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..ff27969 --- /dev/null +++ b/README.rst | |||
@@ -0,0 +1,57 @@ | |||
1 | ========================================= | ||
2 | Seattle Internet Exchange Status Reporter | ||
3 | ========================================= | ||
4 | |||
5 | This code is licensed under the GPL version 2.0 only. The code is maintained at | ||
6 | `code.crute.me <https://code.crute.me/pomonaconsulting/six_monitoring>`_ and | ||
7 | mirrored to `GitHub <https://github.com/pomonaconsulting/six_monitoring>`_. | ||
8 | |||
9 | This is a server and library for parsing and reporting on the status of a | ||
10 | participant at the `Seattle Internet Exchange <https://seattleix.net>`_. The | ||
11 | server provides a Prometheus endpoint reporting the stats of a participant's | ||
12 | ASN on the exchange. The stats are gathered from the `participant data`_ | ||
13 | exported by the exchange operators. | ||
14 | |||
15 | The library can be used to process the SIX participants feed as well as to | ||
16 | fetch and parse additional data that is exported by the SIX route servers. It's | ||
17 | mainly useful for generating reports in the case of errors or building | ||
18 | monitoring infrastructure around SIX data. | ||
19 | |||
20 | Installing | ||
21 | ========== | ||
22 | The default ``make`` target will create the correct binary. You can also build | ||
23 | using regular ``go build``, look at the ``Makefile`` for more details. | ||
24 | |||
25 | :: | ||
26 | |||
27 | make | ||
28 | ./six_status_exporter YOUR-ASN | ||
29 | |||
30 | By default the server will run on port ``9119`` and export a Prometheus metrics | ||
31 | endpoint at ``/metrics``. | ||
32 | |||
33 | Library | ||
34 | ======= | ||
35 | The main models are located in `six/participant.go`_ and contain the important | ||
36 | details about the library. To generate the models from the SIX CSV consume the | ||
37 | ``ParseSIXCSV`` and ``FetchParseSIXCSV`` which take a ``io.Reader`` and no | ||
38 | arguments, respectively. Those functions are defined in `six/feed_parser.go`_. | ||
39 | |||
40 | Contributing | ||
41 | ============ | ||
42 | The authors welcome and appreciate contributions. To contribute please open a | ||
43 | pull request on the GitHub page linked above, or email a patch in ``git am`` | ||
44 | format to the author. To have the best contribution experience, please: | ||
45 | |||
46 | * Don't break backwards compatibility of public interfaces | ||
47 | * Write tests for your new feature/bug fix (run ``make test``) | ||
48 | * Ensure that existing tests pass | ||
49 | * Update the readme/documentation, if necessary | ||
50 | * Ensure your code follows ``go fmt`` standards | ||
51 | |||
52 | All code is reviewed before acceptance and changes may be requested to better | ||
53 | follow the conventions of the existing API. | ||
54 | |||
55 | .. _six/participant.go: https://code.crute.me/pomonaconsulting/six_monitoring/tree/six/participant.go | ||
56 | .. _six/feed_parser.go: https://code.crute.me/pomonaconsulting/six_monitoring/tree/six/feed_parser.go | ||
57 | .. _participant data: https://www.seattleix.net/participants/> | ||