diff --git a/packages/core/strapi/lib/services/metrics/index.js b/packages/core/strapi/lib/services/metrics/index.js index 46094dfafb..04a8921754 100644 --- a/packages/core/strapi/lib/services/metrics/index.js +++ b/packages/core/strapi/lib/services/metrics/index.js @@ -17,6 +17,7 @@ const LIMITED_EVENTS = [ 'didSaveMediaWithCaption', 'didDisableResponsiveDimensions', 'didEnableResponsiveDimensions', + 'didInitializePluginUpload', ]; const createTelemetryInstance = (strapi) => { diff --git a/packages/core/upload/server/bootstrap.js b/packages/core/upload/server/bootstrap.js index a0db872e93..7cd2ccde56 100644 --- a/packages/core/upload/server/bootstrap.js +++ b/packages/core/upload/server/bootstrap.js @@ -37,7 +37,8 @@ module.exports = async ({ strapi }) => { await registerPermissionActions(); - await getService('metrics').registerCron(); + await getService('weeklyMetrics').registerCron(); + await getService('metrics').sendUploadPluginMetrics(); }; const registerPermissionActions = async () => { diff --git a/packages/core/upload/server/services/__tests__/metrics.js b/packages/core/upload/server/services/__tests__/metrics.js index 956e86648d..4b267feca9 100644 --- a/packages/core/upload/server/services/__tests__/metrics.js +++ b/packages/core/upload/server/services/__tests__/metrics.js @@ -1,6 +1,6 @@ 'use strict'; -const metricsService = require('../metrics'); +const metricsService = require('../metrics/weekly-metrics'); describe('metrics', () => { describe('computeMetrics', () => { diff --git a/packages/core/upload/server/services/index.js b/packages/core/upload/server/services/index.js index 09f2b148de..70813b8e3d 100644 --- a/packages/core/upload/server/services/index.js +++ b/packages/core/upload/server/services/index.js @@ -5,7 +5,8 @@ const upload = require('./upload'); const imageManipulation = require('./image-manipulation'); const folder = require('./folder'); const file = require('./file'); -const metrics = require('./metrics'); +const weeklyMetrics = require('./metrics/weekly-metrics'); +const metrics = require('./metrics/metrics'); const apiUploadFolder = require('./api-upload-folder'); const extensions = require('./extensions'); @@ -14,6 +15,7 @@ module.exports = { upload, folder, file, + weeklyMetrics, metrics, 'image-manipulation': imageManipulation, 'api-upload-folder': apiUploadFolder, diff --git a/packages/core/upload/server/services/metrics/metrics.js b/packages/core/upload/server/services/metrics/metrics.js new file mode 100644 index 0000000000..aa431dcf5d --- /dev/null +++ b/packages/core/upload/server/services/metrics/metrics.js @@ -0,0 +1,15 @@ +'use strict'; + +const getProviderName = () => strapi.config.get('plugin.upload.provider', 'local'); +const getProviderIsPrivate = () => strapi.plugin('upload').provider.isPrivate(); + +module.exports = ({ strapi }) => ({ + async sendUploadPluginMetrics() { + const provider = await getProviderName(); + const isPrivate = await getProviderIsPrivate(); + + await strapi.telemetry.send('didInitializePluginUpload', { + groupProperties: { provider, isPrivate }, + }); + }, +}); diff --git a/packages/core/upload/server/services/metrics.js b/packages/core/upload/server/services/metrics/weekly-metrics.js similarity index 96% rename from packages/core/upload/server/services/metrics.js rename to packages/core/upload/server/services/metrics/weekly-metrics.js index a0f4976871..a2074d3cc9 100644 --- a/packages/core/upload/server/services/metrics.js +++ b/packages/core/upload/server/services/metrics/weekly-metrics.js @@ -2,8 +2,8 @@ const { defaultTo } = require('lodash/fp'); const { add } = require('date-fns'); -const { FOLDER_MODEL_UID, FILE_MODEL_UID } = require('../constants'); -const { getWeeklyCronScheduleAt } = require('../utils/cron'); +const { FOLDER_MODEL_UID, FILE_MODEL_UID } = require('../../constants'); +const { getWeeklyCronScheduleAt } = require('../../utils/cron'); const ONE_WEEK = 7 * 24 * 60 * 60 * 1000;