- 新增 ops 主服务(ops_service.go)和端口定义(ops_port.go) - 实现账号可用性检查服务(ops_account_availability.go) - 实现数据聚合服务(ops_aggregation_service.go) - 实现告警评估服务(ops_alert_evaluator_service.go) - 实现告警管理服务(ops_alerts.go) - 实现数据清理服务(ops_cleanup_service.go) - 实现并发控制服务(ops_concurrency.go) - 实现仪表板服务(ops_dashboard.go) - 实现错误处理服务(ops_errors.go) - 实现直方图服务(ops_histograms.go) - 实现指标采集服务(ops_metrics_collector.go) - 实现查询模式服务(ops_query_mode.go) - 实现实时监控服务(ops_realtime.go) - 实现请求详情服务(ops_request_details.go) - 实现重试机制服务(ops_retry.go) - 实现配置管理服务(ops_settings.go) - 实现趋势分析服务(ops_trends.go) - 实现窗口统计服务(ops_window_stats.go) - 添加 ops 相关领域常量 - 注册 service 依赖注入
41 lines
935 B
Go
41 lines
935 B
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
type OpsQueryMode string
|
|
|
|
const (
|
|
OpsQueryModeAuto OpsQueryMode = "auto"
|
|
OpsQueryModeRaw OpsQueryMode = "raw"
|
|
OpsQueryModePreagg OpsQueryMode = "preagg"
|
|
)
|
|
|
|
// ErrOpsPreaggregatedNotPopulated indicates that raw logs exist for a window, but the
|
|
// pre-aggregation tables are not populated yet. This is primarily used to implement
|
|
// the forced `preagg` mode UX.
|
|
var ErrOpsPreaggregatedNotPopulated = errors.New("ops pre-aggregated tables not populated")
|
|
|
|
func ParseOpsQueryMode(raw string) OpsQueryMode {
|
|
v := strings.ToLower(strings.TrimSpace(raw))
|
|
switch v {
|
|
case string(OpsQueryModeRaw):
|
|
return OpsQueryModeRaw
|
|
case string(OpsQueryModePreagg):
|
|
return OpsQueryModePreagg
|
|
default:
|
|
return OpsQueryModeAuto
|
|
}
|
|
}
|
|
|
|
func (m OpsQueryMode) IsValid() bool {
|
|
switch m {
|
|
case OpsQueryModeAuto, OpsQueryModeRaw, OpsQueryModePreagg:
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|