Added OpenTelemetry config object

This commit is contained in:
Robin Dittmar
2026-07-09 13:45:24 +02:00
parent c61884d6ba
commit 5ab4952fe6
2 changed files with 22 additions and 7 deletions
+10 -2
View File
@@ -15,6 +15,9 @@ import (
"github.com/robindittmar/dttmr-api/internal/telemetry" "github.com/robindittmar/dttmr-api/internal/telemetry"
) )
type Config struct {
}
func main() { func main() {
serviceName := "dttmr-api" serviceName := "dttmr-api"
serviceVersion := "0.1.0" serviceVersion := "0.1.0"
@@ -32,13 +35,18 @@ func run(serviceName string, serviceVersion string) error {
Level: slog.LevelInfo, Level: slog.LevelInfo,
}) })
traceHandler := &telemetry.TraceHandler{Handler: baseHandler} traceHandler := &telemetry.TraceHandler{Handler: baseHandler}
logger := slog.New(traceHandler) logger := slog.New(traceHandler)
slog.SetDefault(logger) slog.SetDefault(logger)
slog.Info("Starting service", slog.String("service", serviceName), slog.String("version", serviceVersion)) slog.Info("Starting service", slog.String("service", serviceName), slog.String("version", serviceVersion))
shutdownTelemetry, err := telemetry.Init(context.Background(), serviceName, serviceVersion) telCfg := telemetry.Config{
ServiceName: serviceName,
ServiceVersion: serviceVersion,
Endpoint: "localhost:4317",
Environment: "development",
}
shutdownTelemetry, err := telemetry.Init(context.Background(), telCfg)
if err != nil { if err != nil {
slog.Error("Failed to initialize telemetry", err) slog.Error("Failed to initialize telemetry", err)
return err return err
+12 -5
View File
@@ -14,11 +14,18 @@ import (
semconv "go.opentelemetry.io/otel/semconv/v1.24.0" semconv "go.opentelemetry.io/otel/semconv/v1.24.0"
) )
func Init(ctx context.Context, serviceName string, version string) (func(context.Context) error, error) { type Config struct {
ServiceName string
ServiceVersion string
Endpoint string
Environment string
}
func Init(ctx context.Context, cfg Config) (func(context.Context) error, error) {
res, err := resource.New(ctx, res, err := resource.New(ctx,
resource.WithAttributes( resource.WithAttributes(
semconv.ServiceName(serviceName), semconv.ServiceName(cfg.ServiceName),
semconv.ServiceVersion(version), semconv.ServiceVersion(cfg.ServiceVersion),
), ),
) )
if err != nil { if err != nil {
@@ -34,7 +41,7 @@ func Init(ctx context.Context, serviceName string, version string) (func(context
traceExporter, err := otlptracegrpc.New(ctx, traceExporter, err := otlptracegrpc.New(ctx,
otlptracegrpc.WithInsecure(), // TODO: for local development otlptracegrpc.WithInsecure(), // TODO: for local development
otlptracegrpc.WithEndpoint("localhost:4317"), otlptracegrpc.WithEndpoint(cfg.Endpoint),
) )
if err != nil { if err != nil {
return nil, err return nil, err
@@ -47,7 +54,7 @@ func Init(ctx context.Context, serviceName string, version string) (func(context
metricExporter, err := otlpmetricgrpc.New(ctx, metricExporter, err := otlpmetricgrpc.New(ctx,
otlpmetricgrpc.WithInsecure(), otlpmetricgrpc.WithInsecure(),
otlpmetricgrpc.WithEndpoint("localhost:4317"), otlpmetricgrpc.WithEndpoint(cfg.Endpoint),
) )
if err != nil { if err != nil {
return nil, err return nil, err