Feedback Plugin

The feedback plugin is designed to collect and, optionally, upload configuration and usage information to MariaDB.org or to any other configured URL.

See the MariaDB User Feedback page on MariaDB.org to see collected MariaDB usage statistics.

The feedback plugin exists in all MariaDB versions.

MariaDB is distributed with this plugin included, but it is not enabled by default. On Windows, this plugin is part of the server and has a special checkbox in the installer window. Either way, you need to explicitly install and enable it in order for feedback data to be sent.

Installing the Plugin

Although the plugin's shared library is distributed with MariaDB by default, the plugin is not actually installed by MariaDB by default. There are two methods that can be used to install the plugin with MariaDB.

The first method can be used to install the plugin without restarting the server. You can install the plugin dynamically by executing INSTALL SONAME or INSTALL PLUGIN. For example:

INSTALL SONAME 'feedback';

The second method can be used to tell the server to load the plugin when it starts up. The plugin can be installed this way by providing the --plugin-load or the --plugin-load-add options. This can be specified as a command-line argument to mysqld or it can be specified in a relevant server option group in an option file. For example:

[mariadb]
...
plugin_load_add = feedback

Uninstalling the Plugin

You can uninstall the plugin dynamically by executing UNINSTALL SONAME or UNINSTALL PLUGIN. For example:

UNINSTALL SONAME 'feedback';

If you installed the plugin by providing the --plugin-load or the --plugin-load-add options in a relevant server option group in an option file, then those options should be removed to prevent the plugin from being loaded the next time the server is restarted.

Enabling the Plugin

Set the feedback=ON system variable in a relevant server option group in an option file to enable the plugin.

In Windows, the plugin can also be enabled during a new MSI installation. The MSI GUI installation provides the "Enable feedback plugin" checkbox to enable the plugin. The MSI command-line installation provides the FEEDBACK=1 command-line option to enable the plugin.

See the next section for how to verify the plugin is installed and active and (if needed) install the plugin.

Verifying the Plugin's Status

To verify whether the feedback plugin is installed and enabled, execute the SHOW PLUGINS statement or query the information_schema.plugins table. For example:

SELECT plugin_status FROM information_schema.plugins 
  WHERE plugin_name = 'feedback';

If that SELECT returns no rows, then you still need to install the plugin.

When the plugin is installed and enabled, you will see:

SELECT plugin_status FROM information_schema.plugins 
  WHERE plugin_name = 'feedback';
+---------------+
| plugin_status |
+---------------+
| ACTIVE        |
+---------------+

If you see DISABLED instead of ACTIVE, then you still need to enable the plugin.

Collecting Data

The feedback plugin will collect:

  • Certain rows from SHOW STATUS and SHOW VARIABLES.
  • All installed plugins and their versions.
  • System information such as CPU count, memory, architecture, and OS/linux distribution.
  • The feedback_server_uid, which is a SHA1 hash of the MAC address of the first network interface and the TCP port that the server listens on.

The feedback plugin creates the FEEDBACK table in the INFORMATION_SCHEMA database. To see the data that has been collected by the plugin, you can execute:

SELECT * FROM information_schema.feedback;

Only the contents of this table are sent to the feedback_url.

MariaDB starting with 10.0.14

MariaDB 10.0.14 added collation usage statistics. Each collation that has been used by the server will have a record in "SELECT * FROM information_schema.feedback" output, for example:

+----------------------------------------+---------------------+
| VARIABLE_NAME                          | VARIABLE_VALUE      |
+----------------------------------------+---------------------+
| Collation used utf8_unicode_ci         | 10                  |
| Collation used latin1_general_ci       | 20                  |
+----------------------------------------+---------------------+

Collations that have not been used will not be included into the result.

Sending Data

The feedback plugin sends the data using a POST request to any URL or a list of URLs that you specify by setting the feedback_url system variable. By default, this is set to the following URL:

Both HTTP and HTTPS protocols are supported.

If HTTP traffic requires a proxy in your environment, then you can specify the proxy by setting the feedback_http_proxy system variable.

If the feedback_url system variable is not set to an empty string, then the plugin will automatically send a report to all URLs in the list a few minutes after the server starts up and then once a week after that.

If the feedback_url system variable is set to an empty string, then the plugin will not automatically send any data. This may be necessary if outbound HTTP communication from your database server is not permitted. In this case, you can still upload the data manually, if you'd like.

First, generate the report file with the MariaDB command-line mysql client:

$ mysql -e 'select * from information_schema.feedback' > report.txt

Then you can upload the generated report.txt here using your web browser.

Or you can do it from the command line with tools such as curl. For example:

$ curl -F data=@report.txt https://mariadb.org/feedback_plugin/post

Manual uploading allows you to be absolutely sure that we receive only the data shown in the INFORMATION_SCHEMA.FEEDBACK table and that no private or sensitive information is being sent.

Versions

VersionStatusIntroduced
1.1StableMariaDB 10.0.10
1.1BetaMariaDB 5.5.20, MariaDB 5.3.3

System Variables

feedback

  • Description: Enable (ON) or disable (OFF) the Feedback plugin. Not available as a system variable that can be set dynamically. FORCE means that the plugin must be successfully loaded, or else the server won't start.
  • Commandline: --feedback=value
  • Valid Values: ON, OFF or FORCE

feedback_http_proxy

  • Description: Proxy server for use when http calls cannot be made, such as in a firewall environment. The format is host:port.
  • Commandline: --feedback-http=proxy=value
  • Read-only: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.48, MariaDB 10.1.8

feedback_send_retry_wait

  • Description: Time in seconds before retrying if the plugin failed to send the data for any reason.
  • Commandline: --feedback-send-retry-wait=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 60
  • Valid Values: 1 to 86400

feedback_send_timeout

  • Description: An attempt to send the data times out and fails after this many seconds.
  • Commandline: --feedback-send-timeout=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 60
  • Valid Values: 1 to 86400

feedback_server_uid

  • Description: Automatically calculated server unique id hash.
  • Scope: Global
  • Dynamic: No
  • Data Type: string

feedback_url

  • Description: URL to which the data is sent. More than one URL, separated by spaces, can be specified. Set it to an empty string to disable data sending.
  • Commandline: --feedback-url=url
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Default Value: https://mariadb.org/feedback_plugin/post

feedback_user_info

  • Description: The value of this option is not used by the plugin, but it is included in the feedback data. It can be used to add any user-specified string to the report. This could be used to help to identify it. For example, a support contract number, or a computer name (if you collect reports internally by specifying your own feedback-url).
  • Commandline: --feedback-user-info=string
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Default Value: Empty string

Comments

Comments loading...