diff --git a/server/platform/services/telemetry/telemetry.go b/server/platform/services/telemetry/telemetry.go index b07a3dffcd3..9103234d744 100644 --- a/server/platform/services/telemetry/telemetry.go +++ b/server/platform/services/telemetry/telemetry.go @@ -1448,10 +1448,6 @@ func (ts *TelemetryService) trackPluginConfig(cfg *model.Config, marketplaceURL marketplacePlugins, err := ts.GetAllMarketplacePlugins(marketplaceURL) if err != nil { mlog.Info("Failed to fetch marketplace plugins for telemetry. Using predefined list.", mlog.Err(err)) - - for _, id := range knownPluginIDs { - pluginConfigData["enable_"+id] = pluginActivated(cfg.PluginSettings.PluginStates, id) - } } else { for _, p := range marketplacePlugins { id := p.Manifest.Id @@ -1460,26 +1456,31 @@ func (ts *TelemetryService) trackPluginConfig(cfg *model.Config, marketplaceURL } } + for _, id := range knownPluginIDs { + pluginIdStr := fmt.Sprintf("enable_%s", id) + _, exists := pluginConfigData[pluginIdStr] + if !exists { + pluginConfigData[pluginIdStr] = pluginActivated(cfg.PluginSettings.PluginStates, id) + } + } pluginsEnvironment := ts.srv.GetPluginsEnvironment() if pluginsEnvironment != nil { if plugins, appErr := pluginsEnvironment.Available(); appErr != nil { ts.log.Warn("Unable to add plugin versions to telemetry", mlog.Err(appErr)) } else { - // If marketplace request failed, use predefined list - if marketplacePlugins == nil { - for _, id := range knownPluginIDs { - pluginConfigData["version_"+id] = pluginVersion(plugins, id) - } - } else { - for _, p := range marketplacePlugins { - id := p.Manifest.Id - - pluginConfigData["version_"+id] = pluginVersion(plugins, id) + for _, p := range marketplacePlugins { + id := p.Manifest.Id + pluginConfigData["version_"+id] = pluginVersion(plugins, id) + } + for _, id := range knownPluginIDs { + pluginVersionStr := fmt.Sprintf("version_%s", id) + _, exists := pluginConfigData[pluginVersionStr] + if !exists { + pluginConfigData[pluginVersionStr] = pluginVersion(plugins, id) } } } } - ts.SendTelemetry(TrackConfigPlugin, pluginConfigData) } diff --git a/server/platform/services/telemetry/telemetry_test.go b/server/platform/services/telemetry/telemetry_test.go index 40bd655663f..8012a089a13 100644 --- a/server/platform/services/telemetry/telemetry_test.go +++ b/server/platform/services/telemetry/telemetry_test.go @@ -552,9 +552,12 @@ func TestRudderTelemetry(t *testing.T) { assert.Contains(t, b.Properties, "enable_testplugin") assert.Contains(t, b.Properties, "version_testplugin") - // Confirm known plugins are not present - assert.NotContains(t, b.Properties, "enable_jira") - assert.NotContains(t, b.Properties, "version_jira") + // Confirm known plugins are present + assert.Contains(t, b.Properties, "enable_jira") + assert.Contains(t, b.Properties, "version_jira") + + // Confirm it doesn't contain unknown plugins + assert.NotContains(t, b.Properties, "enable_something") } } })