aboutsummaryrefslogtreecommitdiff

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.