| 123456789101112131415161718192021222324252627282930313233343536 |
- package service
- import (
- "context"
- "errors"
- "strings"
- )
- // IsRealtimeMonitoringEnabled returns true when realtime ops features are enabled.
- //
- // This is a soft switch controlled by the DB setting `ops_realtime_monitoring_enabled`,
- // and it is also gated by the hard switch/soft switch of overall ops monitoring.
- func (s *OpsService) IsRealtimeMonitoringEnabled(ctx context.Context) bool {
- if !s.IsMonitoringEnabled(ctx) {
- return false
- }
- if s.settingRepo == nil {
- return true
- }
- value, err := s.settingRepo.GetValue(ctx, SettingKeyOpsRealtimeMonitoringEnabled)
- if err != nil {
- // Default enabled when key is missing; fail-open on transient errors.
- if errors.Is(err, ErrSettingNotFound) {
- return true
- }
- return true
- }
- switch strings.ToLower(strings.TrimSpace(value)) {
- case "false", "0", "off", "disabled":
- return false
- default:
- return true
- }
- }
|