2018-07-16 07:17:19 UTC
In March this year, I requested a repo for an open source telemetry plugin for Qt Creator. Now, the plugin has been implemented and Iâd like to request two repos:
* A repo for a Connected Creator plugin
* A playground repo for a telemetry library
Description: The Qt Company wants to collect usage data from Qt development tools. For that purpose, we have developed a general-purpose telemetry library and a Qt Creator -specific plugin, using the telemetry library. The reason to collect the data from our users is to learn, how developers use Qt Creator and other tools, how usage patterns change, how quickly new features and versions are started to be used, which tools are mostly used? This information is one data source, helping us to make decisions, how to further develop our products. In the short run, we believe we will get valuable information, how to improve the user experience of our products.
The connected creator plugin implements the frontend for tracking the data from different data sources in Qt Creator. The frontend consists of a simple UI to enable/disable the plugin, to set logs expiration period, and to view the data to be transmitted or previously transmitted data (logs). Currently, the plugin tracks Qt Quick Designer usage only: launch count and usage time. General platform data is collected by the telemetry library. This data currently includes compiler details, locale, OpenGL type and version, Qt version, screen details, Qt Creator version, license type (evaluation, commercial, no license), and unique id (generated with QUuid).
All collected data is anonymous. No personal data such as project names, project locations and paths, IP or MAC addresses, email addresses or Qt Account details are collected.
The data is stored in the backend server, owned by The Qt Company. The backend is complexly separated from the telemetry frontend and the code will be provided in The Qt Company private repo: https://github.com/TheQtCompany/qt-telemetry-backend.
The collected data is cached into a settings file before the transmission. This allows the user to check, what data is going to be transmitted and even disable the plugin before any data is actually transmitted. In addition, data caching allows calculating key values in the frontend instead of sending each user event to the server separately. This reduces the network traffic significantly. By default, the cached data is transmitted to the server once per week. It is possible to log the transmitted data into the files to verify all the data transmitted to the server.
The plugin is planned to be completely opt-in. The online installer will ask the user, if he/she wants to install the plugin. There is no default selection for the installation, but user must explicitly choose either to install or not install the plugin. If the user decides to install the plugin, it can be disabled in Qt Creator settings. The user is able to see the cached data and before the first transmission, the user can disable the plugin, even though it has been installed.
More implementation details can be found in Jira ticket: https://bugreports.qt.io/browse/QTCREATORBUG-20250
Connected Creator plugin: https://github.com/akontsevich/ConnectedCreatorPlugin
Telemetry library: https://github.com/akontsevich/QTelemetry
Responsible: Tino Pyssysalo
Connected Creator plugin: qt-cresator/plugin-connectedcreator
Telemetry library: playground/telemetry
The Qt Company
The future is Written with Qt