package main

import (
	"context"
	"time"

	tracingconfig "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-node/config/tracing"
	"git.frostfs.info/TrueCloudLab/frostfs-node/internal/logs"
	"git.frostfs.info/TrueCloudLab/frostfs-observability/tracing"
	"go.uber.org/zap"
)

func initTracing(ctx context.Context, c *cfg) {
	conf := tracingconfig.ToTracingConfig(c.appCfg)

	_, err := tracing.Setup(ctx, *conf)
	if err != nil {
		c.log.Error(logs.FrostFSNodeFailedInitTracing, zap.Error(err))
	}

	c.closers = append(c.closers, closer{
		name: "tracing",
		fn: func() {
			ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
			defer cancel()
			err := tracing.Shutdown(ctx) //cfg context cancels before close
			if err != nil {
				c.log.Error(logs.FrostFSNodeFailedShutdownTracing, zap.Error(err))
			}
		},
	})
}