parent
614526b16d
commit
cdbb3b7089
@ -11,6 +11,7 @@ import (
|
||||
"go.dev.pztrn.name/metricator/internal/configuration"
|
||||
"go.dev.pztrn.name/metricator/internal/logger"
|
||||
"go.dev.pztrn.name/metricator/pkg/client"
|
||||
"go.dev.pztrn.name/metricator/pkg/schema"
|
||||
)
|
||||
|
||||
// nolint:gochecknoglobals
|
||||
@ -21,6 +22,7 @@ var (
|
||||
metricatorTimeout = flag.Int("metricator-timeout", 5, "Timeout for requests sent to Metricator.")
|
||||
metricsList = flag.Bool("metrics-list", false, "Show metrics list. Requires 'application' parameter.")
|
||||
metric = flag.String("metric", "", "Metric data to retrieve. Requires 'application' parameter.")
|
||||
output = flag.String("output", "json", "Output format. Can be 'json' or 'plain-by-line'.")
|
||||
)
|
||||
|
||||
func main() {
|
||||
@ -94,6 +96,8 @@ func main() {
|
||||
data = c.GetMetric(*application, *metric)
|
||||
}
|
||||
|
||||
switch *output {
|
||||
case "json":
|
||||
dataAsBytes, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
logger.Infoln("Failed to marshal data from Metricator:", err.Error())
|
||||
@ -102,4 +106,51 @@ func main() {
|
||||
}
|
||||
|
||||
fmt.Println(string(dataAsBytes))
|
||||
case "plain-by-lines":
|
||||
// For plain mode if we request metric - we should just print it and exit.
|
||||
if *metric != "" {
|
||||
fmt.Println(data)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
dataToPrint := []string{}
|
||||
|
||||
switch {
|
||||
case *appsList:
|
||||
appsListData, ok := data.(schema.AppsList)
|
||||
if !ok {
|
||||
logger.Infoln("Failed to cast parsed data into schema.AppsList!")
|
||||
|
||||
os.Exit(3)
|
||||
}
|
||||
|
||||
for _, app := range appsListData {
|
||||
dataToPrint = append(dataToPrint, app)
|
||||
}
|
||||
case *metric != "":
|
||||
metricData, ok := data.(string)
|
||||
if !ok {
|
||||
logger.Infoln("Failed to cast parsed data into string!")
|
||||
|
||||
os.Exit(3)
|
||||
}
|
||||
|
||||
dataToPrint = append(dataToPrint, metricData)
|
||||
case *metricsList:
|
||||
metricsData, ok := data.(schema.Metrics)
|
||||
if !ok {
|
||||
logger.Infoln("Failed to cast parsed data into schema.Metrics!")
|
||||
|
||||
os.Exit(3)
|
||||
}
|
||||
|
||||
for _, metric := range metricsData {
|
||||
dataToPrint = append(dataToPrint, metric.Name)
|
||||
}
|
||||
}
|
||||
|
||||
for _, line := range dataToPrint {
|
||||
fmt.Println(line)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user