mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 06:06:44 +00:00
Merge branch 'upstream_merge_v1.15.7' of https://github.com/maticnetwork/bor into upstream_merge_v1.15.11
This commit is contained in:
commit
373ce7dfcb
1 changed files with 24 additions and 27 deletions
|
|
@ -111,6 +111,11 @@ func VerbosityStringToInt(loglevel string) int {
|
||||||
|
|
||||||
//nolint:gocognit
|
//nolint:gocognit
|
||||||
func NewServer(config *Config, opts ...serverOption) (*Server, error) {
|
func NewServer(config *Config, opts ...serverOption) (*Server, error) {
|
||||||
|
// Enable metric collection if requested
|
||||||
|
if err := setupMetrics(config.Telemetry); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
// start pprof
|
// start pprof
|
||||||
if config.Pprof.Enabled {
|
if config.Pprof.Enabled {
|
||||||
pprof.SetMemProfileRate(config.Pprof.MemProfileRate)
|
pprof.SetMemProfileRate(config.Pprof.MemProfileRate)
|
||||||
|
|
@ -127,6 +132,9 @@ func NewServer(config *Config, opts ...serverOption) (*Server, error) {
|
||||||
// start the logger
|
// start the logger
|
||||||
setupLogger(config.Verbosity, *config.Logging)
|
setupLogger(config.Verbosity, *config.Logging)
|
||||||
|
|
||||||
|
// setup open telemetry collector
|
||||||
|
srv.setupOpenCollector()
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
|
|
@ -281,10 +289,6 @@ func NewServer(config *Config, opts ...serverOption) (*Server, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := srv.setupMetrics(config.Telemetry, config.Identity); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the node instance
|
// Set the node instance
|
||||||
srv.node = stack
|
srv.node = stack
|
||||||
|
|
||||||
|
|
@ -313,28 +317,16 @@ func (s *Server) Stop() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) setupMetrics(config *TelemetryConfig, serviceName string) error {
|
func setupMetrics(config *TelemetryConfig) error {
|
||||||
// Check the global metrics if they're matching with the provided config
|
if !config.Enabled {
|
||||||
if metrics.Enabled() != config.Enabled {
|
|
||||||
log.Warn(
|
|
||||||
"Metric misconfiguration, some of them might not be visible",
|
|
||||||
"metrics", metrics.Enabled,
|
|
||||||
"config.metrics", config.Enabled,
|
|
||||||
"config.expensive", config.Expensive,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the values anyways (for services which don't need immediate attention)
|
|
||||||
if config.Enabled {
|
|
||||||
metrics.Enable()
|
|
||||||
}
|
|
||||||
|
|
||||||
if !metrics.Enabled() {
|
|
||||||
// metrics are disabled, do not set up any sink
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if config.Expensive {
|
||||||
|
log.Warn("Expensive metrics are collected by default, please remove this flag", "flag", "--metrics.expensive")
|
||||||
|
}
|
||||||
|
|
||||||
log.Info("Enabling metrics collection")
|
log.Info("Enabling metrics collection")
|
||||||
|
metrics.Enable()
|
||||||
|
|
||||||
// influxdb
|
// influxdb
|
||||||
if v1Enabled, v2Enabled := config.InfluxDB.V1Enabled, config.InfluxDB.V2Enabled; v1Enabled || v2Enabled {
|
if v1Enabled, v2Enabled := config.InfluxDB.V1Enabled, config.InfluxDB.V2Enabled; v1Enabled || v2Enabled {
|
||||||
|
|
@ -387,14 +379,20 @@ func (s *Server) setupMetrics(config *TelemetryConfig, serviceName string) error
|
||||||
log.Info("Enabling metrics export to prometheus", "path", fmt.Sprintf("http://%s/debug/metrics/prometheus", config.PrometheusAddr))
|
log.Info("Enabling metrics export to prometheus", "path", fmt.Sprintf("http://%s/debug/metrics/prometheus", config.PrometheusAddr))
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.OpenCollectorEndpoint != "" {
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) setupOpenCollector() error {
|
||||||
|
config := s.config
|
||||||
|
|
||||||
|
if config.Telemetry.OpenCollectorEndpoint != "" {
|
||||||
// setup open collector tracer
|
// setup open collector tracer
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
res, err := resource.New(ctx,
|
res, err := resource.New(ctx,
|
||||||
resource.WithAttributes(
|
resource.WithAttributes(
|
||||||
// the service name used to display traces in backends
|
// the service name used to display traces in backends
|
||||||
semconv.ServiceNameKey.String(serviceName),
|
semconv.ServiceNameKey.String(config.Identity),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -405,7 +403,7 @@ func (s *Server) setupMetrics(config *TelemetryConfig, serviceName string) error
|
||||||
traceExporter, err := otlptracegrpc.New(
|
traceExporter, err := otlptracegrpc.New(
|
||||||
ctx,
|
ctx,
|
||||||
otlptracegrpc.WithInsecure(),
|
otlptracegrpc.WithInsecure(),
|
||||||
otlptracegrpc.WithEndpoint(config.OpenCollectorEndpoint),
|
otlptracegrpc.WithEndpoint(config.Telemetry.OpenCollectorEndpoint),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to create open telemetry tracer exporter for service: %v", err)
|
return fmt.Errorf("failed to create open telemetry tracer exporter for service: %v", err)
|
||||||
|
|
@ -427,9 +425,8 @@ func (s *Server) setupMetrics(config *TelemetryConfig, serviceName string) error
|
||||||
// set the tracer
|
// set the tracer
|
||||||
s.tracer = tracerProvider
|
s.tracer = tracerProvider
|
||||||
|
|
||||||
log.Info("Open collector tracing started", "address", config.OpenCollectorEndpoint)
|
log.Info("Open collector tracing started", "address", config.Telemetry.OpenCollectorEndpoint)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue