MM-59954 Community plugins telemetry (#28226)

* add known plugins to the list of possible plugins to be located

* improve testing and fix config data collection

* Improve testing

* remove empty lines

* make linter happy

* go through all plugins
This commit is contained in:
Guillermo Vayá 2024-09-23 12:59:19 +02:00 committed by GitHub
parent 87ad717434
commit 343746c4b6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 18 deletions

View file

@ -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)
}

View file

@ -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")
}
}
})