Skip to content

Commit f21a3c5

Browse files
Merge pull request #34 from DoWithLogic/32-observabilityinittracerprovider-breaks-interface-segregation-principle
fix #32
2 parents f6f399b + 2109951 commit f21a3c5

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

cmd/api/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ func main() {
2929
// Initialize observability components if observability is enabled in the configuration.
3030
if cfg.Observability.Enable {
3131
// Initialize the tracer provider for distributed tracing.
32-
tracer, err := observability.InitTracerProvider(cfg)
32+
tracer, err := observability.InitTracerProvider(cfg.Observability, cfg.App)
3333
if err != nil {
3434
log.Warn("Failed to initialize tracer: ", err)
3535
}
3636

3737
// Initialize the meter provider for metrics collection.
38-
meter, err := observability.InitMeterProvider(cfg)
38+
meter, err := observability.InitMeterProvider(cfg.Observability, cfg.App)
3939
if err != nil {
4040
log.Warn("Failed to initialize meter: ", err)
4141
}

pkg/observability/metrics.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ const (
2828
// Returns:
2929
// - A pointer to an OpenTelemetry MeterProvider.
3030
// - An error if any occurs during initialization or setting up the provider.
31-
func InitMeterProvider(config config.Config) (*sdkmetric.MeterProvider, error) {
31+
func InitMeterProvider(observability config.ObservabilityConfig, app config.AppConfig) (*sdkmetric.MeterProvider, error) {
3232
var (
3333
exporter sdkmetric.Exporter
3434
err error
3535
)
3636

3737
// Determine the type of metric exporter based on the observability mode.
38-
switch config.Observability.Mode {
38+
switch observability.Mode {
3939
case OTLP_HTTP_MODE:
4040
exporter, err = otlpmetrichttp.New(
4141
context.Background(),
@@ -57,7 +57,7 @@ func InitMeterProvider(config config.Config) (*sdkmetric.MeterProvider, error) {
5757
// Create and configure the MeterProvider with a periodic reader for exporting metrics.
5858
mp := sdkmetric.NewMeterProvider(
5959
sdkmetric.WithReader(sdkmetric.NewPeriodicReader(exporter, sdkmetric.WithInterval(2*time.Second))),
60-
sdkmetric.WithResource(initResource(config.App.Name, config.App.Version, config.App.Environment)),
60+
sdkmetric.WithResource(initResource(app.Name, app.Version, app.Environment)),
6161
)
6262

6363
// Set the MeterProvider as the global meter provider.

pkg/observability/tracer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import (
1515
// initializeTracerProvider initializes and configures a tracer provider based on the observability mode from the configuration.
1616
// It supports OTLP gRPC, OTLP HTTP, and stdout (default) exporters for trace data.
1717
// Returns a tracer provider instance or an error if initialization fails.
18-
func InitTracerProvider(config config.Config) (*sdktrace.TracerProvider, error) {
18+
func InitTracerProvider(observabilityCfg config.ObservabilityConfig, appCfg config.AppConfig) (*sdktrace.TracerProvider, error) {
1919
var (
2020
exporter sdktrace.SpanExporter
2121
err error
2222
)
2323

2424
// Determine the exporter type based on the observability mode.
25-
switch config.Observability.Mode {
25+
switch observabilityCfg.Mode {
2626
case OTLP_GRPC_MODE:
2727
exporter, err = otlptracegrpc.New(
2828
context.Background(),
@@ -45,7 +45,7 @@ func InitTracerProvider(config config.Config) (*sdktrace.TracerProvider, error)
4545
tracerProvider := sdktrace.NewTracerProvider(
4646
sdktrace.WithSampler(sdktrace.AlwaysSample()),
4747
sdktrace.WithBatcher(exporter),
48-
sdktrace.WithResource(initResource(config.App.Name, config.App.Version, config.App.Environment)),
48+
sdktrace.WithResource(initResource(appCfg.Name, appCfg.Version, appCfg.Environment)),
4949
)
5050

5151
// Set the global tracer provider for the OpenTelemetry API.

0 commit comments

Comments
 (0)