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
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
03c930daa0
Коммит
0a3a55bb80
@@ -187,6 +187,7 @@ func GenerateClientConfig(c *model.Config, telemetryID string, license *model.Li
|
|||||||
|
|
||||||
if *license.Features.Cluster {
|
if *license.Features.Cluster {
|
||||||
props["EnableMetrics"] = strconv.FormatBool(*c.MetricsSettings.Enable)
|
props["EnableMetrics"] = strconv.FormatBool(*c.MetricsSettings.Enable)
|
||||||
|
props["EnableClientMetrics"] = strconv.FormatBool(c.FeatureFlags.ClientMetrics && *c.MetricsSettings.EnableClientMetrics)
|
||||||
}
|
}
|
||||||
|
|
||||||
if *license.Features.Announcement {
|
if *license.Features.Announcement {
|
||||||
|
|||||||
@@ -980,9 +980,10 @@ func (s *ClusterSettings) SetDefaults() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type MetricsSettings struct {
|
type MetricsSettings struct {
|
||||||
Enable *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
Enable *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
|
||||||
BlockProfileRate *int `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
|
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() {
|
func (s *MetricsSettings) SetDefaults() {
|
||||||
@@ -997,6 +998,10 @@ func (s *MetricsSettings) SetDefaults() {
|
|||||||
if s.BlockProfileRate == nil {
|
if s.BlockProfileRate == nil {
|
||||||
s.BlockProfileRate = NewInt(0)
|
s.BlockProfileRate = NewInt(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.EnableClientMetrics == nil {
|
||||||
|
s.EnableClientMetrics = NewBool(true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type ExperimentalSettings struct {
|
type ExperimentalSettings struct {
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ type FeatureFlags struct {
|
|||||||
WebSocketEventScope bool
|
WebSocketEventScope bool
|
||||||
|
|
||||||
NotificationMonitoring bool
|
NotificationMonitoring bool
|
||||||
|
|
||||||
|
ClientMetrics bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FeatureFlags) SetDefaults() {
|
func (f *FeatureFlags) SetDefaults() {
|
||||||
@@ -78,6 +80,7 @@ func (f *FeatureFlags) SetDefaults() {
|
|||||||
f.ChannelBookmarks = false
|
f.ChannelBookmarks = false
|
||||||
f.WebSocketEventScope = false
|
f.WebSocketEventScope = false
|
||||||
f.NotificationMonitoring = true
|
f.NotificationMonitoring = true
|
||||||
|
f.ClientMetrics = false
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToMap returns the feature flags as a map[string]string
|
// 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)),
|
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',
|
type: 'text',
|
||||||
key: 'MetricsSettings.ListenAddress',
|
key: 'MetricsSettings.ListenAddress',
|
||||||
|
|||||||
@@ -1472,6 +1472,8 @@
|
|||||||
"admin.manage_tokens.userAccessTokensNone": "No personal access tokens.",
|
"admin.manage_tokens.userAccessTokensNone": "No personal access tokens.",
|
||||||
"admin.member_list_group.name": "Name",
|
"admin.member_list_group.name": "Name",
|
||||||
"admin.member_list_group.notFound": "No users found",
|
"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.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.enableTitle": "Enable Performance Monitoring:",
|
||||||
"admin.metrics.listenAddressDesc": "The address the server will listen on to expose performance metrics.",
|
"admin.metrics.listenAddressDesc": "The address the server will listen on to expose performance metrics.",
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user