Skip to content

Commit

Permalink
pkg/rules/rulespb.AlertState: marshal JSON as lowercase (thanos-io#2834)
Browse files Browse the repository at this point in the history
Currently, alert state is rendered as upper case.
In Prometheus it is lower case.
This fixes it.

Signed-off-by: Sergiusz Urbaniak <sergiusz.urbaniak@gmail.com>
  • Loading branch information
s-urbaniak authored and paulfantom committed Jul 8, 2020
1 parent 3ec7d1c commit ff1efd7
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 9 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ We use *breaking* word for marking changes that are not backward compatible (rel

## Unreleased

- [#2834](https://github.com/thanos-io/thanos/pull/2834) Query: Fix rendered JSON state value for rules and alerts should be in lowercase

## [v0.13.0](https://github.com/thanos-io/thanos/releases/tag/v0.13.0) - 2020.06.22

### Fixed
Expand Down Expand Up @@ -807,4 +809,4 @@ Initial version to have a stable reference before [gossip protocol removal](/doc
- Compact / Downsample offline commands.
- Bucket commands.
- Downsampling support for UI.
- Grafana dashboards for Thanos components.
- Grafana dashboards for Thanos components.
8 changes: 4 additions & 4 deletions pkg/query/api/v1_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1317,7 +1317,7 @@ func TestRulesHandler(t *testing.T) {
Type: "recording",
},
testpromcompatibility.AlertingRule{
State: all[2].GetAlert().State.String(),
State: strings.ToLower(all[2].GetAlert().State.String()),
Name: all[2].GetAlert().Name,
Query: all[2].GetAlert().Query,
Labels: storepb.LabelsToPromLabels(all[2].GetAlert().Labels.Labels),
Expand All @@ -1331,15 +1331,15 @@ func TestRulesHandler(t *testing.T) {
{
Labels: storepb.LabelsToPromLabels(all[2].GetAlert().Alerts[0].Labels.Labels),
Annotations: storepb.LabelsToPromLabels(all[2].GetAlert().Alerts[0].Annotations.Labels),
State: all[2].GetAlert().Alerts[0].State.String(),
State: strings.ToLower(all[2].GetAlert().Alerts[0].State.String()),
ActiveAt: all[2].GetAlert().Alerts[0].ActiveAt,
Value: all[2].GetAlert().Alerts[0].Value,
PartialResponseStrategy: all[2].GetAlert().Alerts[0].PartialResponseStrategy.String(),
},
{
Labels: storepb.LabelsToPromLabels(all[2].GetAlert().Alerts[1].Labels.Labels),
Annotations: storepb.LabelsToPromLabels(all[2].GetAlert().Alerts[1].Annotations.Labels),
State: all[2].GetAlert().Alerts[1].State.String(),
State: strings.ToLower(all[2].GetAlert().Alerts[1].State.String()),
ActiveAt: all[2].GetAlert().Alerts[1].ActiveAt,
Value: all[2].GetAlert().Alerts[1].Value,
PartialResponseStrategy: all[2].GetAlert().Alerts[1].PartialResponseStrategy.String(),
Expand All @@ -1348,7 +1348,7 @@ func TestRulesHandler(t *testing.T) {
Type: "alerting",
},
testpromcompatibility.AlertingRule{
State: all[3].GetAlert().State.String(),
State: strings.ToLower(all[3].GetAlert().State.String()),
Name: all[3].GetAlert().Name,
Query: all[3].GetAlert().Query,
Labels: storepb.LabelsToPromLabels(all[3].GetAlert().Labels.Labels),
Expand Down
2 changes: 1 addition & 1 deletion pkg/rules/rulespb/custom.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ func (x *AlertState) UnmarshalJSON(entry []byte) error {
}

func (x *AlertState) MarshalJSON() ([]byte, error) {
return []byte(strconv.Quote(x.String())), nil
return []byte(strconv.Quote(strings.ToLower(x.String()))), nil
}

// Compare compares alert state x and y and returns:
Expand Down
6 changes: 3 additions & 3 deletions pkg/rules/rulespb/custom_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,23 +207,23 @@ func TestJSONUnmarshalMarshal(t *testing.T) {
Annotations: labels.Labels{
{Name: "annotation1", Value: "2"},
},
State: "INACTIVE",
State: "inactive",
ActiveAt: nil,
Value: "1",
PartialResponseStrategy: "WARN",
},
{
Labels: nil,
Annotations: nil,
State: "FIRING",
State: "firing",
ActiveAt: &twoHoursAgo,
Value: "2143",
PartialResponseStrategy: "ABORT",
},
},
LastError: "1",
Duration: 60,
State: "PENDING",
State: "pending",
LastEvaluation: now.Add(-1 * time.Minute),
EvaluationTime: 1.1,
},
Expand Down

0 comments on commit ff1efd7

Please sign in to comment.