Files
prysm/shared/cmd/flags.go
Leandro Lugaresi d061c784e0 Added Prometheus Client and p2p Metrics (#673)
* Added prometheus client and p2p metrics

* Avoid run the adapter if the metrics are disabled

* fix visibility issue

* Fix invalid p2p.Message sent to Adapters

The middlewares (adapters) must receive the complete message to avoid
problems and the main Handler must get the values from middlewares

Also, added tests and comments for metrics package

* Added logrus hook collector

This collector is used to collect counters of log messages.
The main purpose of these metric is to know how many warnings and errors
the system are getting.

* Add hook when register the prometheus service

* update bazel builds

* fix emit tests and remove unused imports

* gazelle --fix

* remove unused logger

* move prometheus package to shared directory

* better metric names and fix metric paths

* improve metric tests and start to use promauto

* added prometheus initial documentation

* fix tests

* fix type differences with go get and bazel

* Fix service test
2018-11-15 07:54:45 -05:00

91 lines
3.3 KiB
Go

// Package cmd defines the command line flags for the shared utlities.
package cmd
import (
"github.com/ethereum/go-ethereum/node"
"github.com/urfave/cli"
)
var (
// VerbosityFlag defines the logrus configuration.
VerbosityFlag = cli.StringFlag{
Name: "verbosity",
Usage: "Logging verbosity (debug, info=default, warn, error, fatal, panic)",
Value: "info",
}
// IPCPathFlag defines the filename of a pipe within the datadir.
IPCPathFlag = DirectoryFlag{
Name: "ipcpath",
Usage: "Filename for IPC socket/pipe within the datadir (explicit paths escape it)",
}
// DataDirFlag defines a path on disk.
DataDirFlag = DirectoryFlag{
Name: "datadir",
Usage: "Data directory for the databases and keystore",
Value: DirectoryString{node.DefaultDataDir()},
}
// NetworkIDFlag defines the specific network identifier.
NetworkIDFlag = cli.Uint64Flag{
Name: "networkid",
Usage: "Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby)",
Value: 1,
}
// PasswordFileFlag defines the path to the user's account password file.
PasswordFileFlag = cli.StringFlag{
Name: "password",
Usage: "Password file to use for non-interactive password input",
Value: "",
}
// RPCProviderFlag defines a http endpoint flag to connect to mainchain.
RPCProviderFlag = cli.StringFlag{
Name: "rpc",
Usage: "HTTP-RPC server end point to use to connect to mainchain.",
Value: "http://localhost:8545/",
}
// EnableTracingFlag defines a flag to enable p2p message tracing.
EnableTracingFlag = cli.BoolFlag{
Name: "enable-tracing",
Usage: "Enable request tracing.",
}
// TracingEndpointFlag flag defines the http endpoint for serving traces to Jaeger.
TracingEndpointFlag = cli.StringFlag{
Name: "tracing-endpoint",
Usage: "Tracing endpoint defines where beacon chain traces are exposed to Jaeger.",
Value: "http://127.0.0.1:14268",
}
// TraceSampleFractionFlag defines a flag to indicate what fraction of p2p
// messages are sampled for tracing.
TraceSampleFractionFlag = cli.Float64Flag{
Name: "trace-sample-fraction",
Usage: "Indicate what fraction of p2p messages are sampled for tracing.",
Value: 0.20,
}
// DisableMonitoringFlag defines a flag to disable the metrics collection.
DisableMonitoringFlag = cli.BoolFlag{
Name: "disable-monitoring",
Usage: "Disable monitoring service.",
}
// MonitoringPortFlag defines the http port used to serve prometheus metrics.
MonitoringPortFlag = cli.Int64Flag{
Name: "monitoring-flag",
Usage: "Port used to listening and respond metrics for prometheus.",
Value: 8080,
}
// KeystoreDirectoryFlag defines a flag to indicate where the keystore of the user
// is located.
KeystoreDirectoryFlag = DirectoryFlag{
Name: "keystore-dir",
Usage: "Keystore directory indicates which directory the keystore is located.",
}
// KeystorePasswordFlag defines the password that will unlock the keystore file.
KeystorePasswordFlag = cli.StringFlag{
Name: "keystore-password",
Usage: "Keystore password is used to unlock the keystore so that the users decrypted keys can be used.",
}
// BootstrapNode tells the beacon node which bootstrap node to connect to
BootstrapNode = cli.StringFlag{
Name: "bootstrap-node",
Usage: "The address of bootstrap node. Beacon node will connect for peer discovery via DHT",
}
)