...
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 "gopkg.in/alecthomas/kingpin.v2"
21
22 "github.com/prometheus/alertmanager/cli/format"
23 )
24
25 const clusterHelp = `View cluster status and peers.`
26
27
28 func configureClusterCmd(app *kingpin.Application) {
29 clusterCmd := app.Command("cluster", clusterHelp)
30 clusterCmd.Command("show", clusterHelp).Default().Action(execWithTimeout(showStatus)).PreAction(requireAlertManagerURL)
31 }
32
33 func showStatus(ctx context.Context, _ *kingpin.ParseContext) error {
34 alertManagerStatus, err := getRemoteAlertmanagerConfigStatus(ctx, alertmanagerURL)
35 if err != nil {
36 return err
37 }
38 formatter, found := format.Formatters[output]
39 if !found {
40 return errors.New("unknown output formatter")
41 }
42 return formatter.FormatClusterStatus(alertManagerStatus.Cluster)
43 }
44
View as plain text