From 651151bce6be01a5cef0e8eb400e0a028b93d887 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Thu, 13 Feb 2020 06:02:52 +0000 Subject: Initial import --- README.rst | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.rst (limited to 'README.rst') diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..ff27969 --- /dev/null +++ b/README.rst @@ -0,0 +1,57 @@ +========================================= +Seattle Internet Exchange Status Reporter +========================================= + +This code is licensed under the GPL version 2.0 only. The code is maintained at +`code.crute.me `_ and +mirrored to `GitHub `_. + +This is a server and library for parsing and reporting on the status of a +participant at the `Seattle Internet Exchange `_. The +server provides a Prometheus endpoint reporting the stats of a participant's +ASN on the exchange. The stats are gathered from the `participant data`_ +exported by the exchange operators. + +The library can be used to process the SIX participants feed as well as to +fetch and parse additional data that is exported by the SIX route servers. It's +mainly useful for generating reports in the case of errors or building +monitoring infrastructure around SIX data. + +Installing +========== +The default ``make`` target will create the correct binary. You can also build +using regular ``go build``, look at the ``Makefile`` for more details. + +:: + + make + ./six_status_exporter YOUR-ASN + +By default the server will run on port ``9119`` and export a Prometheus metrics +endpoint at ``/metrics``. + +Library +======= +The main models are located in `six/participant.go`_ and contain the important +details about the library. To generate the models from the SIX CSV consume the +``ParseSIXCSV`` and ``FetchParseSIXCSV`` which take a ``io.Reader`` and no +arguments, respectively. Those functions are defined in `six/feed_parser.go`_. + +Contributing +============ +The authors welcome and appreciate contributions. To contribute please open a +pull request on the GitHub page linked above, or email a patch in ``git am`` +format to the author. To have the best contribution experience, please: + +* Don't break backwards compatibility of public interfaces +* Write tests for your new feature/bug fix (run ``make test``) +* Ensure that existing tests pass +* Update the readme/documentation, if necessary +* Ensure your code follows ``go fmt`` standards + +All code is reviewed before acceptance and changes may be requested to better +follow the conventions of the existing API. + +.. _six/participant.go: https://code.crute.me/pomonaconsulting/six_monitoring/tree/six/participant.go +.. _six/feed_parser.go: https://code.crute.me/pomonaconsulting/six_monitoring/tree/six/feed_parser.go +.. _participant data: https://www.seattleix.net/participants/> -- cgit v1.2.3