Data Sharing
Collecting and analyzing feature usage statistics helps us greatly in RubyMine development. We use insights about the most and least used features and technologies, as well as track performance improvements to prioritize the features that our users need the most.
We value the information shared with us and treat it with care, ensuring that no personal or sensitive data is recorded.
Configure data sharing
Select the Send usage statistics checkbox to allow JetBrains to collect anonymous statistics on the features and actions that you use when working with RubyMine.
Select the Send usage statistics when using EAP versions checkbox to allow JetBrains to collect statistics on the features and actions that you use when working with RubyMine.
Data collection by plugins
Third-party plugins installed from JetBrains Marketplace may implement usage data collection independently on their side, and RubyMine settings do not control such data collection. Refer to the plugin author’s page or documentation to learn more about specifics.
Categories of collected data
This section outlines specific examples of the data that JetBrains collects with your explicit consent. This is not a comprehensive list, but rather a snapshot of some important data points we track to refine our products and better serve our users.
- Installed libraries and plugins
We may record the installation of commonly used plugins such as Markdown, as well as popular libraries and frameworks like OpenAPI, and others.
However, we don’t collect information on the usage of custom libraries and plugins with a limited number of users.
- File extensions and project size
Information on file extensions helps us identify the programming languages used in projects, while the approximate number of files in the project directories gives us insight into the project scale and helps us with the IDE performance analysis.
We do not collect any information related to your code or custom input, such as written code, search inputs, or queries. Therefore, your confidentiality remains intact.
- Feature usage
Usage metrics include time spent within RubyMine, interactions with IDE windows, version control software, and invocation of features such as code completion or search. Additionally, all interactions are logged as a sequence of events. We use this data to understand better our products’ usage patterns and the behaviors of our collective audience.
- Operating system, IDE, and project settings
We may collect information on IDE and project settings.
- Product performance metrics
In efforts to improve product performance and accessibility, we record various durations, including application startup, indexing, build, and run configuration execution times.
View recorded events
When data sharing is enabled, events are logged to a local file, which you can view from the RubyMine system directory by the following paths:
- Syntax
%LOCALAPPDATA%\JetBrains\<product><version>\event-log-data\logs\FUS
- Example
C:\Users\JohnS\AppData\Local\JetBrains\RubyMine2024.2\event-log-data\logs\FUS
- Syntax
~/Library/Caches/JetBrains/<product><version>/event-log-data/logs/FUS
- Example
~/Library/Caches/JetBrains/RubyMine2024.2/event-log-data/logs/FUS
- Syntax
~/.cache/JetBrains/<product><version>/event-log-data/logs/FUS
- Example
~/.cache/JetBrains/RubyMine2024.2/event-log-data/logs/FUS
If you do not see the event-log-data or event-log directories, enable data sharing again and restart the IDE.
Data protection laws compliance
In our approach to data handling, we prioritize anonymity and compliance with data protection laws. We strictly separate product usage data and personal information associated with your name and JetBrains account. All data collected for feature usage statistics is anonymized, with no personal or sensitive data recorded.
Given our adherence to these principles, the General Data Protection Regulation (GDPR) does not apply to feature usage statistics. However, in alignment with the ePrivacy directive, we ask for the user’s consent for data collection, even when the information collected is anonymized.
Furthermore, our data handling procedures are performed per the JetBrains Privacy Policy, and all data is stored and processed on servers within the EU. Our commitment to privacy extends to all users, regardless of their geographic location.
Here are the key practices we employ to ensure the anonymity of user data:
- Minimized data collection
We meticulously define product metrics before implementation, minimizing the scope of data collection. Any new data collection initiatives undergo a thorough review and chain of approvals.
- Structured data recording
Our data recording follows a schema-based approach, ensuring that each piece of information is recorded according to a predefined structure. Custom values, such as code strings or search inputs, are not recorded to maintain anonymity.
- Data aggregation techniques
We use several techniques to aggregate data to preserve anonymity:
Precise values are rounded (for example, the number of files in a project) to avoid potential de-anonymization through open code bases.
An allowlist with predefined value sets is maintained to prevent reporting custom plugin or library names.
Predefined schemas are strictly enforced to validate reported data before recording.
- Anonymous user identifiers
User identifiers are generated through random IDs and additionally hashed and salted to maintain anonymity.
- Handling invalid data
We set placeholders for any reported data that cannot be recorded due to validation rules and practices.
- Continuous process improvements
Our processes undergo continuous refinement through testing and code reviews to verify the purpose and ensure the anonymity of each data collection.