Skip to content

Commit 2bd467c

Browse files
authored
fix(bigpanda): fields of alerting data point should be serialized as a string (#2596)
* fix(bigpanda): fields of alerting data point should be serialized as a string * docs: update CHANGELOG.md
1 parent 3b27448 commit 2bd467c

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
### Bugfixes
1010
- [#2585](https://github.com/influxdata/kapacitor/pull/2585):Make DeleteGroupMessage align with GroupInfoer interface, thanks @prashanthjbabu!
11-
- [#2592](https://github.com/influxdata/kapacitor/pull/2592): Fix: payload serialization for BigPanda
11+
- [#2596](https://github.com/influxdata/kapacitor/pull/2596): Fix: payload serialization for BigPanda
1212

1313
## v1.6.0 [2021-06-28]
1414

services/bigpanda/service.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,16 @@ func (s *Service) preparePost(id string, message string, details string, level a
234234
}
235235

236236
for k, v := range data.Fields {
237-
bpData[k] = v
237+
switch value := v.(type) {
238+
case string:
239+
bpData[k] = value
240+
default:
241+
b, err := json.Marshal(value)
242+
if err != nil {
243+
return nil, err
244+
}
245+
bpData[k] = string(b)
246+
}
238247
}
239248

240249
var post bytes.Buffer

services/bigpanda/service_test.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,27 @@ func TestService_SerializeEventData(t *testing.T) {
2121
}{
2222
{
2323
fields: map[string]interface{}{"primitive_type": 10},
24-
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"primitive_type\":10,\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
24+
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"primitive_type\":\"10\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
25+
},
26+
{
27+
fields: map[string]interface{}{"primitive_type": "string"},
28+
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"primitive_type\":\"string\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
29+
},
30+
{
31+
fields: map[string]interface{}{"primitive_type": true},
32+
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"primitive_type\":\"true\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
33+
},
34+
{
35+
fields: map[string]interface{}{"primitive_type": 123.45},
36+
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"primitive_type\":\"123.45\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
2537
},
2638
{
2739
fields: map[string]interface{}{"escape": "\n"},
2840
expBody: "{\"app_key\":\"key\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"escape\":\"\\n\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
2941
},
3042
{
3143
fields: map[string]interface{}{"array": []interface{}{10, true, "string value"}},
32-
expBody: "{\"app_key\":\"key\",\"array\":[10,true,\"string value\"],\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
44+
expBody: "{\"app_key\":\"key\",\"array\":\"[10,true,\\\"string value\\\"]\",\"check\":\"id\",\"description\":\"message\",\"details\":\"details\",\"status\":\"ok\",\"task\":\":test\",\"timestamp\":31536038}\n",
3345
},
3446
}
3547

0 commit comments

Comments
 (0)