ToolWatch checks the health status of various Wikimedia tools and displays them in a user-friendly UI. More at: https://phabricator.wikimedia.org/T341379
To update the tool, the following commands need to be run
cd ToolWatch && git pull && ./scripts/toolforge-update.sh- Clone the repository: git clone https://github.com/gopavasanth/ToolWatch
- Navigate to the project directory: cd ToolWatch
- Create a virtual environment: python -m venv venv
- Activate the virtual environment:
- For Windows: venv\Scripts\activate
- For Unix/Linux: source venv/bin/activate
 
- For Windows: 
- Install the dependencies: pip install -r requirements.txt
- 
Before starting the app, you need to start the MariaDB instance on your local device. 
- 
You can install the MariaDB from here, or other sources. 
- 
After installing the MariaDB, you need to create a database with the following credentials: - database name: toolwatch
- username: root
- password: toolwatch
 
- database name: 
- 
These credentials are defined in config.pyfile.
For production, we use Wikimedia Cloud database, and for production purposes we may need to create a .env file, with variables defined.
- Run the database service (MariaDB instance, if running locally).
- Run the Flask app: python app.py
- Open your web browser and visit http://localhost:5000to view the tool health status.
To connect to the production DB instance, use the following command:
ssh -L:3307:tools.db.svc.wikimedia.cloud:3306 [email protected]To backup the database, run:
mariadb-dump --defaults-file=$(pwd)/replica.my.cnf --skip-ssl -h 0.0.0.0 -P 3307 s55491__toolwatch > backup.sql- View job logs:
toolforge jobs logs -f special-restart-crawl- List of jobs:
toolforge jobs listtoolforge webservices restartTo debug the production container in local, run:
docker run -ti -u 0 --entrypoint bash tools-harbor.wmcloud.org/tool-tool-watch/tool-tool-watch:latestAccess the Grafana dashboard https://grafana.wmcloud.org/d/TJuKfnt4z/kubernetes-namespace?orgId=1&var-cluster=prometheus-tools&var-namespace=tool-tool-watch
The directory structure of the project is as follows:
- The databasedirectory contains the SQLite database file.- The templatesdirectory contains HTML templates.
- The model.pyfile defines the Tool model and sets up the database.
 
- The 
- The app.pyfile is the main entry point of the Flask application.
- To add or modify tools, you can edit the tools/models.pyfile and add or update the Tool model attributes.
- For more advanced health checks, you can modify the tools/views.pyfile and implement the logic in thecheck_tool_health()function.
Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.
This project is licensed under the MIT License.