...

Source file src/github.com/prometheus/alertmanager/cli/cluster.go

Documentation: github.com/prometheus/alertmanager/cli

     1  // Copyright 2020 Prometheus Team
     2  // Licensed under the Apache License, Version 2.0 (the "License");
     3  // you may not use this file except in compliance with the License.
     4  // You may obtain a copy of the License at
     5  //
     6  // http://www.apache.org/licenses/LICENSE-2.0
     7  //
     8  // Unless required by applicable law or agreed to in writing, software
     9  // distributed under the License is distributed on an "AS IS" BASIS,
    10  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    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  // clusterCmd represents the cluster command
    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