This application is designed to be plug and play as far as functionality, in back, core, and, front end. As you see it now it is used to monitor a list of domains for both DNS and HTTP resposiveness.
- docker
- docker-compose
TODO kubernetes setup
There are three main components to this application:
- backend
- core
- frontend
There is also two databases with mock data for testing purposes
- mysql
- mongodb
Each of these components have docker-compose files to get you started. Those are located under the /ymls directory
You will need to create a shared docker network in order for each component to work with each other
docker network create shared
After doing so you can add a container to that shared network by adding the following to your docker compose file
### add to each service/container definition
networks:
- shared
### towards the bottom
networks:
shared:
external:
name: shared
TODO primarily need to finish rewriting all of the apis here
schedule_db_synctriggers thequery_dband runs a for each loop againstadd_newquery_dbqueries against the mysql database, gathers and returns a list to the scheduleradd_newadds a new entry into mongodb
schedule_db_checktriggerscheck_dbwhich returns any diffs in mysql and mongodb and forwards those diffs todelete_oldto remove themcheck_dbcross compares against data in mysql and mongodb and if it finds the domain has been removed from mysql returns the domain to the schedulerdelete_oldremoves old/decomm domains from mongodb
schedule_healthcheck_synctriggersendpointto fetch the current list of domains, which the scheduler than iterates over tohttpanddnsendpointqueries for the current list of data in mongodb and returns it to the schedulerhttpchecks the domain for its current http status code. If it's in a failed state it logs and reports on the errordnschecks the domain for its current dns resolution state. If it's in a failed state it logs and reports on the error
flask_webis the front end dashboard that feeds off thestatuscollection in mongodb
