...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package format
15
16 import (
17 "encoding/json"
18 "io"
19 "os"
20
21 "github.com/prometheus/alertmanager/api/v2/models"
22 )
23
24 type JSONFormatter struct {
25 writer io.Writer
26 }
27
28 func init() {
29 Formatters["json"] = &JSONFormatter{writer: os.Stdout}
30 }
31
32 func (formatter *JSONFormatter) SetOutput(writer io.Writer) {
33 formatter.writer = writer
34 }
35
36 func (formatter *JSONFormatter) FormatSilences(silences []models.GettableSilence) error {
37 enc := json.NewEncoder(formatter.writer)
38 return enc.Encode(silences)
39 }
40
41 func (formatter *JSONFormatter) FormatAlerts(alerts []*models.GettableAlert) error {
42 enc := json.NewEncoder(formatter.writer)
43 return enc.Encode(alerts)
44 }
45
46 func (formatter *JSONFormatter) FormatConfig(status *models.AlertmanagerStatus) error {
47 enc := json.NewEncoder(formatter.writer)
48 return enc.Encode(status)
49 }
50
51 func (formatter *JSONFormatter) FormatClusterStatus(status *models.ClusterStatus) error {
52 enc := json.NewEncoder(formatter.writer)
53 return enc.Encode(status)
54 }
55
View as plain text