From 7d22a413e5ca18c70f52a3cb0756de1e9a3fc7b7 Mon Sep 17 00:00:00 2001 From: Rafi Shamim Date: Tue, 29 Sep 2026 11:56:00 -0400 Subject: [PATCH] Remove telemetry Previously, the Sequelize and sequelize-cockroachdb versions were recorded with crdb_internal.increment_feature_counter from an afterInit hook, which runs as soon as a Sequelize instance is constructed. That made Sequelize open a connection even if the application never used the instance, and logged a "Could not record telemetry" error when no database was reachable (e.g. in unit tests). The telemetry queries were also logged through the application's logger. Stop sending telemetry since this data is no longer required. The cockroachdbTelemetryDisabled dialect option is still accepted, but no longer has any effect. This also re-enables two Sequelize integration tests that failed because the telemetry queries were logged through the application's logger. Fixes cockroachdb/sequelize-cockroachdb#155. Co-Authored-By: Claude Opus 5.5 --- .../ignore_tests/shared/telemetry.txt | 2 -- source/index.js | 2 -- source/telemetry.js | 31 ------------------- source/version_helper.js | 21 ------------- tests/belongs_to_many_test.js | 1 - tests/dialects_query_test.js | 1 - tests/helper.js | 1 - tests/sequelize_query_test.js | 1 - tests/support.js | 1 - 9 files changed, 61 deletions(-) delete mode 100644 .github/workflows/ignore_tests/shared/telemetry.txt delete mode 100644 source/telemetry.js diff --git a/.github/workflows/ignore_tests/shared/telemetry.txt b/.github/workflows/ignore_tests/shared/telemetry.txt deleted file mode 100644 index 8ad222e..0000000 --- a/.github/workflows/ignore_tests/shared/telemetry.txt +++ /dev/null @@ -1,2 +0,0 @@ -custom logging with benchmarking has correct CLS context -executes a query with global benchmarking option and custom logger diff --git a/source/index.js b/source/index.js index 553b743..38fdc75 100644 --- a/source/index.js +++ b/source/index.js @@ -39,8 +39,6 @@ if (semver.satisfies(sequelizeVersion, '<=4')) { ); } -require('./telemetry.js') - //// [1] Override the `upsert` query method from Sequelize v5 to make it work with CockroachDB if (semver.satisfies(sequelizeVersion, '5.x')) { require('./patch-upsert-v5'); diff --git a/source/telemetry.js b/source/telemetry.js deleted file mode 100644 index 0b1f4ff..0000000 --- a/source/telemetry.js +++ /dev/null @@ -1,31 +0,0 @@ -const { Sequelize, QueryTypes } = require('sequelize'); - -const version_helper = require('./version_helper.js') - -//// Log telemetry for Sequelize ORM. -Sequelize.addHook('afterInit', async (connection) => { - try { - if (connection.options.dialectOptions) { - var telemetryDisabled = connection.options.dialectOptions.cockroachdbTelemetryDisabled - if (telemetryDisabled) { - return - } - } - - // crdb_internal.increment_feature_counter is only available on 21.1 and above. - if (!(await version_helper.IsCockroachVersion21_1Plus(connection))) { - return - } - var sequelizeVersion = version_helper.GetSequelizeVersion() - var sequelizeVersionSeries = version_helper.GetVersionSeries(sequelizeVersion.version) - var sequelizeVersionStr = (sequelizeVersionSeries===null)?sequelizeVersion:sequelizeVersionSeries - await connection.query(`SELECT crdb_internal.increment_feature_counter(concat('Sequelize ', :SequelizeVersionString))`, - { replacements: { SequelizeVersionString: sequelizeVersionStr }, type: QueryTypes.SELECT }) - - var adapterVersion = version_helper.GetAdapterVersion() - await connection.query(`SELECT crdb_internal.increment_feature_counter(concat('sequelize-cockroachdb ', :AdapterVersion))`, - { replacements: { AdapterVersion: adapterVersion.version }, type: QueryTypes.SELECT }) - } catch (error) { - console.info("Could not record telemetry.\n" + error) - } -}); diff --git a/source/version_helper.js b/source/version_helper.js index 4ff7b2a..9163f61 100644 --- a/source/version_helper.js +++ b/source/version_helper.js @@ -1,6 +1,5 @@ const semver = require('semver'); const { version, release } = require('sequelize/package.json'); -const { QueryTypes } = require('sequelize'); module.exports = { GetSequelizeVersion: function() { @@ -11,29 +10,9 @@ module.exports = { // in that case we fallback to a branch version return semver.coerce(version === '0.0.0-development' ? branchVersion : version); }, - GetAdapterVersion: function() { - const pkgVersion = require('../package.json').version; - return semver.coerce(pkgVersion); - }, - IsCockroachVersion21_1Plus: async function(connection) { - const versionRow = await connection.query("SELECT version() AS version", { type: QueryTypes.SELECT }); - const cockroachDBVersion = versionRow[0]["version"] - - return semver.gte(semver.coerce(cockroachDBVersion), "21.1.0") - }, GetCockroachDBVersionFromEnvConfig: function() { const crdbVersion = process.env['CRDB_VERSION'] return semver.coerce(crdbVersion) - }, - GetVersionSeries: function(versionStr) { - // Get the version series from a version string. - // E.g. "6.0.1" is of series "6.0". - const regExp=/(\d+\.\d+)(\.|$)/mg - let match = regExp.exec(versionStr); - if (match === null || match.length < 3) { - return null - } - return match[1] } }; diff --git a/tests/belongs_to_many_test.js b/tests/belongs_to_many_test.js index 2eb407d..8049013 100644 --- a/tests/belongs_to_many_test.js +++ b/tests/belongs_to_many_test.js @@ -37,7 +37,6 @@ var Support = { define: { paranoid: true }, - dialectOptions: {cockroachdbTelemetryDisabled : true}, }); } }; diff --git a/tests/dialects_query_test.js b/tests/dialects_query_test.js index 37b6d07..09ba380 100644 --- a/tests/dialects_query_test.js +++ b/tests/dialects_query_test.js @@ -14,7 +14,6 @@ const Support = { logging: false, typeValidation: true, minifyAliases: options.minifyAliases || false, - dialectOptions: {cockroachdbTelemetryDisabled : true} }); } }; diff --git a/tests/helper.js b/tests/helper.js index 7c1bc96..4461617 100644 --- a/tests/helper.js +++ b/tests/helper.js @@ -64,7 +64,6 @@ function makeTestSequelizeInstance() { port: process.env.COCKROACH_PORT || 26257, logging: false, typeValidation: true, - dialectOptions: {cockroachdbTelemetryDisabled : true}, }); } diff --git a/tests/sequelize_query_test.js b/tests/sequelize_query_test.js index 6ee9166..19d0c75 100644 --- a/tests/sequelize_query_test.js +++ b/tests/sequelize_query_test.js @@ -30,7 +30,6 @@ const Support = { benchmark: options.benchmark || false, logQueryParameters: options.logQueryParameters || false, minifyAliases: options.minifyAliases || false, - dialectOptions: {cockroachdbTelemetryDisabled : true} }); } }; diff --git a/tests/support.js b/tests/support.js index e405bfe..e7e474b 100644 --- a/tests/support.js +++ b/tests/support.js @@ -9,7 +9,6 @@ const Support = { logging: console.log, typeValidation: true, minifyAliases: options.minifyAliases || false, - dialectOptions: {cockroachdbTelemetryDisabled : true}, ...options }); },