...

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

Documentation: github.com/prometheus/alertmanager/cli

     1  // Copyright 2018 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  	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  // configCmd represents the config command
    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