alertmanager/cli/format/format_json.go
Kellen Fox 3aab66ec3a Amtool implementation (#636)
* Implement alertmanager cli tool 'amtool'

The primary goal of an alertmanager tool is to provide a cli interface
for the prometheus alertmanager.

My vision for this tool has two parts:
  - Silence management (query, add, delete)

  - Alert management (query, maybe more in future?)

Resolves: #567
2017-04-20 11:04:17 +02:00

38 lines
811 B
Go

package format
import (
"encoding/json"
"io"
"os"
"github.com/prometheus/alertmanager/dispatch"
"github.com/prometheus/alertmanager/types"
)
type JsonFormatter struct {
writer io.Writer
}
func init() {
Formatters["json"] = &JsonFormatter{writer: os.Stdout}
}
func (formatter *JsonFormatter) SetOutput(writer io.Writer) {
formatter.writer = writer
}
func (formatter *JsonFormatter) FormatSilences(silences []types.Silence) error {
enc := json.NewEncoder(formatter.writer)
return enc.Encode(silences)
}
func (formatter *JsonFormatter) FormatAlerts(alerts []*dispatch.APIAlert) error {
enc := json.NewEncoder(formatter.writer)
return enc.Encode(alerts)
}
func (formatter *JsonFormatter) FormatConfig(config Config) error {
enc := json.NewEncoder(formatter.writer)
return enc.Encode(config)
}