Anonymous Analytics
This document describes the aggregated, anonymous data Liquibase collects and how it's used. Liquibase does not collect personally identifiable information (PII). Liquibase does not provide or sell any data to third parties.
In Liquibase 4.30.0 and later, analytics are enabled by default for Liquibase Open Source users and disabled by default for Liquibase Pro users. You can opt in or out at any time.
Liquibase only collects data when a command is run, so you can enable or disable the feature before running any commands.
Why collect analytics?
Gathering anonymous usage analytics allows us to better understand how Liquibase is actually being used by a diverse set of millions of users. This data helps our small team help our users better by providing insight into things like:
- Which commands are the most used: if some commands are never used it might mean we need to reconsider that command’s purpose, provide more resources to help increase usage, or even remove the command entirely.
- Which commands result in the most failures: knowing this helps us identify gaps in documentation or the product itself.
- Which database platforms are the most used with Liquibase: this information helps us identify where we should focus our efforts to maximize benefit for our users.
- Which versions of Java are our users on: this helps us as we consider updating Java versions in core and many extensions.
- Which versions of Liquibase are users on: this helps us understand if users are updating regularly or where we might help with updates.
What information do we collect?
If analytics are enabled, Liquibase records the following information when a command is run:
- Command-specific data like command name, if the command succeeded or failed, and exception data if there is a failure
- Liquibase data including version and interface that it’s being run in
- Database platform including version
- Changelog formats and number of changelogs run
- Extension information like which extensions are being used and what version
- Liquibase Pro feature information like which features are enabled
- Operating system information like type of OS, version, and architecture
Liquibase does not gather any personally identifiable information. This data is all aggregated and anonymous.
To see a log of analytics data collected when you run a command, set both --log-level
and --analytics-log-level
to FINE
. There is a JSON object at the end of the output containing the analytics for the command.
Do analytics affect Liquibase performance?
Analytics do not significantly affect Liquibase performance. Enabling or disabling analytics does not change your experience of Liquibase.
Liquibase processes analytics after running a command. Liquibase waits a maximum of 1.5 seconds for analytics to finish processing after running a command, although analytics are typically processed more quickly. If Liquibase cannot process analytics data within 1.5 seconds, it continues with the operation.
Opt out
If you do not want to participate in Liquibase anonymous analytics, you can opt out at any time using the --analytics-enabled
parameter.
- Opt out per CLI command: specify the parameter
--analytics-enabled=false
. This turns off analytics gathering for that single occurrence of a command. For example:
liquibase --analytics-enabled=false status
liquibase.analytics.enabled: false
to your defaults file or use the environment variable LIQUIBASE_ANALYTICS_ENABLED=false
.Opt in
If you are a Liquibase Pro user or someone that previously disabled Liquibase anonymous analytics, you can opt in at any time using the --analytics-enabled
parameter.
- Opt out per CLI command: specify the parameter
--analytics-enabled=true
. This turns on analytics gathering for that single occurrence of a command. For example:
liquibase --analytics-enabled=true status
liquibase.analytics.enabled: true
to your defaults file or use the environment variable LIQUIBASE_ANALYTICS_ENABLED=true
.