Merge branch 'upstream_merge_v1.15.7' of https://github.com/maticnetwork/bor into upstream_merge_v1.15.11

This commit is contained in:
Pratik Patil 2025-05-27 13:22:51 +05:30
commit 373ce7dfcb
No known key found for this signature in database
GPG key ID: AFDCA496554874B3

View file

@ -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
} }