Telemetry and version checking

Timescale collects anonymous usage data to help us better understand and assist our users. It also helps us provide some services, such as automated version checking. Your privacy is the most important thing to us, so we do not collect any personally identifying information. In particular, the UUID (user ID) fields contain no identifying information, but are randomly generated by appropriately seeded random number generators.

This is an example of the JSON data file that is sent to our servers about a specific deployment:

  1. {
  2. "db_uuid": "860c2be4-59a3-43b5-b895-5d9e0dd44551",
  3. "license": {
  4. "edition": "community"
  5. },
  6. "os_name": "Linux",
  7. "relations": {
  8. "views": {
  9. "num_relations": 0
  10. },
  11. "tables": {
  12. "heap_size": 32768,
  13. "toast_size": 16384,
  14. "indexes_size": 98304,
  15. "num_relations": 4,
  16. "num_reltuples": 12
  17. },
  18. "hypertables": {
  19. "heap_size": 3522560,
  20. "toast_size": 23379968,
  21. "compression": {
  22. "compressed_heap_size": 3522560,
  23. "compressed_row_count": 4392,
  24. "compressed_toast_size": 20365312,
  25. "num_compressed_chunks": 366,
  26. "uncompressed_heap_size": 41951232,
  27. "uncompressed_row_count": 421368,
  28. "compressed_indexes_size": 11993088,
  29. "uncompressed_toast_size": 2998272,
  30. "uncompressed_indexes_size": 42696704,
  31. "num_compressed_hypertables": 1
  32. },
  33. "indexes_size": 18022400,
  34. "num_children": 366,
  35. "num_relations": 2,
  36. "num_reltuples": 421368
  37. },
  38. "materialized_views": {
  39. "heap_size": 0,
  40. "toast_size": 0,
  41. "indexes_size": 0,
  42. "num_relations": 0,
  43. "num_reltuples": 0
  44. },
  45. "partitioned_tables": {
  46. "heap_size": 0,
  47. "toast_size": 0,
  48. "indexes_size": 0,
  49. "num_children": 0,
  50. "num_relations": 0,
  51. "num_reltuples": 0
  52. },
  53. "continuous_aggregates": {
  54. "heap_size": 122404864,
  55. "toast_size": 6225920,
  56. "compression": {
  57. "compressed_heap_size": 0,
  58. "compressed_row_count": 0,
  59. "num_compressed_caggs": 0,
  60. "compressed_toast_size": 0,
  61. "num_compressed_chunks": 0,
  62. "uncompressed_heap_size": 0,
  63. "uncompressed_row_count": 0,
  64. "compressed_indexes_size": 0,
  65. "uncompressed_toast_size": 0,
  66. "uncompressed_indexes_size": 0
  67. },
  68. "indexes_size": 165044224,
  69. "num_children": 760,
  70. "num_relations": 24,
  71. "num_reltuples": 914704,
  72. "num_caggs_on_distributed_hypertables": 0,
  73. "num_caggs_using_real_time_aggregation": 24
  74. },
  75. "distributed_hypertables_data_node": {
  76. "heap_size": 0,
  77. "toast_size": 0,
  78. "compression": {
  79. "compressed_heap_size": 0,
  80. "compressed_row_count": 0,
  81. "compressed_toast_size": 0,
  82. "num_compressed_chunks": 0,
  83. "uncompressed_heap_size": 0,
  84. "uncompressed_row_count": 0,
  85. "compressed_indexes_size": 0,
  86. "uncompressed_toast_size": 0,
  87. "uncompressed_indexes_size": 0,
  88. "num_compressed_hypertables": 0
  89. },
  90. "indexes_size": 0,
  91. "num_children": 0,
  92. "num_relations": 0,
  93. "num_reltuples": 0
  94. },
  95. "distributed_hypertables_access_node": {
  96. "heap_size": 0,
  97. "toast_size": 0,
  98. "compression": {
  99. "compressed_heap_size": 0,
  100. "compressed_row_count": 0,
  101. "compressed_toast_size": 0,
  102. "num_compressed_chunks": 0,
  103. "uncompressed_heap_size": 0,
  104. "uncompressed_row_count": 0,
  105. "compressed_indexes_size": 0,
  106. "uncompressed_toast_size": 0,
  107. "uncompressed_indexes_size": 0,
  108. "num_compressed_hypertables": 0
  109. },
  110. "indexes_size": 0,
  111. "num_children": 0,
  112. "num_relations": 0,
  113. "num_reltuples": 0,
  114. "num_replica_chunks": 0,
  115. "num_replicated_distributed_hypertables": 0
  116. }
  117. },
  118. "os_release": "5.10.47-linuxkit",
  119. "os_version": "#1 SMP Sat Jul 3 21:51:47 UTC 2021",
  120. "data_volume": 381903727,
  121. "db_metadata": {},
  122. "build_os_name": "Linux",
  123. "install_method": "docker",
  124. "installed_time": "2022-02-17T19:55:14+00",
  125. "os_name_pretty": "Alpine Linux v3.15",
  126. "last_tuned_time": "2022-02-17T19:55:14Z",
  127. "build_os_version": "5.11.0-1028-azure",
  128. "exported_db_uuid": "5730161f-0d18-42fb-a800-45df33494c21",
  129. "telemetry_version": 2,
  130. "build_architecture": "x86_64",
  131. "distributed_member": "none",
  132. "last_tuned_version": "0.12.0",
  133. "postgresql_version": "12.10",
  134. "related_extensions": {
  135. "postgis": false,
  136. "promscale": false,
  137. "pg_prometheus": false,
  138. "timescale_analytics": false,
  139. "timescaledb_toolkit": false
  140. },
  141. "timescaledb_version": "2.6.0",
  142. "num_reorder_policies": 0,
  143. "num_retention_policies": 0,
  144. "num_compression_policies": 1,
  145. "num_user_defined_actions": 1,
  146. "build_architecture_bit_size": 64,
  147. "num_continuous_aggs_policies": 24
  148. }

If you want to see the exact JSON data file that is being sent to our servers, you can use the get_telemetry_report API call.

note

Telemetry reports are different if you are using an open source or community version of TimescaleDB. For these versions, the report includes an edition field, with a value of either apache_only or community.

Change what is included the telemetry report

If you want to adjust which metadata is included or excluded from the telemetry report, you can do so in the _timescaledb_catalog.metadata table. Metadata which has include_in_telemetry set to true, and a value of timescaledb_telemetry.cloud, is included in the telemetry report.

Version checking

Telemetry reports are sent periodically in the background. In response to the telemetry report, the database receives the most recent version of TimescaleDB available for installation. This version is recorded in your server logs, along with any applicable out-of-date version warnings. You do not have to update immediately to the newest release, but we highly recommend that you do so, to take advantage of performance improvements and bug fixes.

Disable telemetry

We highly recommend that you leave telemetry enabled, as it helps us to keep improving, and it provides useful functionality for you. However, you can disable telemetry if you need to for any reason. You can disable telemetry for a specific database, or for an entire instance.

important

If you disable telemetry, the version checking functionality is also disabled.

Disabling telemetry

  1. Open your PostgreSQL configuration file, and locate the timescaledb.telemetry_level parameter. See our PostgreSQL configuration file instructions for locating and opening the file.
  2. Change the parameter setting to off:

    1. timescaledb.telemetry_level=off
  3. Reload the configuration file:

    1. pg_ctl
  4. Alternatively, you can use this command at the psql prompt, as the root user:

    1. ALTER [SYSTEM | DATABASE | USER] { *db_name* | *role_specification* } SET timescaledb.telemetry_level=off

    This command disables telemetry for the specified system, database, or user.

Enabling telemetry

  1. Open your PostgreSQL configuration file, and locate the ‘timescaledb.telemetry_level’ parameter. See our PostgreSQL configuration file instructions for locating and opening the file.

  2. Change the parameter setting to ‘off’:

    1. timescaledb.telemetry_level=basic
  3. Reload the configuration file:

    1. pg_ctl
  4. Alternatively, you can use this command at the psql prompt, as the root user:

    1. ALTER [SYSTEM | DATABASE | USER] { *db_name* | *role_specification* } SET timescaledb.telemetry_level=basic

    This command enables telemetry for the specified system, database, or user.