mirror of
https://github.com/mattermost/mattermost.git
synced 2026-05-28 04:35:04 -04:00
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:
parent
87ad717434
commit
343746c4b6
2 changed files with 22 additions and 18 deletions
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue