# PeerTube collector peertube-collector is a project designed to collect and analyze WebRTC statistics from a Chromium browser and export them to a Prometheus PushGateway service. This project includes a Docker setup for running the necessary services. ## Working Project Structure ``` peertube-collector/ ├── requirements.txt ├── telegraf.conf ├── docker-compose.yml ├── Dockerfile ├── main.py ├── .env └── utils/ └── webrtc-internals-exporter/ ``` ## Prerequisites - Docker - Docker Compose ## Setup 1. Clone the repository: ```sh git clone cd peertube-collector ``` 2. Create and configure the environment file based on the `.env.example` file: ```sh cp .env.example .env ``` 3. Build and start the Docker containers: ```sh docker-compose up --build ``` ## Components ### Docker Compose The `docker-compose.yml` file defines the following services: - **selenium**: Runs a Selenium standalone Chromium container. - **telegraf**: Collects and sends metrics to the specified output. - **collector**: Runs the main Python application to collect WebRTC stats. ### Dockerfile The `Dockerfile` sets up the Python environment and installs the necessary dependencies to run the `main.py` script. ### Main Python Script The `main.py` script sets up the Selenium WebDriver, collects WebRTC stats, and sends them to the Telegraf service. ### WebRTC Internals Exporter The `webrtc-internals-exporter` directory contains a Chromium extension that collects WebRTC stats from the browser.