Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the observability v1alpha1 API group +kubebuilder:object:generate=true +groupName=observability.traceshield.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type BlockedQuery
- type BlockedQueryType
- type BlockedQueryTypes
- func (t BlockedQueryTypes) BlockedQueryType() []BlockedQueryType
- func (in BlockedQueryTypes) DeepCopy() BlockedQueryTypes
- func (in BlockedQueryTypes) DeepCopyInto(out *BlockedQueryTypes)
- func (t BlockedQueryTypes) MarshalGQL(w io.Writer)
- func (t BlockedQueryTypes) MarshalYAML() (interface{}, error)
- func (t BlockedQueryTypes) String() string
- func (t *BlockedQueryTypes) UnmarshalGQL(v interface{}) error
- func (t *BlockedQueryTypes) UnmarshalYAML(unmarshal func(interface{}) error) error
- type Config
- type ConfigList
- type ConfigMapSelector
- type ConfigSpec
- type ConfigStatus
- type DimensionMappings
- type FilterPolicy
- type HTTPClientConfig
- type LabelName
- type LimitSpec
- type LokiConfigSpec
- type LokiLimits
- type LokiLimitsInput
- type LokiRuntimeConfig
- type LokiSpec
- type MatchPolicyAttribute
- type MatchType
- type MetadataConfig
- type MimirConfigSpec
- type MimirDistributorInstanceLimits
- type MimirIngesterInstanceLimits
- type MimirLimits
- type MimirLimitsInput
- type MimirSpec
- type MultiRuntimeConfig
- type NotifierBasicAuth
- type NotifierConfig
- type NotifierHeaderAuth
- type NotifierTLSClientConfig
- type OAuth2
- type PolicyMatch
- type ProxyConfig
- type QueueConfig
- type RelabelAction
- type RelabelConfig
- type RemoteWriteSpec
- type RulerAlertManagerConfig
- type ShardstreamsConfig
- type SigV4Config
- type StreamRetention
- type TempoLimits
- type TempoLimitsInput
- type TempoSpec
- type Tenant
- type TenantList
- type TenantSpec
- type TenantStatus
- type WrappedMap
Constants ¶
const ( // TenantReadyCondition reports on current status of the Tenant. Ready indicates the tenant has been created and the limits have been applied. TenantReadyCondition crhelperTypes.ConditionType = "TenantReady" // MimirLimitsValidationErrorReason used when the limits configured for Mimir are invalid. MimirLimitsValidationErrorReason = "MimirLimitsValidationError" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "observability.traceshield.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var AllMatchType = []MatchType{ Strict, Regex, }
var AllRelabelAction = []RelabelAction{ RelabelActionReplace, RelabelActionReplace0, RelabelActionKeep, RelabelActionKeep0, RelabelActionDrop, RelabelActionDrop0, RelabelActionHashmod, RelabelActionHashMod, RelabelActionLabelmap, RelabelActionLabelMap, RelabelActionLabeldrop, RelabelActionLabelDrop, RelabelActionLabelkeep, RelabelActionLabelKeep, RelabelActionLowercase, RelabelActionLowercase0, RelabelActionUppercase, RelabelActionUppercase0, RelabelActionKeepequal, RelabelActionKeepEqual, RelabelActionDropequal, RelabelActionDropEqual, }
var SchemeGroupVersion = GroupVersion
SchemeGroupVersion is group version used to register these objects.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Types ¶
type BlockedQuery ¶
type BlockedQuery struct {
// +kubebuilder:validation:Optional
Pattern *string `yaml:"pattern,omitempty" json:"pattern,omitempty"`
// +kubebuilder:validation:Optional
Regex *bool `yaml:"regex,omitempty" json:"regex,omitempty"`
// +kubebuilder:validation:Optional
Hash *uint32 `yaml:"hash,omitempty" json:"hash,omitempty"`
// +kubebuilder:validation:Optional
Types BlockedQueryTypes `yaml:"types,omitempty" json:"types,omitempty"`
}
func (*BlockedQuery) DeepCopy ¶
func (in *BlockedQuery) DeepCopy() *BlockedQuery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockedQuery.
func (*BlockedQuery) DeepCopyInto ¶
func (in *BlockedQuery) DeepCopyInto(out *BlockedQuery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockedQueryType ¶
type BlockedQueryType string
BlockedQueryType is the type of blocked query +kubebuilder:validation:Enum=metric;filter;limited
const ( BlockedQueryTypeMetric BlockedQueryType = "metric" BlockedQueryTypeFilter BlockedQueryType = "filter" BlockedQueryTypeLimited BlockedQueryType = "limited" )
func (BlockedQueryType) IsValid ¶
func (e BlockedQueryType) IsValid() bool
func (BlockedQueryType) MarshalGQL ¶
func (e BlockedQueryType) MarshalGQL(w io.Writer)
func (BlockedQueryType) String ¶
func (e BlockedQueryType) String() string
func (*BlockedQueryType) UnmarshalGQL ¶
func (e *BlockedQueryType) UnmarshalGQL(v interface{}) error
type BlockedQueryTypes ¶
type BlockedQueryTypes []BlockedQueryType
func (BlockedQueryTypes) BlockedQueryType ¶
func (t BlockedQueryTypes) BlockedQueryType() []BlockedQueryType
func (BlockedQueryTypes) DeepCopy ¶
func (in BlockedQueryTypes) DeepCopy() BlockedQueryTypes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockedQueryTypes.
func (BlockedQueryTypes) DeepCopyInto ¶
func (in BlockedQueryTypes) DeepCopyInto(out *BlockedQueryTypes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BlockedQueryTypes) MarshalGQL ¶
func (t BlockedQueryTypes) MarshalGQL(w io.Writer)
func (BlockedQueryTypes) MarshalYAML ¶
func (t BlockedQueryTypes) MarshalYAML() (interface{}, error)
MarshalYAML implements the yaml.Marshaler interface.
func (BlockedQueryTypes) String ¶
func (t BlockedQueryTypes) String() string
String implements the fmt.Stringer interface.
func (*BlockedQueryTypes) UnmarshalGQL ¶
func (t *BlockedQueryTypes) UnmarshalGQL(v interface{}) error
func (*BlockedQueryTypes) UnmarshalYAML ¶
func (t *BlockedQueryTypes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Config ¶
type Config struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ConfigSpec `json:"spec,omitempty"`
Status ConfigStatus `json:"status,omitempty"`
}
+genclient:nonNamespaced Config is the Schema for the configs API
func (*Config) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Config) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigList ¶
type ConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Config `json:"items"`
}
ConfigList contains a list of Config
func (*ConfigList) DeepCopy ¶
func (in *ConfigList) DeepCopy() *ConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigList.
func (*ConfigList) DeepCopyInto ¶
func (in *ConfigList) DeepCopyInto(out *ConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigList) DeepCopyObject ¶
func (in *ConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigMapSelector ¶
type ConfigMapSelector struct {
// +kubebuilder:default:="mimir-runtime"
Name string `json:"name"`
// +kubebuilder:default:="mimir"
Namespace string `json:"namespace"`
// +kubebuilder:default:="runtime.yaml"
Key string `json:"key"`
}
func (*ConfigMapSelector) DeepCopy ¶
func (in *ConfigMapSelector) DeepCopy() *ConfigMapSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapSelector.
func (*ConfigMapSelector) DeepCopyInto ¶
func (in *ConfigMapSelector) DeepCopyInto(out *ConfigMapSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigSpec ¶
type ConfigSpec struct {
// +kubebuilder:validation:Optional
Mimir *MimirSpec `json:"mimir,omitempty"`
// +kubebuilder:validation:Optional
Loki *LokiSpec `json:"loki,omitempty"`
// +kubebuilder:validation:Optional
Tempo *TempoSpec `json:"tempo,omitempty"`
}
ConfigSpec defines the desired state of Config
func (*ConfigSpec) DeepCopy ¶
func (in *ConfigSpec) DeepCopy() *ConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSpec.
func (*ConfigSpec) DeepCopyInto ¶
func (in *ConfigSpec) DeepCopyInto(out *ConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigStatus ¶
type ConfigStatus struct {
}
ConfigStatus defines the observed state of Config
func (*ConfigStatus) DeepCopy ¶
func (in *ConfigStatus) DeepCopy() *ConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigStatus.
func (*ConfigStatus) DeepCopyInto ¶
func (in *ConfigStatus) DeepCopyInto(out *ConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DimensionMappings ¶
type DimensionMappings struct {
// +kubebuilder:validation:Optional
Name *string `yaml:"name,omitempty" json:"name,omitempty"`
// +kubebuilder:validation:Optional
SourceLabel []string `yaml:"source_labels,omitempty" json:"source_labels,omitempty"`
// +kubebuilder:validation:Optional
Join *string `yaml:"join,omitempty" json:"join,omitempty"`
}
func (*DimensionMappings) DeepCopy ¶
func (in *DimensionMappings) DeepCopy() *DimensionMappings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DimensionMappings.
func (*DimensionMappings) DeepCopyInto ¶
func (in *DimensionMappings) DeepCopyInto(out *DimensionMappings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilterPolicy ¶
type FilterPolicy struct {
// +kubebuilder:validation:Optional
Include *PolicyMatch `yaml:"include,omitempty" json:"include,omitempty"`
// +kubebuilder:validation:Optional
Exclude *PolicyMatch `yaml:"exclude,omitempty" json:"exclude,omitempty"`
}
func (*FilterPolicy) DeepCopy ¶
func (in *FilterPolicy) DeepCopy() *FilterPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterPolicy.
func (*FilterPolicy) DeepCopyInto ¶
func (in *FilterPolicy) DeepCopyInto(out *FilterPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPClientConfig ¶
type HTTPClientConfig struct {
// The HTTP basic authentication credentials for the targets.
// +kubebuilder:validation:Optional
BasicAuth *prom_config.BasicAuth `yaml:"basic_auth,omitempty" json:"basic_auth,omitempty"`
// The HTTP authorization credentials for the targets.
// +kubebuilder:validation:Optional
Authorization *prom_config.Authorization `yaml:"authorization,omitempty" json:"authorization,omitempty"`
// The OAuth2 client credentials used to fetch a token for the targets.
// +kubebuilder:validation:Optional
OAuth2 *OAuth2 `yaml:"oauth2,omitempty" json:"oauth2,omitempty"`
// TLSConfig to use to connect to the targets.
// +kubebuilder:validation:Optional
TLSConfig *prom_config.TLSConfig `yaml:"tls_config,omitempty" json:"tls_config,omitempty"`
// FollowRedirects specifies whether the client should follow HTTP 3xx redirects.
// The omitempty flag is not set, because it would be hidden from the
// marshalled configuration when set to false.
// +kubebuilder:validation:Optional
FollowRedirects *bool `yaml:"follow_redirects" json:"follow_redirects"`
// EnableHTTP2 specifies whether the client should configure HTTP2.
// The omitempty flag is not set, because it would be hidden from the
// marshalled configuration when set to false.
// +kubebuilder:validation:Optional
EnableHTTP2 *bool `yaml:"enable_http2" json:"enable_http2"`
// Proxy configuration.
// +kubebuilder:validation:Optional
ProxyConfig `yaml:",inline" json:",inline"`
}
HTTPClientConfig configures an HTTP client.
func (*HTTPClientConfig) DeepCopy ¶
func (in *HTTPClientConfig) DeepCopy() *HTTPClientConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClientConfig.
func (*HTTPClientConfig) DeepCopyInto ¶
func (in *HTTPClientConfig) DeepCopyInto(out *HTTPClientConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LabelName ¶
type LabelName string
LabelName is a valid Prometheus label name which may only contain ASCII letters, numbers, as well as underscores. +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
func (LabelName) MarshalGQL ¶
MarshalGQL implements the graphql.Marshaler interface
func (*LabelName) UnmarshalGQL ¶
UnmarshalGQL implements the graphql.Unmarshaler interface
type LimitSpec ¶
type LimitSpec struct {
// +kubebuilder:validation:Optional
Mimir *MimirLimits `json:"mimir,omitempty"`
// +kubebuilder:validation:Optional
Loki *LokiLimits `json:"loki,omitempty"`
// +kubebuilder:validation:Optional
Tempo *TempoLimits `json:"tempo,omitempty"`
}
Defines the limits for a tenant
func (*LimitSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitSpec.
func (*LimitSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiConfigSpec ¶
type LokiConfigSpec struct {
// +kubebuilder:validation:Optional
Multi *MultiRuntimeConfig `json:"multi_kv_config,omitempty"`
// +kubebuilder:validation:Optional
TenantConfig map[string]*LokiRuntimeConfig `json:"configs,omitempty"`
}
func (*LokiConfigSpec) DeepCopy ¶
func (in *LokiConfigSpec) DeepCopy() *LokiConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiConfigSpec.
func (*LokiConfigSpec) DeepCopyInto ¶
func (in *LokiConfigSpec) DeepCopyInto(out *LokiConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiLimits ¶
type LokiLimits struct {
// Distributor enforced limits.
// +kubebuilder:validation:Optional
IngestionRateStrategy *string `yaml:"ingestion_rate_strategy,omitempty" json:"ingestion_rate_strategy,omitempty"`
// +kubebuilder:validation:Optional
IngestionRateMB *float64 `yaml:"ingestion_rate_mb,omitempty" json:"ingestion_rate_mb,omitempty"`
// +kubebuilder:validation:Optional
IngestionBurstSizeMB *float64 `yaml:"ingestion_burst_size_mb,omitempty" json:"ingestion_burst_size_mb,omitempty"`
// +kubebuilder:validation:Optional
MaxLabelNameLength *int `yaml:"max_label_name_length,omitempty" json:"max_label_name_length,omitempty"`
// +kubebuilder:validation:Optional
MaxLabelValueLength *int `yaml:"max_label_value_length,omitempty" json:"max_label_value_length,omitempty"`
// +kubebuilder:validation:Optional
MaxLabelNamesPerSeries *int `yaml:"max_label_names_per_series,omitempty" json:"max_label_names_per_series,omitempty"`
// +kubebuilder:validation:Optional
RejectOldSamples *bool `yaml:"reject_old_samples,omitempty" json:"reject_old_samples,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RejectOldSamplesMaxAge *metav1.Duration `yaml:"reject_old_samples_max_age,omitempty" json:"reject_old_samples_max_age,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
CreationGracePeriod *metav1.Duration `yaml:"creation_grace_period,omitempty" json:"creation_grace_period,omitempty"`
// +kubebuilder:validation:Optional
EnforceMetricName *bool `yaml:"enforce_metric_name,omitempty" json:"enforce_metric_name,omitempty"`
// +kubebuilder:validation:Optional
MaxLineSize *uint64 `yaml:"max_line_size,omitempty" json:"max_line_size,omitempty"`
// +kubebuilder:validation:Optional
MaxLineSizeTruncate *bool `yaml:"max_line_size_truncate,omitempty" json:"max_line_size_truncate,omitempty"`
// +kubebuilder:validation:Optional
IncrementDuplicateTimestamp *bool `yaml:"increment_duplicate_timestamp,omitempty" json:"increment_duplicate_timestamp,omitempty"`
// Ingester enforced limits.
// +kubebuilder:validation:Optional
MaxLocalStreamsPerUser *int `yaml:"max_streams_per_user,omitempty" json:"max_streams_per_user,omitempty"`
// +kubebuilder:validation:Optional
MaxGlobalStreamsPerUser *int `yaml:"max_global_streams_per_user,omitempty" json:"max_global_streams_per_user,omitempty"`
// +kubebuilder:validation:Optional
UnorderedWrites *bool `yaml:"unordered_writes,omitempty" json:"unordered_writes,omitempty"`
// +kubebuilder:validation:Optional
PerStreamRateLimit *uint64 `yaml:"per_stream_rate_limit,omitempty" json:"per_stream_rate_limit,omitempty"`
// +kubebuilder:validation:Optional
PerStreamRateLimitBurst *uint64 `yaml:"per_stream_rate_limit_burst,omitempty" json:"per_stream_rate_limit_burst,omitempty"`
// Querier enforced limits.
// +kubebuilder:validation:Optional
MaxChunksPerQuery *int `yaml:"max_chunks_per_query,omitempty" json:"max_chunks_per_query,omitempty"`
// +kubebuilder:validation:Optional
MaxQuerySeries *int `yaml:"max_query_series,omitempty" json:"max_query_series,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxQueryLookback *metav1.Duration `yaml:"max_query_lookback,omitempty" json:"max_query_lookback,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxQueryLength *metav1.Duration `yaml:"max_query_length,omitempty" json:"max_query_length,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxQueryRange *metav1.Duration `yaml:"max_query_range,omitempty" json:"max_query_range,omitempty"`
// +kubebuilder:validation:Optional
MaxQueryParallelism *int `yaml:"max_query_parallelism,omitempty" json:"max_query_parallelism,omitempty"`
// +kubebuilder:validation:Optional
TSDBMaxQueryParallelism *int `yaml:"tsdb_max_query_parallelism,omitempty" json:"tsdb_max_query_parallelism,omitempty"`
// +kubebuilder:validation:Optional
TSDBMaxBytesPerShard *uint64 `yaml:"tsdb_max_bytes_per_shard,omitempty" json:"tsdb_max_bytes_per_shard,omitempty"`
// +kubebuilder:validation:Optional
CardinalityLimit *int `yaml:"cardinality_limit,omitempty" json:"cardinality_limit,omitempty"`
// +kubebuilder:validation:Optional
MaxStreamsMatchersPerQuery *int `yaml:"max_streams_matchers_per_query,omitempty" json:"max_streams_matchers_per_query,omitempty"`
// +kubebuilder:validation:Optional
MaxConcurrentTailRequests *int `yaml:"max_concurrent_tail_requests,omitempty" json:"max_concurrent_tail_requests,omitempty"`
// +kubebuilder:validation:Optional
MaxEntriesLimitPerQuery *int `yaml:"max_entries_limit_per_query,omitempty" json:"max_entries_limit_per_query,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxCacheFreshness *metav1.Duration `yaml:"max_cache_freshness_per_query,omitempty" json:"max_cache_freshness_per_query,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxStatsCacheFreshness *metav1.Duration `yaml:"max_stats_cache_freshness,omitempty" json:"max_stats_cache_freshness,omitempty"`
// +kubebuilder:validation:Optional
MaxQueriersPerTenant *int `yaml:"max_queriers_per_tenant,omitempty" json:"max_queriers_per_tenant,omitempty"`
// +kubebuilder:validation:Optional
QueryReadyIndexNumDays *int `yaml:"query_ready_index_num_days,omitempty" json:"query_ready_index_num_days,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
QueryTimeout *metav1.Duration `yaml:"query_timeout,omitempty" json:"query_timeout,omitempty"`
// Query frontend enforced limits. The default is actually parameterized by the queryrange config.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
QuerySplitDuration *metav1.Duration `yaml:"split_queries_by_interval,omitempty" json:"split_queries_by_interval,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MinShardingLookback *metav1.Duration `yaml:"min_sharding_lookback,omitempty" json:"min_sharding_lookback,omitempty"`
// +kubebuilder:validation:Optional
MaxQueryBytesRead *uint64 `yaml:"max_query_bytes_read,omitempty" json:"max_query_bytes_read,omitempty"`
// +kubebuilder:validation:Optional
MaxQuerierBytesRead *uint64 `yaml:"max_querier_bytes_read,omitempty" json:"max_querier_bytes_read,omitempty"`
// +kubebuilder:validation:Optional
VolumeEnabled *bool `yaml:"volume_enabled,omitempty" json:"volume_enabled,omitempty" doc:"description=Enable log-volume endpoints."`
// +kubebuilder:validation:Optional
VolumeMaxSeries *int `` /* 152-byte string literal not displayed */
// TODO(dannyk): this setting is misnamed and probably deprecatable.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RulerEvaluationDelay *metav1.Duration `yaml:"ruler_evaluation_delay_duration,omitempty" json:"ruler_evaluation_delay_duration,omitempty"`
// +kubebuilder:validation:Optional
RulerMaxRulesPerRuleGroup *int `yaml:"ruler_max_rules_per_rule_group,omitempty" json:"ruler_max_rules_per_rule_group,omitempty"`
// +kubebuilder:validation:Optional
RulerMaxRuleGroupsPerTenant *int `yaml:"ruler_max_rule_groups_per_tenant,omitempty" json:"ruler_max_rule_groups_per_tenant,omitempty"`
// +kubebuilder:validation:Optional
RulerAlertManagerConfig *RulerAlertManagerConfig `yaml:"ruler_alertmanager_config,omitempty" json:"ruler_alertmanager_config,omitempty" doc:"hidden"`
// +kubebuilder:validation:Optional
RulerTenantShardSize *int `yaml:"ruler_tenant_shard_size,omitempty" json:"ruler_tenant_shard_size,omitempty"`
// this field is the inversion of the general remote_write.enabled because the zero value of a boolean is false,
// and if it were ruler_remote_write_enabled, it would be impossible to know if the value was explicitly set or default
// +kubebuilder:validation:Optional
RulerRemoteWriteDisabled *bool `` /* 145-byte string literal not displayed */
// +kubebuilder:validation:Optional
RulerRemoteWriteConfig map[string]RemoteWriteSpec `` /* 205-byte string literal not displayed */
// TODO(dannyk): possible enhancement is to align this with rule group interval
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RulerRemoteEvaluationTimeout *metav1.Duration `` /* 203-byte string literal not displayed */
// +kubebuilder:validation:Optional
RulerRemoteEvaluationMaxResponseSize *int64 `` /* 268-byte string literal not displayed */
// Global and per tenant deletion mode
// +kubebuilder:validation:Optional
DeletionMode *string `yaml:"deletion_mode,omitempty" json:"deletion_mode,omitempty"`
// Global and per tenant retention
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RetentionPeriod *metav1.Duration `yaml:"retention_period,omitempty" json:"retention_period,omitempty"`
// +kubebuilder:validation:Optional
StreamRetention []StreamRetention `` /* 568-byte string literal not displayed */
// +kubebuilder:validation:Optional
ShardStreams *ShardstreamsConfig `yaml:"shard_streams,omitempty" json:"shard_streams,omitempty"`
// +kubebuilder:validation:Optional
BlockedQueries []BlockedQuery `yaml:"blocked_queries,omitempty" json:"blocked_queries,omitempty"`
// +kubebuilder:validation:Optional
RequiredLabels []string `` /* 126-byte string literal not displayed */
// +kubebuilder:validation:Optional
RequiredNumberLabels *int `` /* 152-byte string literal not displayed */
// +kubebuilder:validation:Optional
IndexGatewayShardSize *int `yaml:"index_gateway_shard_size,omitempty" json:"index_gateway_shard_size,omitempty"`
}
func (*LokiLimits) DeepCopy ¶
func (in *LokiLimits) DeepCopy() *LokiLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiLimits.
func (*LokiLimits) DeepCopyInto ¶
func (in *LokiLimits) DeepCopyInto(out *LokiLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiLimitsInput ¶
type LokiLimitsInput LokiLimits
func (*LokiLimitsInput) DeepCopy ¶
func (in *LokiLimitsInput) DeepCopy() *LokiLimitsInput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiLimitsInput.
func (*LokiLimitsInput) DeepCopyInto ¶
func (in *LokiLimitsInput) DeepCopyInto(out *LokiLimitsInput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiRuntimeConfig ¶
type LokiRuntimeConfig struct {
// +kubebuilder:validation:Optional
LogStreamCreation *bool `json:"log_stream_creation,omitempty"`
// +kubebuilder:validation:Optional
LogPushRequest *bool `json:"log_push_request,omitempty"`
// +kubebuilder:validation:Optional
LogPushRequestStreams *bool `json:"log_push_request_streams,omitempty"`
// LimitedLogPushErrors is to be implemented and will allow logging push failures at a controlled pace.
// +kubebuilder:validation:Optional
LimitedLogPushErrors *bool `json:"limited_log_push_errors,omitempty"`
}
func (*LokiRuntimeConfig) DeepCopy ¶
func (in *LokiRuntimeConfig) DeepCopy() *LokiRuntimeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiRuntimeConfig.
func (*LokiRuntimeConfig) DeepCopyInto ¶
func (in *LokiRuntimeConfig) DeepCopyInto(out *LokiRuntimeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LokiSpec ¶
type LokiSpec struct {
// +kubebuilder:validation:Required
ConfigMap ConfigMapSelector `json:"configMap"`
// +kubebuilder:validation:Optional
Config *LokiConfigSpec `json:"config,omitempty"`
}
func (*LokiSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LokiSpec.
func (*LokiSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MatchPolicyAttribute ¶
type MatchPolicyAttribute struct {
Key string `yaml:"key" json:"key"`
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Schemaless
// +kubebuilder:validation:Type=object
Value WrappedMap `yaml:"value" json:"value"`
}
func (*MatchPolicyAttribute) DeepCopy ¶
func (in *MatchPolicyAttribute) DeepCopy() *MatchPolicyAttribute
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchPolicyAttribute.
func (*MatchPolicyAttribute) DeepCopyInto ¶
func (in *MatchPolicyAttribute) DeepCopyInto(out *MatchPolicyAttribute)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MatchType ¶
type MatchType string
func (MatchType) MarshalGQL ¶
func (*MatchType) UnmarshalGQL ¶
type MetadataConfig ¶
type MetadataConfig struct {
// Send controls whether we send metric metadata to remote storage.
// +kubebuilder:validation:Optional
Send *bool `yaml:"send,omitempty" json:"send,omitempty"`
// SendInterval controls how frequently we send metric metadata.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
SendInterval *metav1.Duration `yaml:"send_interval,omitempty" json:"send_interval,omitempty"`
// Maximum number of samples per send.
// +kubebuilder:validation:Optional
MaxSamplesPerSend *int `yaml:"max_samples_per_send,omitempty" json:"max_samples_per_send,omitempty"`
}
MetadataConfig is the configuration for sending metadata to remote storage.
func (*MetadataConfig) DeepCopy ¶
func (in *MetadataConfig) DeepCopy() *MetadataConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataConfig.
func (*MetadataConfig) DeepCopyInto ¶
func (in *MetadataConfig) DeepCopyInto(out *MetadataConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirConfigSpec ¶
type MimirConfigSpec struct {
// +kubebuilder:validation:Optional
Multi *MultiRuntimeConfig `json:"multi_kv_config,omitempty"`
// +kubebuilder:validation:Optional
IngesterChunkStreaming *bool `json:"ingester_stream_chunks_when_using_blocks,omitempty"`
// +kubebuilder:validation:Optional
IngesterLimits *MimirIngesterInstanceLimits `json:"ingester_limits,omitempty"`
// +kubebuilder:validation:Optional
DistributorLimits *MimirDistributorInstanceLimits `json:"distributor_limits,omitempty"`
}
func (*MimirConfigSpec) DeepCopy ¶
func (in *MimirConfigSpec) DeepCopy() *MimirConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirConfigSpec.
func (*MimirConfigSpec) DeepCopyInto ¶
func (in *MimirConfigSpec) DeepCopyInto(out *MimirConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirDistributorInstanceLimits ¶
type MimirDistributorInstanceLimits struct {
// +kubebuilder:validation:Optional
MaxIngestionRate float64 `json:"max_ingestion_rate,omitempty"`
// +kubebuilder:validation:Optional
MaxInflightPushRequests int `json:"max_inflight_push_requests,omitempty"`
// +kubebuilder:validation:Optional
MaxInflightPushRequestsBytes int `json:"max_inflight_push_requests_bytes,omitempty"`
}
func (*MimirDistributorInstanceLimits) DeepCopy ¶
func (in *MimirDistributorInstanceLimits) DeepCopy() *MimirDistributorInstanceLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirDistributorInstanceLimits.
func (*MimirDistributorInstanceLimits) DeepCopyInto ¶
func (in *MimirDistributorInstanceLimits) DeepCopyInto(out *MimirDistributorInstanceLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirIngesterInstanceLimits ¶
type MimirIngesterInstanceLimits struct {
// +kubebuilder:validation:Optional
MaxIngestionRate float64 `json:"max_ingestion_rate,omitempty"`
// +kubebuilder:validation:Optional
MaxInMemoryTenants int64 `json:"max_tenants,omitempty"`
// +kubebuilder:validation:Optional
MaxInMemorySeries int64 `json:"max_series,omitempty"`
// +kubebuilder:validation:Optional
MaxInflightPushRequests int64 `json:"max_inflight_push_requests,omitempty"`
}
func (*MimirIngesterInstanceLimits) DeepCopy ¶
func (in *MimirIngesterInstanceLimits) DeepCopy() *MimirIngesterInstanceLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirIngesterInstanceLimits.
func (*MimirIngesterInstanceLimits) DeepCopyInto ¶
func (in *MimirIngesterInstanceLimits) DeepCopyInto(out *MimirIngesterInstanceLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirLimits ¶
type MimirLimits struct {
// Distributor enforced limits.
// +kubebuilder:validation:Optional
RequestRate *float64 `yaml:"request_rate,omitempty" json:"request_rate,omitempty" category:"experimental"`
// +kubebuilder:validation:Optional
RequestBurstSize *int `yaml:"request_burst_size,omitempty" json:"request_burst_size,omitempty" category:"experimental"`
// +kubebuilder:validation:Optional
IngestionRate *float64 `yaml:"ingestion_rate,omitempty" json:"ingestion_rate,omitempty"`
// +kubebuilder:validation:Optional
IngestionBurstSize *int `yaml:"ingestion_burst_size,omitempty" json:"ingestion_burst_size,omitempty"`
// +kubebuilder:validation:Optional
AcceptHASamples *bool `yaml:"accept_ha_samples,omitempty" json:"accept_ha_samples,omitempty"`
// +kubebuilder:validation:Optional
HAClusterLabel *string `yaml:"ha_cluster_label,omitempty" json:"ha_cluster_label,omitempty"`
// +kubebuilder:validation:Optional
HAReplicaLabel *string `yaml:"ha_replica_label,omitempty" json:"ha_replica_label,omitempty"`
// +kubebuilder:validation:Optional
HAMaxClusters *int `yaml:"ha_max_clusters,omitempty" json:"ha_max_clusters,omitempty"`
// +kubebuilder:validation:Optional
DropLabels []string `yaml:"drop_labels,omitempty" json:"drop_labels,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
MaxLabelNameLength *int `yaml:"max_label_name_length,omitempty" json:"max_label_name_length,omitempty"`
// +kubebuilder:validation:Optional
MaxLabelValueLength *int `yaml:"max_label_value_length,omitempty" json:"max_label_value_length,omitempty"`
// +kubebuilder:validation:Optional
MaxLabelNamesPerSeries *int `yaml:"max_label_names_per_series,omitempty" json:"max_label_names_per_series,omitempty"`
// +kubebuilder:validation:Optional
MaxMetadataLength *int `yaml:"max_metadata_length,omitempty" json:"max_metadata_length,omitempty"`
// +kubebuilder:validation:Optional
MaxNativeHistogramBuckets *int `yaml:"max_native_histogram_buckets,omitempty" json:"max_native_histogram_buckets,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
CreationGracePeriod *metav1.Duration `yaml:"creation_grace_period,omitempty" json:"creation_grace_period,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
EnforceMetadataMetricName *bool `yaml:"enforce_metadata_metric_name,omitempty" json:"enforce_metadata_metric_name,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
IngestionTenantShardSize *int `yaml:"ingestion_tenant_shard_size,omitempty" json:"ingestion_tenant_shard_size,omitempty"`
// +kubebuilder:validation:Optional
MetricRelabelConfigs []RelabelConfig `` /* 319-byte string literal not displayed */
// Ingester enforced limits.
// Series
// +kubebuilder:validation:Optional
MaxGlobalSeriesPerUser *int `yaml:"max_global_series_per_user,omitempty" json:"max_global_series_per_user,omitempty"`
// +kubebuilder:validation:Optional
MaxGlobalSeriesPerMetric *int `yaml:"max_global_series_per_metric,omitempty" json:"max_global_series_per_metric,omitempty"`
// Metadata
// +kubebuilder:validation:Optional
MaxGlobalMetricsWithMetadataPerUser *int `yaml:"max_global_metadata_per_user,omitempty" json:"max_global_metadata_per_user,omitempty"`
// +kubebuilder:validation:Optional
MaxGlobalMetadataPerMetric *int `yaml:"max_global_metadata_per_metric,omitempty" json:"max_global_metadata_per_metric,omitempty"`
// +kubebuilder:validation:Optional
// Exemplars
// +kubebuilder:validation:Optional
MaxGlobalExemplarsPerUser *int `yaml:"max_global_exemplars_per_user,omitempty" json:"max_global_exemplars_per_user,omitempty" category:"experimental"`
// Native histograms
// +kubebuilder:validation:Optional
NativeHistogramsIngestionEnabled *bool `` /* 129-byte string literal not displayed */
// Active series custom trackers
// +kubebuilder:validation:Optional
ActiveSeriesCustomTrackersConfig map[string]string `` /* 420-byte string literal not displayed */
// Max allowed time window for out-of-order samples.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
OutOfOrderTimeWindow *metav1.Duration `yaml:"out_of_order_time_window,omitempty" json:"out_of_order_time_window,omitempty" category:"experimental"`
// +kubebuilder:validation:Optional
OutOfOrderBlocksExternalLabelEnabled *bool `` /* 143-byte string literal not displayed */
// User defined label to give the option of subdividing specific metrics by another label
// +kubebuilder:validation:Optional
SeparateMetricsGroupLabel *string `yaml:"separate_metrics_group_label,omitempty" json:"separate_metrics_group_label,omitempty" category:"experimental"`
// Querier enforced limits.
// +kubebuilder:validation:Optional
MaxChunksPerQuery *int `yaml:"max_fetched_chunks_per_query,omitempty" json:"max_fetched_chunks_per_query,omitempty"`
// +kubebuilder:validation:Optional
MaxFetchedSeriesPerQuery *int `yaml:"max_fetched_series_per_query,omitempty" json:"max_fetched_series_per_query,omitempty"`
// +kubebuilder:validation:Optional
MaxFetchedChunkBytesPerQuery *int `yaml:"max_fetched_chunk_bytes_per_query,omitempty" json:"max_fetched_chunk_bytes_per_query,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxQueryLookback *metav1.Duration `yaml:"max_query_lookback,omitempty" json:"max_query_lookback,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxPartialQueryLength *metav1.Duration `yaml:"max_partial_query_length,omitempty" json:"max_partial_query_length,omitempty"`
// +kubebuilder:validation:Optional
MaxQueryParallelism *int `yaml:"max_query_parallelism,omitempty" json:"max_query_parallelism,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxLabelsQueryLength *metav1.Duration `yaml:"max_labels_query_length,omitempty" json:"max_labels_query_length,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxCacheFreshness *metav1.Duration `yaml:"max_cache_freshness,omitempty" json:"max_cache_freshness,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
MaxQueriersPerTenant *int `yaml:"max_queriers_per_tenant,omitempty" json:"max_queriers_per_tenant,omitempty"`
// +kubebuilder:validation:Optional
QueryShardingTotalShards *int `yaml:"query_sharding_total_shards,omitempty" json:"query_sharding_total_shards,omitempty"`
// +kubebuilder:validation:Optional
QueryShardingMaxShardedQueries *int `yaml:"query_sharding_max_sharded_queries,omitempty" json:"query_sharding_max_sharded_queries,omitempty"`
// +kubebuilder:validation:Optional
QueryShardingMaxRegexpSizeBytes *int `` /* 131-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
SplitInstantQueriesByInterval *metav1.Duration `yaml:"split_instant_queries_by_interval,omitempty" json:"split_instant_queries_by_interval,omitempty" category:"experimental"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
QueryIngestersWithin *metav1.Duration `yaml:"query_ingesters_within,omitempty" json:"query_ingesters_within,omitempty" category:"advanced"`
// Query-frontend limits.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxTotalQueryLength *metav1.Duration `yaml:"max_total_query_length,omitempty" json:"max_total_query_length,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
ResultsCacheTTL *metav1.Duration `yaml:"results_cache_ttl,omitempty" json:"results_cache_ttl,omitempty" category:"experimental"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
ResultsCacheTTLForOutOfOrderTimeWindow *metav1.Duration `` /* 151-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
ResultsCacheTTLForCardinalityQuery *metav1.Duration `` /* 137-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
ResultsCacheTTLForLabelsQuery *metav1.Duration `` /* 127-byte string literal not displayed */
// +kubebuilder:validation:Optional
ResultsCacheForUnalignedQueryEnabled *bool `yaml:"cache_unaligned_requests,omitempty" json:"cache_unaligned_requests,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
MaxQueryExpressionSizeBytes *int `yaml:"max_query_expression_size_bytes,omitempty" json:"max_query_expression_size_bytes,omitempty" category:"experimental"`
// Cardinality
// +kubebuilder:validation:Optional
CardinalityAnalysisEnabled *bool `yaml:"cardinality_analysis_enabled,omitempty" json:"cardinality_analysis_enabled,omitempty"`
// +kubebuilder:validation:Optional
LabelNamesAndValuesResultsMaxSizeBytes *int `yaml:"label_names_and_values_results_max_size_bytes,omitempty" json:"label_names_and_values_results_max_size_bytes,omitempty"`
// +kubebuilder:validation:Optional
LabelValuesMaxCardinalityLabelNamesPerRequest *int `` /* 139-byte string literal not displayed */
// Ruler defaults and limits.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RulerEvaluationDelay *metav1.Duration `yaml:"ruler_evaluation_delay_duration,omitempty" json:"ruler_evaluation_delay_duration,omitempty"`
// +kubebuilder:validation:Optional
RulerTenantShardSize *int `yaml:"ruler_tenant_shard_size,omitempty" json:"ruler_tenant_shard_size,omitempty"`
// +kubebuilder:validation:Optional
RulerMaxRulesPerRuleGroup *int `yaml:"ruler_max_rules_per_rule_group,omitempty" json:"ruler_max_rules_per_rule_group,omitempty"`
// +kubebuilder:validation:Optional
RulerMaxRuleGroupsPerTenant *int `yaml:"ruler_max_rule_groups_per_tenant,omitempty" json:"ruler_max_rule_groups_per_tenant,omitempty"`
// +kubebuilder:validation:Optional
RulerRecordingRulesEvaluationEnabled *bool `` /* 139-byte string literal not displayed */
// +kubebuilder:validation:Optional
RulerAlertingRulesEvaluationEnabled *bool `` /* 137-byte string literal not displayed */
// +kubebuilder:validation:Optional
RulerSyncRulesOnChangesEnabled *bool `yaml:"ruler_sync_rules_on_changes_enabled,omitempty" json:"ruler_sync_rules_on_changes_enabled,omitempty" category:"advanced"`
// Store-gateway.
// +kubebuilder:validation:Optional
StoreGatewayTenantShardSize *int `yaml:"store_gateway_tenant_shard_size,omitempty" json:"store_gateway_tenant_shard_size,omitempty"`
// Compactor.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
CompactorBlocksRetentionPeriod *metav1.Duration `yaml:"compactor_blocks_retention_period,omitempty" json:"compactor_blocks_retention_period,omitempty"`
// +kubebuilder:validation:Optional
CompactorSplitAndMergeShards *int `yaml:"compactor_split_and_merge_shards,omitempty" json:"compactor_split_and_merge_shards,omitempty"`
// +kubebuilder:validation:Optional
CompactorSplitGroups *int `yaml:"compactor_split_groups,omitempty" json:"compactor_split_groups,omitempty"`
// +kubebuilder:validation:Optional
CompactorTenantShardSize *int `yaml:"compactor_tenant_shard_size,omitempty" json:"compactor_tenant_shard_size,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
CompactorPartialBlockDeletionDelay *metav1.Duration `yaml:"compactor_partial_block_deletion_delay,omitempty" json:"compactor_partial_block_deletion_delay,omitempty"`
// +kubebuilder:validation:Optional
CompactorBlockUploadEnabled *bool `yaml:"compactor_block_upload_enabled,omitempty" json:"compactor_block_upload_enabled,omitempty"`
// +kubebuilder:validation:Optional
CompactorBlockUploadValidationEnabled *bool `yaml:"compactor_block_upload_validation_enabled,omitempty" json:"compactor_block_upload_validation_enabled,omitempty"`
// +kubebuilder:validation:Optional
CompactorBlockUploadVerifyChunks *bool `yaml:"compactor_block_upload_verify_chunks,omitempty" json:"compactor_block_upload_verify_chunks,omitempty"`
// +kubebuilder:validation:Optional
CompactorBlockUploadMaxBlockSizeBytes *int64 `` /* 141-byte string literal not displayed */
// This config doesn't have a CLI flag registered here because they're registered in
// their own original config struct.
// +kubebuilder:validation:Optional
S3SSEType *string `` /* 241-byte string literal not displayed */
// +kubebuilder:validation:Optional
S3SSEKMSKeyID *string `` /* 176-byte string literal not displayed */
// +kubebuilder:validation:Optional
S3SSEKMSEncryptionContext *string `` /* 304-byte string literal not displayed */
// Alertmanager.
// Comma-separated list of network CIDRs to block in Alertmanager receiver
// +kubebuilder:validation:Optional
AlertmanagerReceiversBlockCIDRNetworks *string `` /* 137-byte string literal not displayed */
// +kubebuilder:validation:Optional
AlertmanagerReceiversBlockPrivateAddresses *bool `` /* 145-byte string literal not displayed */
// +kubebuilder:validation:Optional
NotificationRateLimit *float64 `yaml:"alertmanager_notification_rate_limit,omitempty" json:"alertmanager_notification_rate_limit,omitempty"`
// +kubebuilder:validation:Optional
NotificationRateLimitPerIntegration map[string]float64 `` /* 139-byte string literal not displayed */
// +kubebuilder:validation:Optional
AlertmanagerMaxConfigSizeBytes *int `yaml:"alertmanager_max_config_size_bytes,omitempty" json:"alertmanager_max_config_size_bytes,omitempty"`
// +kubebuilder:validation:Optional
AlertmanagerMaxTemplatesCount *int `yaml:"alertmanager_max_templates_count,omitempty" json:"alertmanager_max_templates_count,omitempty"`
// +kubebuilder:validation:Optional
AlertmanagerMaxTemplateSizeBytes *int `yaml:"alertmanager_max_template_size_bytes,omitempty" json:"alertmanager_max_template_size_bytes,omitempty"`
// +kubebuilder:validation:Optional
AlertmanagerMaxDispatcherAggregationGroups *int `` /* 127-byte string literal not displayed */
// +kubebuilder:validation:Optional
AlertmanagerMaxAlertsCount *int `yaml:"alertmanager_max_alerts_count,omitempty" json:"alertmanager_max_alerts_count,omitempty"`
// +kubebuilder:validation:Optional
AlertmanagerMaxAlertsSizeBytes *int `yaml:"alertmanager_max_alerts_size_bytes,omitempty" json:"alertmanager_max_alerts_size_bytes,omitempty"`
}
func (*MimirLimits) DeepCopy ¶
func (in *MimirLimits) DeepCopy() *MimirLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirLimits.
func (*MimirLimits) DeepCopyInto ¶
func (in *MimirLimits) DeepCopyInto(out *MimirLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirLimitsInput ¶
type MimirLimitsInput MimirLimits
func (*MimirLimitsInput) DeepCopy ¶
func (in *MimirLimitsInput) DeepCopy() *MimirLimitsInput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirLimitsInput.
func (*MimirLimitsInput) DeepCopyInto ¶
func (in *MimirLimitsInput) DeepCopyInto(out *MimirLimitsInput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MimirSpec ¶
type MimirSpec struct {
// +kubebuilder:validation:Required
ConfigMap ConfigMapSelector `json:"configMap"`
// +kubebuilder:validation:Optional
Config *MimirConfigSpec `json:"config,omitempty"`
}
func (*MimirSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MimirSpec.
func (*MimirSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MultiRuntimeConfig ¶
type MultiRuntimeConfig struct {
// Primary store used by MultiClient. Can be updated in runtime to switch to a different store (eg. consul -> etcd,
// or to gossip). Doing this allows nice migration between stores. Empty values are ignored.
PrimaryStore string `json:"primary"`
// Mirroring enabled or not. Nil = no change.
Mirroring *bool `json:"mirror_enabled"`
}
func (*MultiRuntimeConfig) DeepCopy ¶
func (in *MultiRuntimeConfig) DeepCopy() *MultiRuntimeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiRuntimeConfig.
func (*MultiRuntimeConfig) DeepCopyInto ¶
func (in *MultiRuntimeConfig) DeepCopyInto(out *MultiRuntimeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotifierBasicAuth ¶
type NotifierBasicAuth struct {
// +kubebuilder:validation:Optional
Username *string `yaml:"basic_auth_username,omitempty" json:"basic_auth_username,omitempty"`
// +kubebuilder:validation:Optional
Password *string `yaml:"basic_auth_password,omitempty" json:"basic_auth_password,omitempty"`
}
NotifBasicAuth configures basic authentication for HTTP clients.
func (*NotifierBasicAuth) DeepCopy ¶
func (in *NotifierBasicAuth) DeepCopy() *NotifierBasicAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotifierBasicAuth.
func (*NotifierBasicAuth) DeepCopyInto ¶
func (in *NotifierBasicAuth) DeepCopyInto(out *NotifierBasicAuth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotifierConfig ¶
type NotifierConfig struct {
// +kubebuilder:validation:Optional
TLS *NotifierTLSClientConfig `yaml:",inline,omitempty" json:",inline,omitempty"`
// +kubebuilder:validation:Optional
BasicAuth *NotifierBasicAuth `yaml:",inline,omitempty" json:",inline,omitempty"`
// +kubebuilder:validation:Optional
HeaderAuth *NotifierHeaderAuth `yaml:",inline,omitempty" json:",inline,omitempty"`
}
func (*NotifierConfig) DeepCopy ¶
func (in *NotifierConfig) DeepCopy() *NotifierConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotifierConfig.
func (*NotifierConfig) DeepCopyInto ¶
func (in *NotifierConfig) DeepCopyInto(out *NotifierConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotifierHeaderAuth ¶
type NotifierHeaderAuth struct {
// +kubebuilder:validation:Optional
Type *string `yaml:"type,omitempty" json:"type,omitempty"`
// +kubebuilder:validation:Optional
Credentials *string `yaml:"credentials,omitempty" json:"credentials,omitempty"`
// +kubebuilder:validation:Optional
CredentialsFile *string `yaml:"credentials_file,omitempty" json:"credentials_file,omitempty"`
}
HeaderAuth condigures header based authorization for HTTP clients.
func (*NotifierHeaderAuth) DeepCopy ¶
func (in *NotifierHeaderAuth) DeepCopy() *NotifierHeaderAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotifierHeaderAuth.
func (*NotifierHeaderAuth) DeepCopyInto ¶
func (in *NotifierHeaderAuth) DeepCopyInto(out *NotifierHeaderAuth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotifierTLSClientConfig ¶
type NotifierTLSClientConfig struct {
// +kubebuilder:validation:Optional
CertPath *string `yaml:"tls_cert_path,omitempty" json:"tls_cert_path,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
KeyPath *string `yaml:"tls_key_path,omitempty" json:"tls_key_path,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
CAPath *string `yaml:"tls_ca_path,omitempty" json:"tls_ca_path,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
ServerName *string `yaml:"tls_server_name,omitempty" json:"tls_server_name,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
InsecureSkipVerify *bool `yaml:"tls_insecure_skip_verify,omitempty" json:"tls_insecure_skip_verify,omitempty" category:"advanced"`
// +kubebuilder:validation:Optional
CipherSuites *string `` /* 148-byte string literal not displayed */
// +kubebuilder:validation:Optional
MinVersion *string `yaml:"tls_min_version,omitempty" json:"tls_min_version,omitempty" category:"advanced"`
}
ClientConfig is the config for client TLS.
func (*NotifierTLSClientConfig) DeepCopy ¶
func (in *NotifierTLSClientConfig) DeepCopy() *NotifierTLSClientConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotifierTLSClientConfig.
func (*NotifierTLSClientConfig) DeepCopyInto ¶
func (in *NotifierTLSClientConfig) DeepCopyInto(out *NotifierTLSClientConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OAuth2 ¶
type OAuth2 struct {
ClientID string `yaml:"client_id" json:"client_id"`
// +kubebuilder:validation:Optional
ClientSecret *prom_config.Secret `yaml:"client_secret" json:"client_secret"`
// +kubebuilder:validation:Optional
ClientSecretFile *string `yaml:"client_secret_file" json:"client_secret_file"`
// +kubebuilder:validation:Optional
Scopes []string `yaml:"scopes,omitempty" json:"scopes,omitempty"`
// +kubebuilder:validation:Optional
TokenURL *string `yaml:"token_url" json:"token_url"`
// +kubebuilder:validation:Optional
EndpointParams map[string]string `yaml:"endpoint_params,omitempty" json:"endpoint_params,omitempty"`
// +kubebuilder:validation:Optional
TLSConfig *prom_config.TLSConfig `yaml:"tls_config,omitempty" json:"tls_config,omitempty"`
// +kubebuilder:validation:Optional
ProxyConfig `yaml:",inline" json:",inline"`
}
OAuth2 is the oauth2 client configuration.
func (*OAuth2) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2.
func (*OAuth2) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PolicyMatch ¶
type PolicyMatch struct {
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=strict;regex
MatchType *MatchType `yaml:"match_type,omitempty" json:"match_type,omitempty"`
// +kubebuilder:validation:Optional
Attributes []MatchPolicyAttribute `yaml:"attributes,omitempty" json:"attributes,omitempty"`
}
func (*PolicyMatch) DeepCopy ¶
func (in *PolicyMatch) DeepCopy() *PolicyMatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyMatch.
func (*PolicyMatch) DeepCopyInto ¶
func (in *PolicyMatch) DeepCopyInto(out *PolicyMatch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyConfig ¶
type ProxyConfig struct {
// HTTP proxy server to use to connect to the targets.
// +kubebuilder:validation:Optional
ProxyURL *string `yaml:"proxy_url,omitempty" json:"proxy_url,omitempty"`
// NoProxy contains addresses that should not use a proxy.
// +kubebuilder:validation:Optional
NoProxy *string `yaml:"no_proxy,omitempty" json:"no_proxy,omitempty"`
// ProxyFromEnvironment makes use of net/http ProxyFromEnvironment function
// to determine proxies.
// +kubebuilder:validation:Optional
ProxyFromEnvironment *bool `yaml:"proxy_from_environment,omitempty" json:"proxy_from_environment,omitempty"`
// ProxyConnectHeader optionally specifies headers to send to
// proxies during CONNECT requests. Assume that at least _some_ of
// these headers are going to contain secrets and use Secret as the
// value type instead of string.
// +kubebuilder:validation:Optional
ProxyConnectHeader prom_config.Header `yaml:"proxy_connect_header,omitempty" json:"proxy_connect_header,omitempty"`
}
func (*ProxyConfig) DeepCopy ¶
func (in *ProxyConfig) DeepCopy() *ProxyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyConfig.
func (*ProxyConfig) DeepCopyInto ¶
func (in *ProxyConfig) DeepCopyInto(out *ProxyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type QueueConfig ¶
type QueueConfig struct {
// Number of samples to buffer per shard before we block. Defaults to
// MaxSamplesPerSend.
// +kubebuilder:validation:Optional
Capacity *int `yaml:"capacity,omitempty" json:"capacity,omitempty"`
// Max number of shards, i.e. amount of concurrency.
// +kubebuilder:validation:Optional
MaxShards *int `yaml:"max_shards,omitempty" json:"max_shards,omitempty"`
// Min number of shards, i.e. amount of concurrency.
// +kubebuilder:validation:Optional
MinShards *int `yaml:"min_shards,omitempty" json:"min_shards,omitempty"`
// Maximum number of samples per send.
// +kubebuilder:validation:Optional
MaxSamplesPerSend *int `yaml:"max_samples_per_send,omitempty" json:"max_samples_per_send,omitempty"`
// Maximum time sample will wait in buffer.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
BatchSendDeadline *metav1.Duration `yaml:"batch_send_deadline,omitempty" json:"batch_send_deadline,omitempty"`
// On recoverable errors, backoff exponentially.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MinBackoff *metav1.Duration `yaml:"min_backoff,omitempty" json:"min_backoff,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxBackoff *metav1.Duration `yaml:"max_backoff,omitempty" json:"max_backoff,omitempty"`
// +kubebuilder:validation:Optional
RetryOnRateLimit *bool `yaml:"retry_on_http_429,omitempty" json:"retry_on_http_429,omitempty"`
}
func (*QueueConfig) DeepCopy ¶
func (in *QueueConfig) DeepCopy() *QueueConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueConfig.
func (*QueueConfig) DeepCopyInto ¶
func (in *QueueConfig) DeepCopyInto(out *QueueConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RelabelAction ¶
type RelabelAction string
const ( RelabelActionReplace RelabelAction = "replace" RelabelActionReplace0 RelabelAction = "Replace" RelabelActionKeep RelabelAction = "keep" RelabelActionKeep0 RelabelAction = "Keep" RelabelActionDrop RelabelAction = "drop" RelabelActionDrop0 RelabelAction = "Drop" RelabelActionHashmod RelabelAction = "hashmod" RelabelActionHashMod RelabelAction = "HashMod" RelabelActionLabelmap RelabelAction = "labelmap" RelabelActionLabelMap RelabelAction = "LabelMap" RelabelActionLabeldrop RelabelAction = "labeldrop" RelabelActionLabelDrop RelabelAction = "LabelDrop" RelabelActionLabelkeep RelabelAction = "labelkeep" RelabelActionLabelKeep RelabelAction = "LabelKeep" RelabelActionLowercase RelabelAction = "lowercase" RelabelActionLowercase0 RelabelAction = "Lowercase" RelabelActionUppercase RelabelAction = "uppercase" RelabelActionUppercase0 RelabelAction = "Uppercase" RelabelActionKeepequal RelabelAction = "keepequal" RelabelActionKeepEqual RelabelAction = "KeepEqual" RelabelActionDropequal RelabelAction = "dropequal" RelabelActionDropEqual RelabelAction = "DropEqual" )
func (RelabelAction) IsValid ¶
func (e RelabelAction) IsValid() bool
func (RelabelAction) MarshalGQL ¶
func (e RelabelAction) MarshalGQL(w io.Writer)
func (RelabelAction) String ¶
func (e RelabelAction) String() string
func (*RelabelAction) UnmarshalGQL ¶
func (e *RelabelAction) UnmarshalGQL(v interface{}) error
type RelabelConfig ¶
type RelabelConfig struct {
// A list of labels from which values are taken and concatenated
// with the configured separator in order.
// +kubebuilder:validation:Optional
SourceLabels []LabelName `yaml:"source_labels,omitempty" json:"source_labels,omitempty"`
// Separator is the string between concatenated values from the source labels.
// +kubebuilder:validation:Optional
Separator *string `yaml:"separator,omitempty" json:"separator,omitempty"`
// Regex against which the concatenation is matched.
// +kubebuilder:validation:Optional
Regex *string `yaml:"regex,omitempty" json:"regex,omitempty"`
// Modulus to take of the hash of concatenated values from the source labels.
// +kubebuilder:validation:Optional
Modulus *uint64 `yaml:"modulus,omitempty" json:"modulus,omitempty"`
// TargetLabel is the label to which the resulting string is written in a replacement.
// Regexp interpolation is allowed for the replace action.
// +kubebuilder:validation:Optional
TargetLabel *string `yaml:"target_label,omitempty" json:"target_label,omitempty"`
// Replacement is the regex replacement pattern to be used.
// +kubebuilder:validation:Optional
Replacement *string `yaml:"replacement,omitempty" json:"replacement,omitempty"`
// Action is the action to be performed for the relabeling.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=replace;Replace;keep;Keep;drop;Drop;hashmod;HashMod;labelmap;LabelMap;labeldrop;LabelDrop;labelkeep;LabelKeep;lowercase;Lowercase;uppercase;Uppercase;keepequal;KeepEqual;dropequal;DropEqual
// +kubebuilder:default=replace
Action *RelabelAction `yaml:"action,omitempty" json:"action,omitempty"`
}
func (*RelabelConfig) DeepCopy ¶
func (in *RelabelConfig) DeepCopy() *RelabelConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RelabelConfig.
func (*RelabelConfig) DeepCopyInto ¶
func (in *RelabelConfig) DeepCopyInto(out *RelabelConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteWriteSpec ¶
type RemoteWriteSpec struct {
URL string `yaml:"url" json:"url"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
RemoteTimeout *metav1.Duration `yaml:"remote_timeout,omitempty" json:"remote_timeout,omitempty"`
// +kubebuilder:validation:Optional
Headers map[string]string `yaml:"headers,omitempty" json:"headers,omitempty"`
// +kubebuilder:validation:Optional
WriteRelabelConfigs []RelabelConfig `yaml:"write_relabel_configs,omitempty" json:"write_relabel_configs,omitempty"`
// +kubebuilder:validation:Optional
Name *string `yaml:"name,omitempty" json:"name,omitempty"`
// +kubebuilder:validation:Optional
SendExemplars *bool `yaml:"send_exemplars,omitempty" json:"send_exemplars,omitempty"`
// +kubebuilder:validation:Optional
SendNativeHistograms *bool `yaml:"send_native_histograms,omitempty" json:"send_native_histograms,omitempty"`
// We cannot do proper Go type embedding below as the parser will then parse
// values arbitrarily into the overflow maps of further-down types.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:XPreserveUnknownFields
// +kubebuilder:pruning:PreserveUnknownFields
HTTPClientConfig *HTTPClientConfig `yaml:",inline" json:",inline"`
// +kubebuilder:validation:Optional
QueueConfig *QueueConfig `yaml:"queue_config,omitempty" json:"queue_config,omitempty"`
// +kubebuilder:validation:Optional
MetadataConfig *MetadataConfig `yaml:"metadata_config,omitempty" json:"metadata_config,omitempty"`
// +kubebuilder:validation:Optional
SigV4Config *SigV4Config `yaml:"sigv4,omitempty" json:"sigv4,omitempty"`
}
func (*RemoteWriteSpec) DeepCopy ¶
func (in *RemoteWriteSpec) DeepCopy() *RemoteWriteSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteWriteSpec.
func (*RemoteWriteSpec) DeepCopyInto ¶
func (in *RemoteWriteSpec) DeepCopyInto(out *RemoteWriteSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RulerAlertManagerConfig ¶
type RulerAlertManagerConfig struct {
// URL of the Alertmanager to send notifications to.
AlertmanagerURL string `yaml:"alertmanager_url,omitempty" json:"alertmanager_url,omitempty"`
// Whether to use DNS SRV records to discover Alertmanager.
// +kubebuilder:validation:Optional
AlertmanagerDiscovery *bool `yaml:"enable_alertmanager_discovery,omitempty" json:"enable_alertmanager_discovery,omitempty"`
// How long to wait between refreshing the list of Alertmanager based on DNS service discovery.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
AlertmanagerRefreshInterval *metav1.Duration `yaml:"alertmanager_refresh_interval,omitempty" json:"alertmanager_refresh_interval,omitempty"`
// Enables the ruler notifier to use the Alertmananger V2 API.
// +kubebuilder:validation:Optional
AlertmanangerEnableV2API *bool `yaml:"enable_alertmanager_v2,omitempty" json:"enable_alertmanager_v2,omitempty"`
// Configuration for alert relabeling.
// +kubebuilder:validation:Optional
AlertRelabelConfigs []RelabelConfig `` /* 126-byte string literal not displayed */
// Capacity of the queue for notifications to be sent to the Alertmanager.
// +kubebuilder:validation:Optional
NotificationQueueCapacity *int `yaml:"notification_queue_capacity,omitempty" json:"notification_queue_capacity,omitempty"`
// HTTP timeout duration when sending notifications to the Alertmanager.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
NotificationTimeout *metav1.Duration `yaml:"notification_timeout,omitempty" json:"notification_timeout,omitempty"`
// Client configs for interacting with the Alertmanager
// +kubebuilder:validation:Optional
Notifier *NotifierConfig `yaml:"alertmanager_client,omitempty" json:"alertmanager_client,omitempty"`
}
func (*RulerAlertManagerConfig) DeepCopy ¶
func (in *RulerAlertManagerConfig) DeepCopy() *RulerAlertManagerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RulerAlertManagerConfig.
func (*RulerAlertManagerConfig) DeepCopyInto ¶
func (in *RulerAlertManagerConfig) DeepCopyInto(out *RulerAlertManagerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardstreamsConfig ¶
type ShardstreamsConfig struct {
// +kubebuilder:validation:Optional
Enabled *bool `yaml:"enabled,omitempty" json:"enabled,omitempty"`
// +kubebuilder:validation:Optional
LoggingEnabled *bool `yaml:"logging_enabled,omitempty" json:"logging_enabled,omitempty"`
// DesiredRate is the threshold used to shard the stream into smaller pieces.
// Expected to be in bytes.
// +kubebuilder:validation:Optional
DesiredRate *uint64 `yaml:"desired_rate,omitempty" json:"desired_rate,omitempty"`
}
func (*ShardstreamsConfig) DeepCopy ¶
func (in *ShardstreamsConfig) DeepCopy() *ShardstreamsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardstreamsConfig.
func (*ShardstreamsConfig) DeepCopyInto ¶
func (in *ShardstreamsConfig) DeepCopyInto(out *ShardstreamsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SigV4Config ¶
type SigV4Config struct {
// +kubebuilder:validation:Optional
Region *string `yaml:"region,omitempty" json:"region,omitempty"`
// +kubebuilder:validation:Optional
AccessKey *string `yaml:"access_key,omitempty" json:"access_key,omitempty"`
// +kubebuilder:validation:Optional
SecretKey *prom_config.Secret `yaml:"secret_key,omitempty" json:"secret_key,omitempty"`
// +kubebuilder:validation:Optional
Profile *string `yaml:"profile,omitempty" json:"profile,omitempty"`
// +kubebuilder:validation:Optional
RoleARN *string `yaml:"role_arn,omitempty" json:"role_arn,omitempty"`
}
SigV4Config is the configuration for signing remote write requests with AWS's SigV4 verification process. Empty values will be retrieved using the AWS default credentials chain.
func (*SigV4Config) DeepCopy ¶
func (in *SigV4Config) DeepCopy() *SigV4Config
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SigV4Config.
func (*SigV4Config) DeepCopyInto ¶
func (in *SigV4Config) DeepCopyInto(out *SigV4Config)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StreamRetention ¶
type StreamRetention struct {
// +kubebuilder:validation:Optional
Period *metav1.Duration `yaml:"period,omitempty" json:"period,omitempty"`
// +kubebuilder:validation:Optional
Priority *int `yaml:"priority,omitempty" json:"priority,omitempty"`
// +kubebuilder:validation:Optional
Selector *string `yaml:"selector,omitempty" json:"selector,omitempty"`
}
func (*StreamRetention) DeepCopy ¶
func (in *StreamRetention) DeepCopy() *StreamRetention
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamRetention.
func (*StreamRetention) DeepCopyInto ¶
func (in *StreamRetention) DeepCopyInto(out *StreamRetention)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TempoLimits ¶
type TempoLimits struct {
// Distributor enforced limits.
// +kubebuilder:validation:Optional
IngestionRateStrategy *string `yaml:"ingestion_rate_strategy,omitempty" json:"ingestion_rate_strategy,omitempty"`
// +kubebuilder:validation:Optional
IngestionRateLimitBytes *int `yaml:"ingestion_rate_limit_bytes,omitempty" json:"ingestion_rate_limit_bytes,omitempty"`
// +kubebuilder:validation:Optional
IngestionBurstSizeBytes *int `yaml:"ingestion_burst_size_bytes,omitempty" json:"ingestion_burst_size_bytes,omitempty"`
// Ingester enforced limits.
// +kubebuilder:validation:Optional
MaxLocalTracesPerUser *int `yaml:"max_traces_per_user,omitempty" json:"max_traces_per_user,omitempty"`
// +kubebuilder:validation:Optional
MaxGlobalTracesPerUser *int `yaml:"max_global_traces_per_user,omitempty" json:"max_global_traces_per_user,omitempty"`
// Forwarders
// +kubebuilder:validation:Optional
Forwarders []string `yaml:"forwarders,omitempty" json:"forwarders,omitempty"`
// Metrics-generator config
// +kubebuilder:validation:Optional
MetricsGeneratorRingSize *int `yaml:"metrics_generator_ring_size,omitempty" json:"metrics_generator_ring_size,omitempty"`
// TODO: ensure the list only contains service-graphs and span-metrics
// +kubebuilder:validation:Optional
MetricsGeneratorProcessors []string `yaml:"metrics_generator_processors,omitempty" json:"metrics_generator_processors,omitempty"`
// +kubebuilder:validation:Optional
MetricsGeneratorMaxActiveSeries *uint32 `yaml:"metrics_generator_max_active_series,omitempty" json:"metrics_generator_max_active_series,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MetricsGeneratorCollectionInterval *metav1.Duration `yaml:"metrics_generator_collection_interval,omitempty" json:"metrics_generator_collection_interval,omitempty"`
// +kubebuilder:validation:Optional
MetricsGeneratorDisableCollection *bool `yaml:"metrics_generator_disable_collection,omitempty" json:"metrics_generator_disable_collection,omitempty"`
// +kubebuilder:validation:Optional
MetricsGeneratorForwarderQueueSize *int `yaml:"metrics_generator_forwarder_queue_size,omitempty" json:"metrics_generator_forwarder_queue_size,omitempty"`
// +kubebuilder:validation:Optional
MetricsGeneratorForwarderWorkers *int `yaml:"metrics_generator_forwarder_workers,omitempty" json:"metrics_generator_forwarder_workers,omitempty"`
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorServiceGraphsHistogramBuckets []float64 `` /* 155-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorServiceGraphsDimensions []string `` /* 141-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorServiceGraphsPeerAttributes []string `` /* 151-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorServiceGraphsEnableClientServerPrefix *bool `` /* 175-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsHistogramBuckets []float64 `` /* 151-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsDimensions []string `` /* 137-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsIntrinsicDimensions map[string]bool `` /* 157-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsFilterPolicies []FilterPolicy `` /* 147-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsDimensionMappings []DimensionMappings `` /* 152-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorSpanMetricsEnableTargetInfo *bool `` /* 153-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorLocalBlocksMaxLiveTraces *uint64 `` /* 147-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MetricsGeneratorProcessorLocalBlocksMaxBlockDuration *metav1.Duration `` /* 153-byte string literal not displayed */
// +kubebuilder:validation:Optional
MetricsGeneratorProcessorLocalBlocksMaxBlockBytes *uint64 `` /* 147-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MetricsGeneratorProcessorLocalBlocksFlushCheckPeriod *metav1.Duration `` /* 153-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MetricsGeneratorProcessorLocalBlocksTraceIdlePeriod *metav1.Duration `` /* 151-byte string literal not displayed */
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MetricsGeneratorProcessorLocalBlocksCompleteBlockTimeout *metav1.Duration `` /* 161-byte string literal not displayed */
// Compactor enforced limits.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
BlockRetention *metav1.Duration `yaml:"block_retention,omitempty" json:"block_retention,omitempty"`
// Querier and Ingester enforced limits.
// +kubebuilder:validation:Optional
MaxBytesPerTagValuesQuery *int `yaml:"max_bytes_per_tag_values_query,omitempty" json:"max_bytes_per_tag_values_query,omitempty"`
// +kubebuilder:validation:Optional
MaxBlocksPerTagValuesQuery *int `yaml:"max_blocks_per_tag_values_query,omitempty" json:"max_blocks_per_tag_values_query,omitempty"`
// QueryFrontend enforced limits
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
MaxSearchDuration *metav1.Duration `yaml:"max_search_duration,omitempty" json:"max_search_duration,omitempty"`
// MaxBytesPerTrace is enforced in the Ingester, Compactor, Querier (Search) and Serverless (Search). It
// is not used when doing a trace by id lookup.
// +kubebuilder:validation:Optional
MaxBytesPerTrace *int `yaml:"max_bytes_per_trace,omitempty" json:"max_bytes_per_trace,omitempty"`
}
func (*TempoLimits) DeepCopy ¶
func (in *TempoLimits) DeepCopy() *TempoLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoLimits.
func (*TempoLimits) DeepCopyInto ¶
func (in *TempoLimits) DeepCopyInto(out *TempoLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TempoLimitsInput ¶
type TempoLimitsInput TempoLimits
func (*TempoLimitsInput) DeepCopy ¶
func (in *TempoLimitsInput) DeepCopy() *TempoLimitsInput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoLimitsInput.
func (*TempoLimitsInput) DeepCopyInto ¶
func (in *TempoLimitsInput) DeepCopyInto(out *TempoLimitsInput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TempoSpec ¶
type TempoSpec struct {
// +kubebuilder:validation:Required
ConfigMap ConfigMapSelector `json:"configMap"`
}
func (*TempoSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoSpec.
func (*TempoSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tenant ¶
type Tenant struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TenantSpec `json:"spec,omitempty"`
Status TenantStatus `json:"status,omitempty"`
}
+genclient:nonNamespaced Tenant is the Schema for the tenants API
func (*Tenant) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tenant.
func (*Tenant) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Tenant) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Tenant) GetConditions ¶
func (t *Tenant) GetConditions() crhelperTypes.Conditions
GetConditions returns the list of conditions for a WireGuardServer API object.
func (*Tenant) SetConditions ¶
func (t *Tenant) SetConditions(conditions crhelperTypes.Conditions)
SetConditions will set the given conditions on a WireGuardServer object.
type TenantList ¶
type TenantList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Tenant `json:"items"`
}
TenantList contains a list of Tenant
func (*TenantList) DeepCopy ¶
func (in *TenantList) DeepCopy() *TenantList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantList.
func (*TenantList) DeepCopyInto ¶
func (in *TenantList) DeepCopyInto(out *TenantList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TenantList) DeepCopyObject ¶
func (in *TenantList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TenantSpec ¶
type TenantSpec struct {
// DisplayName is a human readable name for the tenant
DisplayName string `json:"displayName,omitempty"`
// Limits is the set of limits for the tenant
Limits *LimitSpec `json:"limits,omitempty"`
}
TenantSpec defines the desired state of Tenant
func (*TenantSpec) DeepCopy ¶
func (in *TenantSpec) DeepCopy() *TenantSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantSpec.
func (*TenantSpec) DeepCopyInto ¶
func (in *TenantSpec) DeepCopyInto(out *TenantSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TenantStatus ¶
type TenantStatus struct {
// Conditions defines current service state of the PacketMachine.
// +optional
Conditions crhelperTypes.Conditions `json:"conditions,omitempty"`
}
TenantStatus defines the observed state of Tenant
func (*TenantStatus) DeepCopy ¶
func (in *TenantStatus) DeepCopy() *TenantStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantStatus.
func (*TenantStatus) DeepCopyInto ¶
func (in *TenantStatus) DeepCopyInto(out *TenantStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WrappedMap ¶
type WrappedMap struct {
Object map[string]interface{} `yaml:",inline" json:",inline"`
}
func (*WrappedMap) DeepCopy ¶
func (w *WrappedMap) DeepCopy() *WrappedMap
func (*WrappedMap) DeepCopyInto ¶
func (w *WrappedMap) DeepCopyInto(out *WrappedMap)
DeepCopyInto is an ~autogenerated~ deepcopy function, copying the receiver, writing into out. in must be non-nil. Works around https://github.com/kubernetes/code-generator/issues/50
func (WrappedMap) MarshalGQL ¶
func (e WrappedMap) MarshalGQL(w io.Writer)
func (*WrappedMap) MarshalJSON ¶
func (w *WrappedMap) MarshalJSON() ([]byte, error)
MarshalJSON defers JSON encoding to the wrapped map
func (*WrappedMap) UnmarshalGQL ¶
func (e *WrappedMap) UnmarshalGQL(v interface{}) error
func (*WrappedMap) UnmarshalJSON ¶
func (w *WrappedMap) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the Unmarshaler interface.