mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2025-12-13 17:10:36 +00:00
34 lines
861 B
Go
34 lines
861 B
Go
package errortracking
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bitechdev/ResolveSpec/pkg/config"
|
|
)
|
|
|
|
// NewProviderFromConfig creates an error tracking provider based on the configuration
|
|
func NewProviderFromConfig(cfg config.ErrorTrackingConfig) (Provider, error) {
|
|
if !cfg.Enabled {
|
|
return NewNoOpProvider(), nil
|
|
}
|
|
|
|
switch cfg.Provider {
|
|
case "sentry":
|
|
if cfg.DSN == "" {
|
|
return nil, fmt.Errorf("sentry DSN is required when error tracking is enabled")
|
|
}
|
|
return NewSentryProvider(SentryConfig{
|
|
DSN: cfg.DSN,
|
|
Environment: cfg.Environment,
|
|
Release: cfg.Release,
|
|
Debug: cfg.Debug,
|
|
SampleRate: cfg.SampleRate,
|
|
TracesSampleRate: cfg.TracesSampleRate,
|
|
})
|
|
case "noop", "":
|
|
return NewNoOpProvider(), nil
|
|
default:
|
|
return nil, fmt.Errorf("unknown error tracking provider: %s", cfg.Provider)
|
|
}
|
|
}
|