MDD provides us with a secure way to receive anonymized data about the usage of Manjaro. This way we can learn how Manjaro is used by our users and we can focus our efforts on what matters most in order to improve the user experience.
The data is anonym in two ways:
- We only collect impersonal information about the hardware and the environment. In particular we don't store IP addresses.
- To differentiate systems we need a unique identifer. For that we use
/etc/machine-id
, what is hashed before being sent.
The data is being stored in a database on one of our Hetzner servers. Visualizations of the data are made available via Grafana here. We plan on adding more charts for interesting data later on.
- Install package dependencies:
sudo pacman -S git python-pip inxi
- Clone this repo to your computer and navigate to the project directory:
git clone https://github.com/manjaro/mdd cd mdd
- Create a virtual environment (recommended) to manage dependencies:
python -m venv venv source venv/bin/activate
- Install the dependencies listed in
requirements.txt
:pip install -r requirements.txt
- Run the script:
python mdd.py
- Deactivate the virtual environment when done:
deactivate
Run the script without any arguments to send data directly. The submitted data will be displayed on the terminal. Additionally you can first run
python mdd.py --dry-run
in order to only display the data that would be sent without actually doing so.
By default only a minimal amount of data is being sent for counting Manjaro installs and detecting potential issues with our software distribution. You can opt-in to sending more data though, what helps us to learn more about what our users need and shows nicely on https://metrics.manjaro.org. You can do that from the command line via the force-telemetry flag:
python mdd.py --force-telemetry
You can also combine the flag with the dry-run flag to first learn what would be transmitted.
The log level can be increased from WARNING
to INFO
/DEBUG
with:
python mdd.py --log INFO
By default MDD tries to use inxi for gathering information about the system. For debugging this can be deactivated:
MDD_DISABLE_INXI=1 python mdd.py