mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
parent
436166e447
commit
b71279d442
5 changed files with 37 additions and 15 deletions
|
|
@ -80,6 +80,7 @@ It expects the genesis file or the network name [ mainnet | testnet | devnet ] a
|
||||||
utils.MetricsInfluxDBUsernameFlag,
|
utils.MetricsInfluxDBUsernameFlag,
|
||||||
utils.MetricsInfluxDBPasswordFlag,
|
utils.MetricsInfluxDBPasswordFlag,
|
||||||
utils.MetricsInfluxDBTagsFlag,
|
utils.MetricsInfluxDBTagsFlag,
|
||||||
|
utils.MetricsInfluxDBIntervalFlag,
|
||||||
utils.MetricsInfluxDBTokenFlag,
|
utils.MetricsInfluxDBTokenFlag,
|
||||||
utils.MetricsInfluxDBBucketFlag,
|
utils.MetricsInfluxDBBucketFlag,
|
||||||
utils.MetricsInfluxDBOrganizationFlag,
|
utils.MetricsInfluxDBOrganizationFlag,
|
||||||
|
|
|
||||||
|
|
@ -300,6 +300,12 @@ func applyMetricConfig(ctx *cli.Context, cfg *XDCConfig) {
|
||||||
if ctx.IsSet(utils.MetricsInfluxDBTagsFlag.Name) {
|
if ctx.IsSet(utils.MetricsInfluxDBTagsFlag.Name) {
|
||||||
cfg.Metrics.InfluxDBTags = ctx.String(utils.MetricsInfluxDBTagsFlag.Name)
|
cfg.Metrics.InfluxDBTags = ctx.String(utils.MetricsInfluxDBTagsFlag.Name)
|
||||||
}
|
}
|
||||||
|
if ctx.IsSet(utils.MetricsInfluxDBIntervalFlag.Name) {
|
||||||
|
cfg.Metrics.InfluxDBInterval = ctx.Duration(utils.MetricsInfluxDBIntervalFlag.Name)
|
||||||
|
if cfg.Metrics.InfluxDBInterval <= 0 {
|
||||||
|
utils.Fatalf("invalid metrics InfluxDB interval %v: must be greater than 0", cfg.Metrics.InfluxDBInterval)
|
||||||
|
}
|
||||||
|
}
|
||||||
if ctx.IsSet(utils.MetricsEnableInfluxDBV2Flag.Name) {
|
if ctx.IsSet(utils.MetricsEnableInfluxDBV2Flag.Name) {
|
||||||
cfg.Metrics.EnableInfluxDBV2 = ctx.Bool(utils.MetricsEnableInfluxDBV2Flag.Name)
|
cfg.Metrics.EnableInfluxDBV2 = ctx.Bool(utils.MetricsEnableInfluxDBV2Flag.Name)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,7 @@ var (
|
||||||
utils.MetricsInfluxDBUsernameFlag,
|
utils.MetricsInfluxDBUsernameFlag,
|
||||||
utils.MetricsInfluxDBPasswordFlag,
|
utils.MetricsInfluxDBPasswordFlag,
|
||||||
utils.MetricsInfluxDBTagsFlag,
|
utils.MetricsInfluxDBTagsFlag,
|
||||||
|
utils.MetricsInfluxDBIntervalFlag,
|
||||||
utils.MetricsEnableInfluxDBV2Flag,
|
utils.MetricsEnableInfluxDBV2Flag,
|
||||||
utils.MetricsInfluxDBTokenFlag,
|
utils.MetricsInfluxDBTokenFlag,
|
||||||
utils.MetricsInfluxDBBucketFlag,
|
utils.MetricsInfluxDBBucketFlag,
|
||||||
|
|
|
||||||
|
|
@ -795,6 +795,13 @@ var (
|
||||||
Category: flags.MetricsCategory,
|
Category: flags.MetricsCategory,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MetricsInfluxDBIntervalFlag = &cli.DurationFlag{
|
||||||
|
Name: "metrics-influxdb-interval",
|
||||||
|
Usage: "Interval between metrics reports to InfluxDB (with time unit, e.g. 10s)",
|
||||||
|
Value: metrics.DefaultConfig.InfluxDBInterval,
|
||||||
|
Category: flags.MetricsCategory,
|
||||||
|
}
|
||||||
|
|
||||||
MetricsEnableInfluxDBV2Flag = &cli.BoolFlag{
|
MetricsEnableInfluxDBV2Flag = &cli.BoolFlag{
|
||||||
Name: "metrics-influxdbv2",
|
Name: "metrics-influxdbv2",
|
||||||
Usage: "Enable metrics export/push to an external InfluxDB v2 database",
|
Usage: "Enable metrics export/push to an external InfluxDB v2 database",
|
||||||
|
|
@ -1692,14 +1699,17 @@ func SetupMetrics(cfg *metrics.Config) {
|
||||||
bucket = cfg.InfluxDBBucket
|
bucket = cfg.InfluxDBBucket
|
||||||
organization = cfg.InfluxDBOrganization
|
organization = cfg.InfluxDBOrganization
|
||||||
tagsMap = SplitTagsFlag(cfg.InfluxDBTags)
|
tagsMap = SplitTagsFlag(cfg.InfluxDBTags)
|
||||||
|
interval = cfg.InfluxDBInterval
|
||||||
)
|
)
|
||||||
|
if (enableExport || enableExportV2) && interval <= 0 {
|
||||||
|
Fatalf("Invalid InfluxDB metrics interval %v, must be > 0", interval)
|
||||||
|
}
|
||||||
if enableExport {
|
if enableExport {
|
||||||
log.Info("Enabling metrics export to InfluxDB")
|
log.Info("Enabling metrics export to InfluxDB", "interval", interval)
|
||||||
go influxdb.InfluxDBWithTags(metrics.DefaultRegistry, 10*time.Second, endpoint, database, username, password, "geth.", tagsMap)
|
go influxdb.InfluxDBWithTags(metrics.DefaultRegistry, interval, endpoint, database, username, password, "geth.", tagsMap)
|
||||||
} else if enableExportV2 {
|
} else if enableExportV2 {
|
||||||
tagsMap := SplitTagsFlag(cfg.InfluxDBTags)
|
log.Info("Enabling metrics export to InfluxDB (v2)", "interval", interval)
|
||||||
log.Info("Enabling metrics export to InfluxDB (v2)")
|
go influxdb.InfluxDBV2WithTags(metrics.DefaultRegistry, interval, endpoint, token, bucket, organization, "geth.", tagsMap)
|
||||||
go influxdb.InfluxDBV2WithTags(metrics.DefaultRegistry, 10*time.Second, endpoint, token, bucket, organization, "geth.", tagsMap)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expvar exporter.
|
// Expvar exporter.
|
||||||
|
|
|
||||||
|
|
@ -16,18 +16,21 @@
|
||||||
|
|
||||||
package metrics
|
package metrics
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
// Config contains the configuration for the metric collection.
|
// Config contains the configuration for the metric collection.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Enabled bool `toml:",omitempty"`
|
Enabled bool `toml:",omitempty"`
|
||||||
EnabledExpensive bool `toml:"-"`
|
EnabledExpensive bool `toml:"-"`
|
||||||
HTTP string `toml:",omitempty"`
|
HTTP string `toml:",omitempty"`
|
||||||
Port int `toml:",omitempty"`
|
Port int `toml:",omitempty"`
|
||||||
EnableInfluxDB bool `toml:",omitempty"`
|
EnableInfluxDB bool `toml:",omitempty"`
|
||||||
InfluxDBEndpoint string `toml:",omitempty"`
|
InfluxDBEndpoint string `toml:",omitempty"`
|
||||||
InfluxDBDatabase string `toml:",omitempty"`
|
InfluxDBDatabase string `toml:",omitempty"`
|
||||||
InfluxDBUsername string `toml:",omitempty"`
|
InfluxDBUsername string `toml:",omitempty"`
|
||||||
InfluxDBPassword string `toml:",omitempty"`
|
InfluxDBPassword string `toml:",omitempty"`
|
||||||
InfluxDBTags string `toml:",omitempty"`
|
InfluxDBTags string `toml:",omitempty"`
|
||||||
|
InfluxDBInterval time.Duration `toml:",omitempty"`
|
||||||
|
|
||||||
EnableInfluxDBV2 bool `toml:",omitempty"`
|
EnableInfluxDBV2 bool `toml:",omitempty"`
|
||||||
InfluxDBToken string `toml:",omitempty"`
|
InfluxDBToken string `toml:",omitempty"`
|
||||||
|
|
@ -47,6 +50,7 @@ var DefaultConfig = Config{
|
||||||
InfluxDBUsername: "test",
|
InfluxDBUsername: "test",
|
||||||
InfluxDBPassword: "test",
|
InfluxDBPassword: "test",
|
||||||
InfluxDBTags: "host=localhost",
|
InfluxDBTags: "host=localhost",
|
||||||
|
InfluxDBInterval: 10 * time.Second,
|
||||||
|
|
||||||
// influxdbv2-specific flags
|
// influxdbv2-specific flags
|
||||||
EnableInfluxDBV2: false,
|
EnableInfluxDBV2: false,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue