...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package cli
15
16 import (
17 "context"
18 "errors"
19
20 kingpin "gopkg.in/alecthomas/kingpin.v2"
21
22 "github.com/prometheus/alertmanager/cli/format"
23 )
24
25 const configHelp = `View current config.
26
27 The amount of output is controlled by the output selection flag:
28 - Simple: Print just the running config
29 - Extended: Print the running config as well as uptime and all version info
30 - Json: Print entire config object as json
31 `
32
33
34 func configureConfigCmd(app *kingpin.Application) {
35 configCmd := app.Command("config", configHelp)
36 configCmd.Command("show", configHelp).Default().Action(execWithTimeout(queryConfig)).PreAction(requireAlertManagerURL)
37 configureRoutingCmd(configCmd)
38 }
39
40 func queryConfig(ctx context.Context, _ *kingpin.ParseContext) error {
41 status, err := getRemoteAlertmanagerConfigStatus(ctx, alertmanagerURL)
42 if err != nil {
43 return err
44 }
45
46 formatter, found := format.Formatters[output]
47 if !found {
48 return errors.New("unknown output formatter")
49 }
50
51 return formatter.FormatConfig(status)
52 }
53
View as plain text