mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
MM-58092 Add feature flag and setting for client performance metrics (#26942)
* MM-58092 Add feature flag and setting for client performance metrics * Fix incorrect field name
This commit is contained in:
@@ -187,6 +187,7 @@ func GenerateClientConfig(c *model.Config, telemetryID string, license *model.Li
|
||||
|
||||
if *license.Features.Cluster {
|
||||
props["EnableMetrics"] = strconv.FormatBool(*c.MetricsSettings.Enable)
|
||||
props["EnableClientMetrics"] = strconv.FormatBool(c.FeatureFlags.ClientMetrics && *c.MetricsSettings.EnableClientMetrics)
|
||||
}
|
||||
|
||||
if *license.Features.Announcement {
|
||||
|
||||
@@ -980,9 +980,10 @@ func (s *ClusterSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type MetricsSettings struct {
|
||||
Enable *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||
BlockProfileRate *int `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||
ListenAddress *string `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
Enable *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||
BlockProfileRate *int `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||
ListenAddress *string `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"` // telemetry: none
|
||||
EnableClientMetrics *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *MetricsSettings) SetDefaults() {
|
||||
@@ -997,6 +998,10 @@ func (s *MetricsSettings) SetDefaults() {
|
||||
if s.BlockProfileRate == nil {
|
||||
s.BlockProfileRate = NewInt(0)
|
||||
}
|
||||
|
||||
if s.EnableClientMetrics == nil {
|
||||
s.EnableClientMetrics = NewBool(true)
|
||||
}
|
||||
}
|
||||
|
||||
type ExperimentalSettings struct {
|
||||
|
||||
@@ -55,6 +55,8 @@ type FeatureFlags struct {
|
||||
WebSocketEventScope bool
|
||||
|
||||
NotificationMonitoring bool
|
||||
|
||||
ClientMetrics bool
|
||||
}
|
||||
|
||||
func (f *FeatureFlags) SetDefaults() {
|
||||
@@ -78,6 +80,7 @@ func (f *FeatureFlags) SetDefaults() {
|
||||
f.ChannelBookmarks = false
|
||||
f.WebSocketEventScope = false
|
||||
f.NotificationMonitoring = true
|
||||
f.ClientMetrics = false
|
||||
}
|
||||
|
||||
// ToMap returns the feature flags as a map[string]string
|
||||
|
||||
@@ -1788,6 +1788,28 @@ const AdminDefinition: AdminDefinitionType = {
|
||||
},
|
||||
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.ENVIRONMENT.PERFORMANCE_MONITORING)),
|
||||
},
|
||||
{
|
||||
type: 'bool',
|
||||
key: 'MetricsSettings.EnableClientMetrics',
|
||||
label: defineMessage({id: 'admin.metrics.enableClientMetricsTitle', defaultMessage: 'Enable Client Performance Monitoring:'}),
|
||||
help_text: defineMessage({id: 'admin.metrics.enableClientMetricsDescription', defaultMessage: 'When true, Mattermost will enable performance monitoring collection for web and desktop app users. Please see <link>documentation</link> to learn more about configuring performance monitoring for Mattermost.'}),
|
||||
help_text_markdown: false,
|
||||
help_text_values: {
|
||||
link: (msg: string) => (
|
||||
<ExternalLink
|
||||
location='admin_console'
|
||||
href={DocLinks.SETUP_PERFORMANCE_MONITORING}
|
||||
>
|
||||
{msg}
|
||||
</ExternalLink>
|
||||
),
|
||||
},
|
||||
isDisabled: it.any(
|
||||
it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.ENVIRONMENT.PERFORMANCE_MONITORING)),
|
||||
it.configIsFalse('MetricsSettings', 'Enable'),
|
||||
),
|
||||
isHidden: it.configIsFalse('FeatureFlags', 'ClientMetrics'),
|
||||
},
|
||||
{
|
||||
type: 'text',
|
||||
key: 'MetricsSettings.ListenAddress',
|
||||
|
||||
@@ -1472,6 +1472,8 @@
|
||||
"admin.manage_tokens.userAccessTokensNone": "No personal access tokens.",
|
||||
"admin.member_list_group.name": "Name",
|
||||
"admin.member_list_group.notFound": "No users found",
|
||||
"admin.metrics.enableClientMetricsDescription": "When true, Mattermost will enable performance monitoring collection for web and desktop app users. Please see <link>documentation</link> to learn more about configuring performance monitoring for Mattermost.",
|
||||
"admin.metrics.enableClientMetricsTitle": "Enable Client Performance Monitoring:",
|
||||
"admin.metrics.enableDescription": "When true, Mattermost will enable performance monitoring collection and profiling. Please see <link>documentation</link> to learn more about configuring performance monitoring for Mattermost.",
|
||||
"admin.metrics.enableTitle": "Enable Performance Monitoring:",
|
||||
"admin.metrics.listenAddressDesc": "The address the server will listen on to expose performance metrics.",
|
||||
|
||||
Reference in New Issue
Block a user