Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewValidator ¶
NewValidator creates a new validator.
Types ¶
type Configuration ¶
type Configuration struct { Namespace namespaceValidatorConfiguration `yaml:"namespace"` RequiredRollupTags []string `yaml:"requiredRollupTags"` MaxTransformationDerivativeOrder *int `yaml:"maxTransformationDerivativeOrder"` MaxRollupLevels *int `yaml:"maxRollupLevels"` MetricTypes metricTypesValidationConfiguration `yaml:"metricTypes"` Policies policiesValidationConfiguration `yaml:"policies"` TagNameInvalidChars string `yaml:"tagNameInvalidChars"` FilterInvalidTagNames []string `yaml:"filterInvalidTagNames"` MetricNameInvalidChars string `yaml:"metricNameInvalidChars"` }
Configuration is the configuration for rules validation.
func (Configuration) NewValidator ¶
NewValidator creates a new rules validator based on the given configuration.
type MetricTypesFn ¶
type MetricTypesFn func(tagFilters filters.TagFilterValueMap) ([]metric.Type, error)
MetricTypesFn determines the possible metric types based on a set of tag based filters.
type Options ¶
type Options interface { // SetNamespaceValidator sets the namespace validator. SetNamespaceValidator(value namespace.Validator) Options // NamespaceValidator returns the namespace validator. NamespaceValidator() namespace.Validator // SetDefaultAllowedStoragePolicies sets the default list of allowed storage policies. SetDefaultAllowedStoragePolicies(value []policy.StoragePolicy) Options // SetDefaultAllowedFirstLevelAggregationTypes sets the default list of allowed first-level // aggregation types. SetDefaultAllowedFirstLevelAggregationTypes(value aggregation.Types) Options // SetDefaultAllowedNonFirstLevelAggregationTypes sets the default list of allowed // non-first-level aggregation types. SetDefaultAllowedNonFirstLevelAggregationTypes(value aggregation.Types) Options // SetAllowedStoragePoliciesFor sets the list of allowed storage policies for a given metric type. SetAllowedStoragePoliciesFor(t metric.Type, policies []policy.StoragePolicy) Options // SetAllowedFirstLevelAggregationTypesFor sets the list of allowed first-level aggregation // types for a given metric type. SetAllowedFirstLevelAggregationTypesFor(t metric.Type, aggTypes aggregation.Types) Options // SetAllowedNonFirstLevelAggregationTypesFor sets the list of allowed non-first-level // aggregation types for a given metric type. SetAllowedNonFirstLevelAggregationTypesFor(t metric.Type, aggTypes aggregation.Types) Options // SetMetricTypesFn sets the metric types function. SetMetricTypesFn(value MetricTypesFn) Options // MetricTypesFn returns the metric types function. MetricTypesFn() MetricTypesFn // SetMultiAggregationTypesEnabledFor sets the list of metric types that support // multiple aggregation types. SetMultiAggregationTypesEnabledFor(value []metric.Type) Options // SetRequiredRollupTags sets the list of required rollup tags. SetRequiredRollupTags(value []string) Options // RequiredRollupTags returns the list of required rollup tags. RequiredRollupTags() []string // SetMaxTransformationDerivativeOrder sets the maximum supported transformation // derivative order between rollup operations in pipelines. SetMaxTransformationDerivativeOrder(value int) Options // MaxTransformationDerivativeOrder returns the maximum supported transformation // derivative order between rollup operations in pipelines.. MaxTransformationDerivativeOrder() int // SetMaxRollupLevels sets the maximum number of rollup operations supported in pipelines. SetMaxRollupLevels(value int) Options // MaxRollupLevels returns the maximum number of rollup operations supported in pipelines. MaxRollupLevels() int // SetTagNameInvalidChars sets the list of invalid chars for a tag name. SetTagNameInvalidChars(value []rune) Options // CheckInvalidCharactersForTagName checks if the given tag name contains invalid characters // returning an error if invalid character(s) present. CheckInvalidCharactersForTagName(tagName string) error // SetFiltersInvalidTagNames sets a list of case-insensitive tags that will // cause metric filters to be rejected. SetFilterInvalidTagNames(tagNames []string) Options // CheckFilterTagNameValid returns an error if the given tag name is in the list of // invalid tags. CheckFilterTagNameValid(tagName string) error // SetMetricNameInvalidChars sets the list of invalid chars for a metric name. SetMetricNameInvalidChars(value []rune) Options // CheckInvalidCharactersForMetricName checks if the given metric name contains invalid characters // returning an error if invalid character(s) present. CheckInvalidCharactersForMetricName(metricName string) error // IsAllowedStoragePolicyFor determines whether a given storage policy is allowed for the // given metric type. IsAllowedStoragePolicyFor(t metric.Type, p policy.StoragePolicy) bool // IsMultiAggregationTypesEnabledFor checks if a metric type supports multiple aggregation types. IsMultiAggregationTypesEnabledFor(t metric.Type) bool // IsAllowedFirstLevelAggregationTypeFor determines whether a given aggregation type is allowed // as the first-level aggregation for the given metric type. IsAllowedFirstLevelAggregationTypeFor(t metric.Type, aggType aggregation.Type) bool // IsAllowedNonFirstLevelAggregationTypeFor determines whether a given aggregation type is // allowed as the non-first-level aggregation for the given metric type. IsAllowedNonFirstLevelAggregationTypeFor(t metric.Type, aggType aggregation.Type) bool }
Options provide a set of options for the validator.
Click to show internal directories.
Click to hide internal directories.