mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
51 lines
1.6 KiB
Go
51 lines
1.6 KiB
Go
|
|
package querier
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/SigNoz/signoz/pkg/errors"
|
||
|
|
"github.com/SigNoz/signoz/pkg/factory"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Config represents the configuration for the querier
|
||
|
|
type Config struct {
|
||
|
|
// CacheTTL is the TTL for cached query results
|
||
|
|
CacheTTL time.Duration `yaml:"cache_ttl" mapstructure:"cache_ttl"`
|
||
|
|
// FluxInterval is the interval for recent data that should not be cached
|
||
|
|
FluxInterval time.Duration `yaml:"flux_interval" mapstructure:"flux_interval"`
|
||
|
|
// MaxConcurrentQueries is the maximum number of concurrent queries for missing ranges
|
||
|
|
MaxConcurrentQueries int `yaml:"max_concurrent_queries" mapstructure:"max_concurrent_queries"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// NewConfigFactory creates a new config factory for querier
|
||
|
|
func NewConfigFactory() factory.ConfigFactory {
|
||
|
|
return factory.NewConfigFactory(factory.MustNewName("querier"), newConfig)
|
||
|
|
}
|
||
|
|
|
||
|
|
func newConfig() factory.Config {
|
||
|
|
return Config{
|
||
|
|
// Default values
|
||
|
|
CacheTTL: 168 * time.Hour,
|
||
|
|
FluxInterval: 5 * time.Minute,
|
||
|
|
MaxConcurrentQueries: 4,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Validate validates the configuration
|
||
|
|
func (c Config) Validate() error {
|
||
|
|
if c.CacheTTL <= 0 {
|
||
|
|
return errors.NewInvalidInputf(errors.CodeInvalidInput, "cache_ttl must be positive, got %v", c.CacheTTL)
|
||
|
|
}
|
||
|
|
if c.FluxInterval <= 0 {
|
||
|
|
return errors.NewInvalidInputf(errors.CodeInvalidInput, "flux_interval must be positive, got %v", c.FluxInterval)
|
||
|
|
}
|
||
|
|
if c.MaxConcurrentQueries <= 0 {
|
||
|
|
return errors.NewInvalidInputf(errors.CodeInvalidInput, "max_concurrent_queries must be positive, got %v", c.MaxConcurrentQueries)
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (c Config) Provider() string {
|
||
|
|
return "signoz"
|
||
|
|
}
|