2024-08-21 14:18:44 +05:30
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
|
|
|
|
|
"go.signoz.io/signoz/pkg/instrumentation"
|
2024-08-22 20:56:15 +05:30
|
|
|
"go.signoz.io/signoz/pkg/web"
|
2024-08-21 14:18:44 +05:30
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Config defines the entire configuration of signoz.
|
|
|
|
|
type Config struct {
|
|
|
|
|
Instrumentation instrumentation.Config `mapstructure:"instrumentation"`
|
2024-08-22 20:56:15 +05:30
|
|
|
Web web.Config `mapstructure:"web"`
|
2024-08-21 14:18:44 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New(ctx context.Context, settings ProviderSettings) (*Config, error) {
|
|
|
|
|
provider, err := NewProvider(settings)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return provider.Get(ctx)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func byName(name string) (any, bool) {
|
|
|
|
|
switch name {
|
|
|
|
|
case "instrumentation":
|
|
|
|
|
return &instrumentation.Config{}, true
|
2024-08-22 20:56:15 +05:30
|
|
|
case "web":
|
|
|
|
|
return &web.Config{}, true
|
2024-08-21 14:18:44 +05:30
|
|
|
default:
|
|
|
|
|
return nil, false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|