reorganize exporters and simplify their use

This commit is contained in:
2024-05-17 10:37:05 +02:00
parent fc92995cc8
commit e9c3ae1a7b
9 changed files with 93 additions and 55 deletions

View File

@ -4,6 +4,7 @@ import (
"context"
"log"
"git.ma-al.com/gora_filip/pkg/exporters"
"github.com/gofiber/fiber/v2"
fiberOpentelemetry "github.com/psmarcin/fiber-opentelemetry/pkg/fiber-otel"
"go.opentelemetry.io/otel"
@ -20,10 +21,11 @@ var (
)
type Config struct {
AppName string
Version string
AppName string
Version string
// Name of an organization providing the service
ServiceProvider string
Exporter trc.SpanExporter
Exporters []exporters.ExporterWithConfig
}
func newResource(config Config) *resource.Resource {
@ -39,7 +41,9 @@ func newResource(config Config) *resource.Resource {
func NewMiddleware(config Config) func(*fiber.Ctx) error {
var tracerProviders []trc.TracerProviderOption
tracerProviders = append(tracerProviders, trc.WithBatcher(config.Exporter))
for _, exp := range config.Exporters {
tracerProviders = append(tracerProviders, exp.IntoTraceProviderOption())
}
tracerProviders = append(tracerProviders, trc.WithResource(newResource(config)))
TP = *trc.NewTracerProvider(tracerProviders...)