[MM-58159] Add admin setting for notification monitoring alongside feature flag (#26979)

* [MM-58159] Add admin setting for notification monitoring alongside feature flag

* Use helper function
Этот коммит содержится в:
Devin Binnie
2024-05-09 11:30:42 -04:00
коммит произвёл GitHub
родитель f111db5fe8
Коммит d6a8ad0d55
6 изменённых файлов: 38 добавлений и 20 удалений

Просмотреть файл

@@ -1736,11 +1736,7 @@ func ShouldAckWebsocketNotification(channelType model.ChannelType, userNotificat
}
func (a *App) CountNotification(notificationType model.NotificationType) {
if a.Metrics() == nil {
return
}
if !a.Config().FeatureFlags.NotificationMonitoring {
if a.notificationMetricsDisabled() {
return
}
@@ -1748,11 +1744,7 @@ func (a *App) CountNotification(notificationType model.NotificationType) {
}
func (a *App) CountNotificationAck(notificationType model.NotificationType) {
if a.Metrics() == nil {
return
}
if !a.Config().FeatureFlags.NotificationMonitoring {
if a.notificationMetricsDisabled() {
return
}
@@ -1764,11 +1756,7 @@ func (a *App) CountNotificationReason(
notificationType model.NotificationType,
notificationReason model.NotificationReason,
) {
if a.Metrics() == nil {
return
}
if !a.Config().FeatureFlags.NotificationMonitoring {
if a.notificationMetricsDisabled() {
return
}
@@ -1783,3 +1771,15 @@ func (a *App) CountNotificationReason(
a.Metrics().IncrementNotificationUnsupportedCounter(notificationType, notificationReason)
}
}
func (a *App) notificationMetricsDisabled() bool {
if a.Metrics() == nil {
return true
}
if a.Config().FeatureFlags.NotificationMonitoring && *a.Config().MetricsSettings.EnableNotificationMetrics {
return false
}
return true
}

Просмотреть файл

@@ -135,7 +135,7 @@ func incrementWebsocketCounter(wc *platform.WebConn) {
return
}
if !wc.Platform.Config().FeatureFlags.NotificationMonitoring {
if !(wc.Platform.Config().FeatureFlags.NotificationMonitoring && *wc.Platform.Config().MetricsSettings.EnableNotificationMetrics) {
return
}

Просмотреть файл

@@ -188,6 +188,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)
props["EnableNotificationMetrics"] = strconv.FormatBool(c.FeatureFlags.NotificationMonitoring && *c.MetricsSettings.EnableNotificationMetrics)
}
if *license.Features.Announcement {

Просмотреть файл

@@ -980,10 +980,11 @@ 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
EnableClientMetrics *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"`
ListenAddress *string `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"` // telemetry: none
EnableClientMetrics *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
EnableNotificationMetrics *bool `access:"environment_performance_monitoring,write_restrictable,cloud_restrictable"`
}
func (s *MetricsSettings) SetDefaults() {
@@ -1002,6 +1003,10 @@ func (s *MetricsSettings) SetDefaults() {
if s.EnableClientMetrics == nil {
s.EnableClientMetrics = NewBool(true)
}
if s.EnableNotificationMetrics == nil {
s.EnableNotificationMetrics = NewBool(true)
}
}
type ExperimentalSettings struct {