mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
* chore: update types 1. add partial bool to indicate if the value covers the partial interval 2. add optional unit if present (ex: duration_nano, metrics with units) 3. use pointers wherever necessary 4. add format options for request and remove redundant name in query envelope * chore: fix some gaps 1. make the range as [start, end) 2. provide the logs statement builder with the body column 3. skip the body filter on resource filter statement builder 4. remove unnecessary agg expr rewriter in metrics 5. add ability to skip full text in where clause visitor * chore: add API endpoint for new query range * chore: add bucket cache implementation * chore: add fingerprinting impl and add bucket cache to querier * chore: add provider factory
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"
|
|
}
|