ソースを参照

Fix HTTP alerting

Brendan Abolivier 7 年 前
コミット
b3c6b533bb
署名者: Brendan Abolivier <contact@brendanabolivier.com> GPGキーID: 8EF1500759F70623
共有1 個のファイルを変更した12 個の追加2 個の削除を含む
  1. 12
    2
      src/metrics-alerting/alert/http.go

+ 12
- 2
src/metrics-alerting/alert/http.go ファイルの表示

@@ -3,7 +3,9 @@ package alert
3 3
 import (
4 4
 	"bytes"
5 5
 	"encoding/json"
6
+	"fmt"
6 7
 	"net/http"
8
+	"strconv"
7 9
 
8 10
 	"metrics-alerting/config"
9 11
 )
@@ -14,9 +16,17 @@ type alertBody struct {
14 16
 }
15 17
 
16 18
 func alertHttp(script config.Script, result interface{}) error {
19
+	var value string
20
+	switch script.Type {
21
+	case "number":
22
+		value = strconv.FormatFloat(result.(float64), 'e', -1, 64)
23
+	case "bool":
24
+		value = strconv.FormatBool(result.(bool))
25
+	}
26
+
17 27
 	alert := alertBody{
18 28
 		Key:   script.Key,
19
-		Value: result,
29
+		Value: value,
20 30
 	}
21 31
 
22 32
 	body, err := json.Marshal(alert)
@@ -35,7 +45,7 @@ func alertHttp(script config.Script, result interface{}) error {
35 45
 
36 46
 	if resp.StatusCode != http.StatusOK {
37 47
 		return fmt.Errorf(
38
-			"target %s returned non-200 status code %d", script.Target, resp.StatusCode
48
+			"target %s returned non-200 status code %d", script.Target, resp.StatusCode,
39 49
 		)
40 50
 	}
41 51