aboutsummaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst57
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=========================================
2Seattle Internet Exchange Status Reporter
3=========================================
4
5This 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
7mirrored to `GitHub <https://github.com/pomonaconsulting/six_monitoring>`_.
8
9This is a server and library for parsing and reporting on the status of a
10participant at the `Seattle Internet Exchange <https://seattleix.net>`_. The
11server provides a Prometheus endpoint reporting the stats of a participant's
12ASN on the exchange. The stats are gathered from the `participant data`_
13exported by the exchange operators.
14
15The library can be used to process the SIX participants feed as well as to
16fetch and parse additional data that is exported by the SIX route servers. It's
17mainly useful for generating reports in the case of errors or building
18monitoring infrastructure around SIX data.
19
20Installing
21==========
22The default ``make`` target will create the correct binary. You can also build
23using regular ``go build``, look at the ``Makefile`` for more details.
24
25::
26
27 make
28 ./six_status_exporter YOUR-ASN
29
30By default the server will run on port ``9119`` and export a Prometheus metrics
31endpoint at ``/metrics``.
32
33Library
34=======
35The main models are located in `six/participant.go`_ and contain the important
36details about the library. To generate the models from the SIX CSV consume the
37``ParseSIXCSV`` and ``FetchParseSIXCSV`` which take a ``io.Reader`` and no
38arguments, respectively. Those functions are defined in `six/feed_parser.go`_.
39
40Contributing
41============
42The authors welcome and appreciate contributions. To contribute please open a
43pull request on the GitHub page linked above, or email a patch in ``git am``
44format 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
52All code is reviewed before acceptance and changes may be requested to better
53follow 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/>