mirror of
https://github.com/SigNoz/signoz.git
synced 2026-02-09 19:22:21 +00:00
Compare commits
2 Commits
test/uplot
...
fix/rule-h
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52563fee75 | ||
|
|
a69235e351 |
@@ -848,31 +848,47 @@ func (aH *APIHandler) deleteDowntimeSchedule(w http.ResponseWriter, r *http.Requ
|
||||
}
|
||||
|
||||
func (aH *APIHandler) getRuleStats(w http.ResponseWriter, r *http.Request) {
|
||||
ruleID := mux.Vars(r)["id"]
|
||||
idStr := mux.Vars(r)["id"]
|
||||
ruleID, err := valuer.NewUUID(idStr)
|
||||
if err != nil {
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
ruleHistory, err := aH.ruleManager.GetRuleHistory(r.Context(), id)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
|
||||
ruleID = ruleHistory.RuleUUID
|
||||
}
|
||||
|
||||
params := model.QueryRuleStateHistory{}
|
||||
err := json.NewDecoder(r.Body).Decode(¶ms)
|
||||
err = json.NewDecoder(r.Body).Decode(¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
totalCurrentTriggers, err := aH.reader.GetTotalTriggers(r.Context(), ruleID, ¶ms)
|
||||
totalCurrentTriggers, err := aH.reader.GetTotalTriggers(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
currentTriggersSeries, err := aH.reader.GetTriggersByInterval(r.Context(), ruleID, ¶ms)
|
||||
currentTriggersSeries, err := aH.reader.GetTriggersByInterval(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
currentAvgResolutionTime, err := aH.reader.GetAvgResolutionTime(r.Context(), ruleID, ¶ms)
|
||||
currentAvgResolutionTime, err := aH.reader.GetAvgResolutionTime(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
currentAvgResolutionTimeSeries, err := aH.reader.GetAvgResolutionTimeByInterval(r.Context(), ruleID, ¶ms)
|
||||
currentAvgResolutionTimeSeries, err := aH.reader.GetAvgResolutionTimeByInterval(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
@@ -887,23 +903,23 @@ func (aH *APIHandler) getRuleStats(w http.ResponseWriter, r *http.Request) {
|
||||
params.End -= 86400000
|
||||
}
|
||||
|
||||
totalPastTriggers, err := aH.reader.GetTotalTriggers(r.Context(), ruleID, ¶ms)
|
||||
totalPastTriggers, err := aH.reader.GetTotalTriggers(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
pastTriggersSeries, err := aH.reader.GetTriggersByInterval(r.Context(), ruleID, ¶ms)
|
||||
pastTriggersSeries, err := aH.reader.GetTriggersByInterval(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
pastAvgResolutionTime, err := aH.reader.GetAvgResolutionTime(r.Context(), ruleID, ¶ms)
|
||||
pastAvgResolutionTime, err := aH.reader.GetAvgResolutionTime(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
pastAvgResolutionTimeSeries, err := aH.reader.GetAvgResolutionTimeByInterval(r.Context(), ruleID, ¶ms)
|
||||
pastAvgResolutionTimeSeries, err := aH.reader.GetAvgResolutionTimeByInterval(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
@@ -930,15 +946,31 @@ func (aH *APIHandler) getRuleStats(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func (aH *APIHandler) getOverallStateTransitions(w http.ResponseWriter, r *http.Request) {
|
||||
ruleID := mux.Vars(r)["id"]
|
||||
idStr := mux.Vars(r)["id"]
|
||||
ruleID, err := valuer.NewUUID(idStr)
|
||||
if err != nil {
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
ruleHistory, err := aH.ruleManager.GetRuleHistory(r.Context(), id)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
|
||||
ruleID = ruleHistory.RuleUUID
|
||||
}
|
||||
|
||||
params := model.QueryRuleStateHistory{}
|
||||
err := json.NewDecoder(r.Body).Decode(¶ms)
|
||||
err = json.NewDecoder(r.Body).Decode(¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
stateItems, err := aH.reader.GetOverallStateTransitions(r.Context(), ruleID, ¶ms)
|
||||
stateItems, err := aH.reader.GetOverallStateTransitions(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
@@ -990,9 +1022,25 @@ func (aH *APIHandler) metaForLinks(ctx context.Context, rule *ruletypes.Gettable
|
||||
}
|
||||
|
||||
func (aH *APIHandler) getRuleStateHistory(w http.ResponseWriter, r *http.Request) {
|
||||
ruleID := mux.Vars(r)["id"]
|
||||
idStr := mux.Vars(r)["id"]
|
||||
ruleID, err := valuer.NewUUID(idStr)
|
||||
if err != nil {
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
ruleHistory, err := aH.ruleManager.GetRuleHistory(r.Context(), id)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
|
||||
ruleID = ruleHistory.RuleUUID
|
||||
}
|
||||
|
||||
params := model.QueryRuleStateHistory{}
|
||||
err := json.NewDecoder(r.Body).Decode(¶ms)
|
||||
err = json.NewDecoder(r.Body).Decode(¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil)
|
||||
return
|
||||
@@ -1002,13 +1050,13 @@ func (aH *APIHandler) getRuleStateHistory(w http.ResponseWriter, r *http.Request
|
||||
return
|
||||
}
|
||||
|
||||
res, err := aH.reader.ReadRuleStateHistoryByRuleID(r.Context(), ruleID, ¶ms)
|
||||
res, err := aH.reader.ReadRuleStateHistoryByRuleID(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
rule, err := aH.ruleManager.GetRule(r.Context(), ruleID)
|
||||
rule, err := aH.ruleManager.GetRule(r.Context(), ruleID.StringValue())
|
||||
if err == nil {
|
||||
for idx := range res.Items {
|
||||
lbls := make(map[string]string)
|
||||
@@ -1036,21 +1084,37 @@ func (aH *APIHandler) getRuleStateHistory(w http.ResponseWriter, r *http.Request
|
||||
}
|
||||
|
||||
func (aH *APIHandler) getRuleStateHistoryTopContributors(w http.ResponseWriter, r *http.Request) {
|
||||
ruleID := mux.Vars(r)["id"]
|
||||
idStr := mux.Vars(r)["id"]
|
||||
ruleID, err := valuer.NewUUID(idStr)
|
||||
if err != nil {
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
ruleHistory, err := aH.ruleManager.GetRuleHistory(r.Context(), id)
|
||||
if err != nil {
|
||||
render.Error(w, errorsV2.New(errorsV2.TypeInvalidInput, errorsV2.CodeInvalidInput, "invalid rule id"))
|
||||
return
|
||||
}
|
||||
|
||||
ruleID = ruleHistory.RuleUUID
|
||||
}
|
||||
|
||||
params := model.QueryRuleStateHistory{}
|
||||
err := json.NewDecoder(r.Body).Decode(¶ms)
|
||||
err = json.NewDecoder(r.Body).Decode(¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
res, err := aH.reader.ReadRuleStateHistoryTopContributorsByRuleID(r.Context(), ruleID, ¶ms)
|
||||
res, err := aH.reader.ReadRuleStateHistoryTopContributorsByRuleID(r.Context(), ruleID.StringValue(), ¶ms)
|
||||
if err != nil {
|
||||
RespondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil)
|
||||
return
|
||||
}
|
||||
|
||||
rule, err := aH.ruleManager.GetRule(r.Context(), ruleID)
|
||||
rule, err := aH.ruleManager.GetRule(r.Context(), ruleID.StringValue())
|
||||
if err == nil {
|
||||
for idx := range res {
|
||||
lbls := make(map[string]string)
|
||||
|
||||
@@ -1080,3 +1080,12 @@ func (m *Manager) GetAlertDetailsForMetricNames(ctx context.Context, metricNames
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (m *Manager) GetRuleHistory(ctx context.Context, id int) (*ruletypes.RuleHistory, error) {
|
||||
ruleHistory, err := m.ruleStore.GetRuleUUID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ruleHistory, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user