Skip to content

Commit f50fdb3

Browse files
committed
Adding global node_id and integrating it into the observability package
1 parent 03f614c commit f50fdb3

File tree

7 files changed

+23
-4
lines changed

7 files changed

+23
-4
lines changed

config-peer2.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# ======================================================================================
2+
# NODE IDENTITY RELATED CONFIGURATIONS
3+
# ======================================================================================
4+
id: "peer_node_1"
5+
16
# ======================================================================================
27
# LOGGER RELATED CONFIGURATIONS
38
# ======================================================================================

config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# ======================================================================================
2+
# NODE IDENTITY RELATED CONFIGURATIONS
3+
# ======================================================================================
4+
id: "bootstrap_node_1"
5+
6+
17
# ======================================================================================
28
# LOGGER RELATED CONFIGURATIONS
39
# ======================================================================================

pkg/config/config.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ var global *Config
1414
// transports, MDBX nodes, and pprof profiling options. This struct aggregates
1515
// all major configuration sections for easy management and access throughout the application.
1616
type Config struct {
17+
// Id is the unique identifier for the node.
18+
Id string `yaml:"id"`
19+
1720
// Logger holds the configuration for the logging system, including log level and environment.
1821
Logger Logger `yaml:"logger"`
1922

pkg/observability/metrics.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/unpackdev/fdb/pkg/config"
77
"github.com/unpackdev/fdb/pkg/logger"
88
"go.opentelemetry.io/otel"
9+
"go.opentelemetry.io/otel/attribute"
910
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
1011
"go.opentelemetry.io/otel/metric"
1112
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
@@ -18,7 +19,7 @@ import (
1819
var ServiceStateCounter metric.Int64Counter
1920

2021
// InitMetrics initializes OpenTelemetry metrics.
21-
func InitMetrics(ctx context.Context, cfg config.MetricsConfig, logger logger.Logger) (metric.Meter, error) {
22+
func InitMetrics(ctx context.Context, nodeId string, cfg config.MetricsConfig, logger logger.Logger) (metric.Meter, error) {
2223
if !cfg.Enable {
2324
return otel.Meter("disabled"), nil
2425
}
@@ -37,6 +38,7 @@ func InitMetrics(ctx context.Context, cfg config.MetricsConfig, logger logger.Lo
3738
res, err := resource.New(ctx,
3839
resource.WithAttributes(
3940
semconv.ServiceNameKey.String(ServiceName),
41+
attribute.String("node_id", nodeId),
4042
),
4143
)
4244
if err != nil {

pkg/observability/observability.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func New(ctx context.Context, cfg config.Config, logger logger.Logger) (*Observa
3636
// Initialize Metrics
3737
if cfg.Observability.Metrics.Enable {
3838

39-
obs.Meter, err = InitMetrics(ctx, cfg.Observability.Metrics, logger)
39+
obs.Meter, err = InitMetrics(ctx, cfg.Id, cfg.Observability.Metrics, logger)
4040
if err != nil {
4141
obs.Logger.Error("Failed to initialize metrics", zap.Error(err))
4242
return nil, err
@@ -54,7 +54,7 @@ func New(ctx context.Context, cfg config.Config, logger logger.Logger) (*Observa
5454

5555
// Initialize Tracing
5656
if cfg.Observability.Tracing.Enable {
57-
obs.Tracer, obs.TracerProvider, err = InitTracer(ctx, cfg.Observability.Tracing, logger)
57+
obs.Tracer, obs.TracerProvider, err = InitTracer(ctx, cfg.Id, cfg.Observability.Tracing, logger)
5858
if err != nil {
5959
obs.Logger.Error("Failed to initialize tracer", zap.Error(err))
6060
return nil, err

pkg/observability/traces.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/unpackdev/fdb/pkg/logger"
88

99
"go.opentelemetry.io/otel"
10+
"go.opentelemetry.io/otel/attribute"
1011
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
1112
"go.opentelemetry.io/otel/sdk/resource"
1213
sdktrace "go.opentelemetry.io/otel/sdk/trace"
@@ -16,7 +17,7 @@ import (
1617
)
1718

1819
// InitTracer initializes OpenTelemetry tracing.
19-
func InitTracer(ctx context.Context, cfg config.TracingConfig, logger logger.Logger) (trace.Tracer, *sdktrace.TracerProvider, error) {
20+
func InitTracer(ctx context.Context, nodeId string, cfg config.TracingConfig, logger logger.Logger) (trace.Tracer, *sdktrace.TracerProvider, error) {
2021
if !cfg.Enable {
2122
return otel.Tracer("disabled"), nil, nil
2223
}
@@ -36,6 +37,7 @@ func InitTracer(ctx context.Context, cfg config.TracingConfig, logger logger.Log
3637
res, err := resource.New(ctx,
3738
resource.WithAttributes(
3839
semconv.ServiceNameKey.String(ServiceName),
40+
attribute.String("node_id", nodeId),
3941
),
4042
)
4143
if err != nil {

playground/suite/suite.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ func InitializeNodes(
243243

244244
// Build the node configuration
245245
nodeConfig := config.Config{
246+
Id: fmt.Sprintf("playground_node_%d", i),
246247
// Logger: config.Logger{
247248
// Enabled: true,
248249
// Environment: "development",

0 commit comments

Comments
 (0)