Documentation ¶
Index ¶
- Variables
- func CmdEnvironmentMetrics(metricType MetricType, stream bool, mins int, t Transformer, im IMetrics) error
- func CmdMetrics(svcName string, metricType MetricType, ...) error
- func CmdServiceMetrics(metricType MetricType, stream bool, mins int, service *models.Service, ...) error
- type CSVTransformer
- func (csv *CSVTransformer) TransformGroupCPU(metrics *[]models.Metrics)
- func (csv *CSVTransformer) TransformGroupMemory(metrics *[]models.Metrics)
- func (csv *CSVTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
- func (csv *CSVTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
- func (csv *CSVTransformer) TransformSingleCPU(metric *models.Metrics)
- func (csv *CSVTransformer) TransformSingleMemory(metric *models.Metrics)
- func (csv *CSVTransformer) TransformSingleNetworkIn(metric *models.Metrics)
- func (csv *CSVTransformer) TransformSingleNetworkOut(metric *models.Metrics)
- func (csv *CSVTransformer) WriteHeadersCPU()
- func (csv *CSVTransformer) WriteHeadersMemory()
- func (csv *CSVTransformer) WriteHeadersNetworkIn()
- func (csv *CSVTransformer) WriteHeadersNetworkOut()
- type IMetrics
- type JSONTransformer
- func (j *JSONTransformer) TransformGroupCPU(metrics *[]models.Metrics)
- func (j *JSONTransformer) TransformGroupMemory(metrics *[]models.Metrics)
- func (j *JSONTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
- func (j *JSONTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
- func (j *JSONTransformer) TransformSingleCPU(metric *models.Metrics)
- func (j *JSONTransformer) TransformSingleMemory(metric *models.Metrics)
- func (j *JSONTransformer) TransformSingleNetworkIn(metric *models.Metrics)
- func (j *JSONTransformer) TransformSingleNetworkOut(metric *models.Metrics)
- type MetricType
- type SMetrics
- type TextTransformer
- func (text *TextTransformer) TransformGroupCPU(metrics *[]models.Metrics)
- func (text *TextTransformer) TransformGroupMemory(metrics *[]models.Metrics)
- func (text *TextTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
- func (text *TextTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
- func (text *TextTransformer) TransformSingleCPU(metric *models.Metrics)
- func (text *TextTransformer) TransformSingleMemory(metric *models.Metrics)
- func (text *TextTransformer) TransformSingleNetworkIn(metric *models.Metrics)
- func (text *TextTransformer) TransformSingleNetworkOut(metric *models.Metrics)
- type Transformer
Constants ¶
This section is empty.
Variables ¶
var CPUSubCmd = models.Command{ Name: "cpu", ShortHelp: "Print service and environment CPU metrics in your local time zone", LongHelp: "<code>metrics cpu</code> prints out CPU metrics for your environment or individual services. " + "You can print out metrics in csv, json, plain text, or spark lines format. " + "If you want plain text format, omit the <code>--json</code> and <code>--csv</code> flags. " + "You can only stream metrics using plain text or spark lines formats. " + "To print out metrics for every service in your environment, omit the <code>SERVICE_NAME</code> argument. " + "Otherwise you may choose a service, such as an app service, to retrieve metrics for. " + "Here are some sample commands\n\n" + "<pre>\ndatica -E \"<your_env_name>\" metrics cpu\n" + "datica -E \"<your_env_name>\" metrics cpu app01 --stream\n" + "datica -E \"<your_env_name>\" metrics cpu --json\n" + "datica -E \"<your_env_name>\" metrics cpu db01 --csv -m 60\n</pre>", CmdFunc: func(settings *models.Settings) func(cmd *cli.Cmd) { return func(subCmd *cli.Cmd) { serviceName := subCmd.StringArg("SERVICE_NAME", "", "The name of the service to print metrics for") json := subCmd.BoolOpt("json", false, "Output the data as json") csv := subCmd.BoolOpt("csv", false, "Output the data as csv") text := subCmd.BoolOpt("text", true, "Output the data in plain text") stream := subCmd.BoolOpt("stream", false, "Repeat calls once per minute until this process is interrupted.") mins := subCmd.IntOpt("m mins", 1, "How many minutes worth of metrics to retrieve.") subCmd.Action = func() { if _, err := auth.New(settings, prompts.New()).Signin(); err != nil { logrus.Fatal(err.Error()) } if err := config.CheckRequiredAssociation(settings); err != nil { logrus.Fatal(err.Error()) } err := CmdMetrics(*serviceName, CPU, *json, *csv, *text, *stream, *mins, New(settings), services.New(settings)) if err != nil { logrus.Fatal(err.Error()) } } subCmd.Spec = "[SERVICE_NAME] [(--json | --csv | --text)] [--stream] [-m]" } }, }
var Cmd = models.Command{ Name: "metrics", ShortHelp: "Print service and environment metrics in your local time zone", LongHelp: "The <code>metrics</code> command gives access to environment metrics or individual service metrics through a variety of formats. " + "This is useful for checking on the status and performance of your application or environment as a whole. " + "The metrics command cannot be run directly but has subcommands.", CmdFunc: func(settings *models.Settings) func(cmd *cli.Cmd) { return func(cmd *cli.Cmd) { cmd.CommandLong(CPUSubCmd.Name, CPUSubCmd.ShortHelp, CPUSubCmd.LongHelp, CPUSubCmd.CmdFunc(settings)) cmd.CommandLong(MemorySubCmd.Name, MemorySubCmd.ShortHelp, MemorySubCmd.LongHelp, MemorySubCmd.CmdFunc(settings)) cmd.CommandLong(NetworkInSubCmd.Name, NetworkInSubCmd.ShortHelp, NetworkInSubCmd.LongHelp, NetworkInSubCmd.CmdFunc(settings)) cmd.CommandLong(NetworkOutSubCmd.Name, NetworkOutSubCmd.ShortHelp, NetworkOutSubCmd.LongHelp, NetworkOutSubCmd.CmdFunc(settings)) } }, }
Cmd is the contract between the user and the CLI. This specifies the command name, arguments, and required/optional arguments and flags for the command.
var MemorySubCmd = models.Command{ Name: "memory", ShortHelp: "Print service and environment memory metrics in your local time zone", LongHelp: "<code>metrics memory</code> prints out memory metrics for your environment or individual services. " + "You can print out metrics in csv, json, plain text, or spark lines format. " + "If you want plain text format, omit the <code>--json</code> and <code>--csv</code> flags. " + "You can only stream metrics using plain text or spark lines formats. " + "To print out metrics for every service in your environment, omit the <code>SERVICE_NAME</code> argument. " + "Otherwise you may choose a service, such as an app service, to retrieve metrics for. " + "Here are some sample commands\n\n" + "<pre>\ndatica -E \"<your_env_name>\" metrics memory\n" + "datica -E \"<your_env_name>\" metrics memory app01 --stream\n" + "datica -E \"<your_env_name>\" metrics memory --json\n" + "datica -E \"<your_env_name>\" metrics memory db01 --csv -m 60\n</pre>", CmdFunc: func(settings *models.Settings) func(cmd *cli.Cmd) { return func(subCmd *cli.Cmd) { serviceName := subCmd.StringArg("SERVICE_NAME", "", "The name of the service to print metrics for") json := subCmd.BoolOpt("json", false, "Output the data as json") csv := subCmd.BoolOpt("csv", false, "Output the data as csv") text := subCmd.BoolOpt("text", true, "Output the data in plain text") stream := subCmd.BoolOpt("stream", false, "Repeat calls once per minute until this process is interrupted.") mins := subCmd.IntOpt("m mins", 1, "How many minutes worth of metrics to retrieve.") subCmd.Action = func() { if _, err := auth.New(settings, prompts.New()).Signin(); err != nil { logrus.Fatal(err.Error()) } if err := config.CheckRequiredAssociation(settings); err != nil { logrus.Fatal(err.Error()) } err := CmdMetrics(*serviceName, Memory, *json, *csv, *text, *stream, *mins, New(settings), services.New(settings)) if err != nil { logrus.Fatal(err.Error()) } } subCmd.Spec = "[SERVICE_NAME] [(--json | --csv | --text)] [--stream] [-m]" } }, }
var NetworkInSubCmd = models.Command{ Name: "network-in", ShortHelp: "Print service and environment received network data metrics in your local time zone", LongHelp: "<code>metrics network-in</code> prints out received network metrics for your environment or individual services. " + "You can print out metrics in csv, json, plain text, or spark lines format. " + "If you want plain text format, omit the <code>--json</code> and <code>--csv</code> flags. " + "You can only stream metrics using plain text or spark lines formats. " + "To print out metrics for every service in your environment, omit the <code>SERVICE_NAME</code> argument. " + "Otherwise you may choose a service, such as an app service, to retrieve metrics for. Here are some sample commands\n\n" + "<pre>\ndatica -E \"<your_env_name>\" metrics network-in\n" + "datica -E \"<your_env_name>\" metrics network-in app01 --stream\n" + "datica -E \"<your_env_name>\" metrics network-in --json\n" + "datica -E \"<your_env_name>\" metrics network-in db01 --csv -m 60\n</pre>", CmdFunc: func(settings *models.Settings) func(cmd *cli.Cmd) { return func(subCmd *cli.Cmd) { serviceName := subCmd.StringArg("SERVICE_NAME", "", "The name of the service to print metrics for") json := subCmd.BoolOpt("json", false, "Output the data as json") csv := subCmd.BoolOpt("csv", false, "Output the data as csv") text := subCmd.BoolOpt("text", true, "Output the data in plain text") stream := subCmd.BoolOpt("stream", false, "Repeat calls once per minute until this process is interrupted.") mins := subCmd.IntOpt("m mins", 1, "How many minutes worth of metrics to retrieve.") subCmd.Action = func() { if _, err := auth.New(settings, prompts.New()).Signin(); err != nil { logrus.Fatal(err.Error()) } if err := config.CheckRequiredAssociation(settings); err != nil { logrus.Fatal(err.Error()) } err := CmdMetrics(*serviceName, NetworkIn, *json, *csv, *text, *stream, *mins, New(settings), services.New(settings)) if err != nil { logrus.Fatal(err.Error()) } } subCmd.Spec = "[SERVICE_NAME] [(--json | --csv | --text)] [--stream] [-m]" } }, }
var NetworkOutSubCmd = models.Command{ Name: "network-out", ShortHelp: "Print service and environment transmitted network data metrics in your local time zone", LongHelp: "<code>metrics network-out</code> prints out transmitted network metrics for your environment or individual services. " + "You can print out metrics in csv, json, plain text, or spark lines format. " + "If you want plain text format, simply omit the <code>--json</code> and <code>--csv</code> flags. " + "You can only stream metrics using plain text or spark lines formats. " + "To print out metrics for every service in your environment, omit the <code>SERVICE_NAME</code> argument. " + "Otherwise you may choose a service, such as an app service, to retrieve metrics for. " + "Here are some sample commands\n\n" + "<pre>\ndatica -E \"<your_env_name>\" metrics network-out\n" + "datica -E \"<your_env_name>\" metrics network-out app01 --stream\n" + "datica -E \"<your_env_name>\" metrics network-out --json\n" + "datica -E \"<your_env_name>\" metrics network-out db01 --csv -m 60\n</pre>", CmdFunc: func(settings *models.Settings) func(cmd *cli.Cmd) { return func(subCmd *cli.Cmd) { serviceName := subCmd.StringArg("SERVICE_NAME", "", "The name of the service to print metrics for") json := subCmd.BoolOpt("json", false, "Output the data as json") csv := subCmd.BoolOpt("csv", false, "Output the data as csv") text := subCmd.BoolOpt("text", true, "Output the data in plain text") stream := subCmd.BoolOpt("stream", false, "Repeat calls once per minute until this process is interrupted.") mins := subCmd.IntOpt("m mins", 1, "How many minutes worth of metrics to retrieve.") subCmd.Action = func() { if _, err := auth.New(settings, prompts.New()).Signin(); err != nil { logrus.Fatal(err.Error()) } if err := config.CheckRequiredAssociation(settings); err != nil { logrus.Fatal(err.Error()) } err := CmdMetrics(*serviceName, NetworkOut, *json, *csv, *text, *stream, *mins, New(settings), services.New(settings)) if err != nil { logrus.Fatal(err.Error()) } } subCmd.Spec = "[SERVICE_NAME] [(--json | --csv | --text)] [--stream] [-m]" } }, }
Functions ¶
func CmdEnvironmentMetrics ¶
func CmdEnvironmentMetrics(metricType MetricType, stream bool, mins int, t Transformer, im IMetrics) error
func CmdMetrics ¶
func CmdMetrics(svcName string, metricType MetricType, jsonFlag, csvFlag, textFlag, streamFlag bool, mins int, im IMetrics, is services.IServices) error
CmdMetrics prints out metrics for a given service or if the service is not specified, metrics for the entire environment are printed.
func CmdServiceMetrics ¶
func CmdServiceMetrics(metricType MetricType, stream bool, mins int, service *models.Service, t Transformer, im IMetrics) error
Types ¶
type CSVTransformer ¶
type CSVTransformer struct { HeadersWritten bool GroupMode bool Buffer *bytes.Buffer Writer *csv.Writer }
CSVTransformer is a concrete implementation of Transformer transforming data into CSV format.
func (*CSVTransformer) TransformGroupCPU ¶
func (csv *CSVTransformer) TransformGroupCPU(metrics *[]models.Metrics)
TransformGroupCPU transforms an entire environment's cpu data into csv format. This outputs TransformSingleCPU for each service in the environment.
func (*CSVTransformer) TransformGroupMemory ¶
func (csv *CSVTransformer) TransformGroupMemory(metrics *[]models.Metrics)
TransformGroupMemory transforms an entire environment's memory data into csv format. This outputs TransformSingleMemory for each service in the environment.
func (*CSVTransformer) TransformGroupNetworkIn ¶
func (csv *CSVTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
TransformGroupNetworkIn transforms an entire environment's received network data into csv format. This outputs TransformSingleNetworkIn for each service in the environment.
func (*CSVTransformer) TransformGroupNetworkOut ¶
func (csv *CSVTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
TransformGroupNetworkOut transforms an entire environment's transmitted network data into csv format. This outputs TransformSingleNetworkOut for each service in the environment.
func (*CSVTransformer) TransformSingleCPU ¶
func (csv *CSVTransformer) TransformSingleCPU(metric *models.Metrics)
TransformSingleCPU transforms a single service's CPU data into csv format.
func (*CSVTransformer) TransformSingleMemory ¶
func (csv *CSVTransformer) TransformSingleMemory(metric *models.Metrics)
TransformSingleMemory transforms a single service's memory data into csv format.
func (*CSVTransformer) TransformSingleNetworkIn ¶
func (csv *CSVTransformer) TransformSingleNetworkIn(metric *models.Metrics)
TransformSingleNetworkIn transforms a single service's received network data into csv format.
func (*CSVTransformer) TransformSingleNetworkOut ¶
func (csv *CSVTransformer) TransformSingleNetworkOut(metric *models.Metrics)
TransformSingleNetworkOut transforms a single service's transmitted network data into csv format.
func (*CSVTransformer) WriteHeadersCPU ¶
func (csv *CSVTransformer) WriteHeadersCPU()
WriteHeadersCPU outputs the csv headers needed for cpu data. If GroupMode is enabled, the service name is the first header.
func (*CSVTransformer) WriteHeadersMemory ¶
func (csv *CSVTransformer) WriteHeadersMemory()
WriteHeadersMemory outputs the csv headers needed for memory data. If GroupMode is enabled, the service name is the first header.
func (*CSVTransformer) WriteHeadersNetworkIn ¶
func (csv *CSVTransformer) WriteHeadersNetworkIn()
WriteHeadersNetworkIn outputs the csv headers needed for received network data. If GroupMode is enabled, the service name is the first header.
func (*CSVTransformer) WriteHeadersNetworkOut ¶
func (csv *CSVTransformer) WriteHeadersNetworkOut()
WriteHeadersNetworkOut outputs the csv headers needed for transmitted network data. If GroupMode is enabled, the service name is the first header.
type IMetrics ¶
type IMetrics interface { RetrieveEnvironmentMetrics(mins int) (*[]models.Metrics, error) RetrieveServiceMetrics(mins int, svcID string) (*models.Metrics, error) }
IMetrics
type JSONTransformer ¶
type JSONTransformer struct{}
JSONTransformer is a concrete implementation of Transformer transforming data into pretty printed JSON format.
func (*JSONTransformer) TransformGroupCPU ¶
func (j *JSONTransformer) TransformGroupCPU(metrics *[]models.Metrics)
TransformGroupCPU transforms an entire environment's cpu data into json format. This outputs TransformSingleCPU for every service in the environment.
func (*JSONTransformer) TransformGroupMemory ¶
func (j *JSONTransformer) TransformGroupMemory(metrics *[]models.Metrics)
TransformGroupMemory transforms an entire environment's memory data into json format. This outputs TransformSingleMemory for every service in the environment.
func (*JSONTransformer) TransformGroupNetworkIn ¶
func (j *JSONTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
TransformGroupNetworkIn transforms an entire environment's received network data into json format. This outputs TransformSingleNetworkIn for every service in the environment.
func (*JSONTransformer) TransformGroupNetworkOut ¶
func (j *JSONTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
TransformGroupNetworkOut transforms an entire environment's transmitted network data into json format. This outputs TransformSingleNetworkOut for every service in the environment.
func (*JSONTransformer) TransformSingleCPU ¶
func (j *JSONTransformer) TransformSingleCPU(metric *models.Metrics)
TransformSingleCPU transforms a single service's cpu data into json format.
func (*JSONTransformer) TransformSingleMemory ¶
func (j *JSONTransformer) TransformSingleMemory(metric *models.Metrics)
TransformSingleMemory transforms a single service's memory data into json format.
func (*JSONTransformer) TransformSingleNetworkIn ¶
func (j *JSONTransformer) TransformSingleNetworkIn(metric *models.Metrics)
TransformSingleNetworkIn transforms a single service's received network data into json format.
func (*JSONTransformer) TransformSingleNetworkOut ¶
func (j *JSONTransformer) TransformSingleNetworkOut(metric *models.Metrics)
TransformSingleNetworkOut transforms a single service's transmitted network data into json format.
type SMetrics ¶
SMetrics is a concrete implementation of IMetrics
func (*SMetrics) RetrieveEnvironmentMetrics ¶
RetrieveEnvironmentMetrics retrieves metrics data for all services in the associated environment.
type TextTransformer ¶
type TextTransformer struct{}
TextTransformer is a concrete implementation of Transformer transforming data into plain text.
func (*TextTransformer) TransformGroupCPU ¶
func (text *TextTransformer) TransformGroupCPU(metrics *[]models.Metrics)
TransformGroupCPU transforms an entire environment's cpu data into text format. This outputs TransformSingleCPU for every service in the environment.
func (*TextTransformer) TransformGroupMemory ¶
func (text *TextTransformer) TransformGroupMemory(metrics *[]models.Metrics)
TransformGroupMemory transforms an entire environment's memory data into text format. This outputs TransformSingleMemory for every service in the environment.
func (*TextTransformer) TransformGroupNetworkIn ¶
func (text *TextTransformer) TransformGroupNetworkIn(metrics *[]models.Metrics)
TransformGroupNetworkIn transforms an entire environment's received network data into text format. This outputs TransformSingleNetworkIn for every service in the environment.
func (*TextTransformer) TransformGroupNetworkOut ¶
func (text *TextTransformer) TransformGroupNetworkOut(metrics *[]models.Metrics)
TransformGroupNetworkOut transforms an entire environment's transmitted network data into text format. This outputs TransformSingleNetworkOut for every service in the environment.
func (*TextTransformer) TransformSingleCPU ¶
func (text *TextTransformer) TransformSingleCPU(metric *models.Metrics)
TransformSingleCPU transforms a single service's cpu data into text format.
func (*TextTransformer) TransformSingleMemory ¶
func (text *TextTransformer) TransformSingleMemory(metric *models.Metrics)
TransformSingleMemory transforms a single service's memory data into text format.
func (*TextTransformer) TransformSingleNetworkIn ¶
func (text *TextTransformer) TransformSingleNetworkIn(metric *models.Metrics)
TransformSingleNetworkIn transforms a single service's received network data into text format.
func (*TextTransformer) TransformSingleNetworkOut ¶
func (text *TextTransformer) TransformSingleNetworkOut(metric *models.Metrics)
TransformSingleNetworkOut transforms a single service's transmitted network data into text format.
type Transformer ¶
type Transformer interface { TransformGroupCPU(*[]models.Metrics) TransformGroupMemory(*[]models.Metrics) TransformGroupNetworkIn(*[]models.Metrics) TransformGroupNetworkOut(*[]models.Metrics) TransformSingleCPU(*models.Metrics) TransformSingleMemory(*models.Metrics) TransformSingleNetworkIn(*models.Metrics) TransformSingleNetworkOut(*models.Metrics) }
Transformer specifies that all concrete implementations should be able to transform an entire environments metrics data (group) or a single service metrics data (single).