mirror of
https://github.com/prometheus/alertmanager
synced 2025-01-26 16:03:00 +00:00
3aab66ec3a
* 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
38 lines
811 B
Go
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)
|
|
}
|