Using TimescaleDB
Telemetry and Version Checking
We enable anonymous usage sharing to help us better understand and assist TimescaleDB users, as well as provide automated version checks. We emphasize that privacy of our users is paramount, so we do not collect any personally-identifying information. The following is an example of the JSON that is sent to our servers about a specific deployment:
{
"db_uuid": "26917841-2fc0-48fd-b096-ba19b3fda98f",
"license": {
"edition": "community"
},
"exported_db_uuid": "8dd4543c-f44e-43c9-a666-02d23bb09b90",
"installed_time": "2000-04-17 10:56:59.427738-04",
"last_tuned_time": "2001-02-03T04:05:06-0300",
"last_tuned_version": "1.0.0",
"install_method": "source",
"os_name": "Linux",
"os_release": "4.9.125-linuxkit",
"os_version": "#1 SMP Fri Sep 7 08:20:28 UTC 2018",
"os_name_pretty": "Debian GNU/Linux 8 (jessie)",
"postgresql_version": "10.4",
"timescaledb_version": "0.12.0",
"build_architecture": "x86_64",
"build_architecture_bit_size": "64",
"build_os_name": "Linux",
"build_os_version": "4.9.125-linuxkit",
"data_volume": "65982148",
"db_metadata":
{
},
"num_hypertables": "3",
"num_continuous_aggs": "0",
"num_reorder_policies": "1",
"num_drop_chunks_policies": "2",
"related_extensions":
{
"pg_prometheus": "false",
"PostGIS": "true"
}
}
In particular, the UUID
fields contain no identifying information. Both UUID
fields are either randomly generated by appropriately seeded random number generators. For full transparency, we expose a new API function, get_telemetry_report
, that returns a text string of the exact JSON that is sent to our servers.
Additionally any content of the table _timescaledb_catalog.metadata
which has include_in_telemetry
set to true
and the value of timescaledb_telemetry.cloud
will be included in the telemetry report.
Notably, telemetry reports a different set of values depending on the license that your TimescaleDB instance is running under. If you are using OSS or Community, we only send an “edition” field, which could have a value of either “apache_only” or “community”, as relevant.
If you are using an Enterprise license, we report a few more relevant items, a sample of which is below.
"license": {
"id": "490FB260-A292-4AD9-9AA2-0360835791B8",
"kind": "trial",
"edition": "enterprise",
"end_time": "2018-09-30 20:00:00-04",
"start_time": "2018-08-31 20:00:00-04"
}
Version Checking
The database sends telemetry reports periodically in the background. In response to the telemetry report, the database will receive the most recent version of TimescaleDB available for installation. This version will be recorded in the user’s server logs, along with any applicable out-of-date version warnings. While you do not have to update immediately to the newest release, many users have reported that performance issues or bugs automatically resolve after updating their version of TimescaleDB.
Disabling Telemetry
Although we invite our community to help us keep improving our product, we do understand when users would like to disable telemetry. Note that disabling telemetry also disables the version checking functionality.
Telemetry is sent on a per-database basis, so users can disable telemetry for specific databases or for an entire instance.
To turn off telemetry for an instance, simply include the following line in your postgresql.conf
file:
timescaledb.telemetry_level=off
Alternatively, in a psql
console, run:
ALTER [SYSTEM | DATABASE | USER] { *db_name* | *role_specification* } SET timescaledb.telemetry_level=off
If ALTER DATABASE
is run, then this will disable telemetry for the specified database, but not for other databases in the instance. If ALTER SYSTEM
is run, this will disable telemetry for the entire instance. Note that superuser privileges are necessary to run ALTER SYSTEM
.
After running the desired command, reload the new server configuration in order for the configuration changes to take effect.
If at a later time you wish to re-enable version checking and telemetry, either include the following line in postgresql.conf
:
timescaledb.telemetry_level=basic
or run the following command in psql:
ALTER [SYSTEM | DATABASE | USER] { *db_name* | *role_specification* } SET timescaledb.telemetry_level=basic