MM-28226: Admin Advisor: add mitigations (#15379)

* Admin Advisor: add mitigation
Этот коммит содержится в:
catalintomai
2020-09-08 07:51:14 -07:00
коммит произвёл GitHub
родитель 7116563ff3
Коммит f0eb67fa0d
3 изменённых файлов: 20 добавлений и 17 удалений

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

@@ -1165,7 +1165,7 @@ func runCheckNumberOfActiveUsersWarnMetricStatusJob(a *App) {
doCheckNumberOfActiveUsersWarnMetricStatus(a)
model.CreateRecurringTask("Check Number Of Active Users Warn Metric Status", func() {
doCheckNumberOfActiveUsersWarnMetricStatus(a)
}, time.Hour*24)
}, time.Hour*24*7)
}
func doSecurity(s *Server) {
@@ -1220,21 +1220,22 @@ func doCheckNumberOfActiveUsersWarnMetricStatus(a *App) {
for _, warnMetric := range warnMetrics {
data, nErr := a.Srv().Store.System().GetByName(warnMetric.Id)
if nErr == nil && data != nil && (data.Value == model.WARN_METRIC_STATUS_ACK || data.Value == model.WARN_METRIC_STATUS_RUNONCE) {
mlog.Debug("This metric warning has already been acked or should only run once")
if nErr == nil && data != nil && (data.Value == model.WARN_METRIC_STATUS_ACK || (warnMetric.IsBotOnly && data.Value == model.WARN_METRIC_STATUS_RUNONCE)) {
mlog.Debug("This metric warning has already been acked or it is bot only and ran once")
continue
}
if nErr = a.Srv().Store.System().SaveOrUpdate(&model.System{Name: warnMetric.Id, Value: model.WARN_METRIC_STATUS_LIMIT_REACHED}); nErr != nil {
mlog.Error("Unable to write to database.", mlog.String("id", warnMetric.Id), mlog.Err(nErr))
continue
}
warnMetricStatus, _ := a.getWarnMetricStatusAndDisplayTextsForId(warnMetric.Id, nil)
if !warnMetric.IsBotOnly {
// Banner and bot metrics - send websocket event
message := model.NewWebSocketEvent(model.WEBSOCKET_WARN_METRIC_STATUS_RECEIVED, "", "", "", nil)
message.Add("warnMetricStatus", warnMetricStatus.ToJson())
a.Publish(message)
// Bot and banner metrics, do not send the bot message again
if data != nil && data.Value == model.WARN_METRIC_STATUS_RUNONCE {
continue
}
}
if err = a.notifyAdminsOfWarnMetricStatus(warnMetric.Id); err != nil {
@@ -1243,6 +1244,8 @@ func doCheckNumberOfActiveUsersWarnMetricStatus(a *App) {
if warnMetric.IsRunOnce {
a.setWarnMetricsStatusForId(warnMetric.Id, model.WARN_METRIC_STATUS_RUNONCE)
} else {
a.setWarnMetricsStatusForId(warnMetric.Id, model.WARN_METRIC_STATUS_LIMIT_REACHED)
}
}
}