Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the pyrra v1alpha1 API group +kubebuilder:object:generate=true +groupName=pyrra.dev
Index ¶
- Variables
- type Alerting
- type BoolGaugeIndicator
- type LatencyIndicator
- type NativeLatencyIndicator
- type Query
- type RatioIndicator
- type ServiceLevelIndicator
- type ServiceLevelObjective
- func (in *ServiceLevelObjective) DeepCopy() *ServiceLevelObjective
- func (in *ServiceLevelObjective) DeepCopyInto(out *ServiceLevelObjective)
- func (in *ServiceLevelObjective) DeepCopyObject() runtime.Object
- func (in *ServiceLevelObjective) Internal() (slo.Objective, error)
- func (in *ServiceLevelObjective) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error)
- func (in *ServiceLevelObjective) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (in *ServiceLevelObjective) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type ServiceLevelObjectiveList
- type ServiceLevelObjectiveSpec
- type ServiceLevelObjectiveStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "pyrra.dev", 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 )
Functions ¶
This section is empty.
Types ¶
type Alerting ¶ added in v0.5.0
type Alerting struct {
// +optional
// +kubebuilder:deprecatedversion:warning="disabled is deprecated. Use burnrates instead."
// Disabled is used to disable the generation of alerts. Recording rules are still generated.
Disabled *bool `json:"disabled,omitempty"`
// +optional
// +kubebuilder:default:=true
Burnrates *bool `json:"burnrates,omitempty"`
// +optional
// +kubebuilder:default:=true
Absent *bool `json:"absent,omitempty"`
// +optional
// Name is used as the name of the alert generated by Pyrra. Defaults to "ErrorBudgetBurn".
Name string `json:"name,omitempty"`
// +optional
// AbsentName is used as the name of the absent alert generated by Pyrra. Defaults to "SLOMetricAbsent".
AbsentName string `json:"absentName,omitempty"`
}
func (*Alerting) DeepCopy ¶ added in v0.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alerting.
func (*Alerting) DeepCopyInto ¶ added in v0.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BoolGaugeIndicator ¶ added in v0.6.0
type BoolGaugeIndicator struct {
Query `json:",inline"`
// +optional
// Grouping allows an SLO to be defined for many SLI at once, like HTTP handlers for example.
Grouping []string `json:"grouping"`
}
func (*BoolGaugeIndicator) DeepCopy ¶ added in v0.6.0
func (in *BoolGaugeIndicator) DeepCopy() *BoolGaugeIndicator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BoolGaugeIndicator.
func (*BoolGaugeIndicator) DeepCopyInto ¶ added in v0.6.0
func (in *BoolGaugeIndicator) DeepCopyInto(out *BoolGaugeIndicator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LatencyIndicator ¶
type LatencyIndicator struct {
// Success is the metric that returns how many errors there are.
Success Query `json:"success"`
// Total is the metric that returns how many requests there are in total.
Total Query `json:"total"`
// +optional
// Grouping allows an SLO to be defined for many SLI at once, like HTTP handlers for example.
Grouping []string `json:"grouping"`
}
func (*LatencyIndicator) DeepCopy ¶
func (in *LatencyIndicator) DeepCopy() *LatencyIndicator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LatencyIndicator.
func (*LatencyIndicator) DeepCopyInto ¶
func (in *LatencyIndicator) DeepCopyInto(out *LatencyIndicator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NativeLatencyIndicator ¶ added in v0.7.0
type NativeLatencyIndicator struct {
// Total is the metric that returns how many requests there are in total.
Total Query `json:"total"`
// Latency the requests should be faster than.
Latency string `json:"latency"`
// +optional
// Grouping allows an SLO to be defined for many SLI at once, like HTTP handlers for example.
Grouping []string `json:"grouping"`
}
func (*NativeLatencyIndicator) DeepCopy ¶ added in v0.7.0
func (in *NativeLatencyIndicator) DeepCopy() *NativeLatencyIndicator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NativeLatencyIndicator.
func (*NativeLatencyIndicator) DeepCopyInto ¶ added in v0.7.0
func (in *NativeLatencyIndicator) DeepCopyInto(out *NativeLatencyIndicator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Query ¶
type Query struct {
Metric string `json:"metric"`
}
Query contains a PromQL metric.
func (*Query) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Query.
func (*Query) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RatioIndicator ¶
type RatioIndicator struct {
// Errors is the metric that returns how many errors there are.
Errors Query `json:"errors"`
// Total is the metric that returns how many requests there are in total.
Total Query `json:"total"`
// +optional
// Grouping allows an SLO to be defined for many SLI at once, like HTTP handlers for example.
Grouping []string `json:"grouping"`
}
func (*RatioIndicator) DeepCopy ¶
func (in *RatioIndicator) DeepCopy() *RatioIndicator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RatioIndicator.
func (*RatioIndicator) DeepCopyInto ¶
func (in *RatioIndicator) DeepCopyInto(out *RatioIndicator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceLevelIndicator ¶
type ServiceLevelIndicator struct {
// +optional
// Ratio is the indicator that measures against errors / total events.
Ratio *RatioIndicator `json:"ratio,omitempty"`
// +optional
// Latency is the indicator that measures a certain percentage to be faster than the expected latency.
Latency *LatencyIndicator `json:"latency,omitempty"`
// +optional
// LatencyNative is the indicator that measures a certain percentage to be faster than the expected latency.
// This uses the new native histograms in Prometheus.
LatencyNative *NativeLatencyIndicator `json:"latencyNative,omitempty"`
// +optional
// BoolGauge is the indicator that measures whether a boolean gauge is
// successful.
BoolGauge *BoolGaugeIndicator `json:"bool_gauge,omitempty"`
}
ServiceLevelIndicator defines the underlying indicator that is a Prometheus metric.
func (*ServiceLevelIndicator) DeepCopy ¶
func (in *ServiceLevelIndicator) DeepCopy() *ServiceLevelIndicator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLevelIndicator.
func (*ServiceLevelIndicator) DeepCopyInto ¶
func (in *ServiceLevelIndicator) DeepCopyInto(out *ServiceLevelIndicator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceLevelObjective ¶
type ServiceLevelObjective struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ServiceLevelObjectiveSpec `json:"spec,omitempty"`
Status ServiceLevelObjectiveStatus `json:"status,omitempty"`
}
ServiceLevelObjective is the Schema for the ServiceLevelObjectives API.
func (*ServiceLevelObjective) DeepCopy ¶
func (in *ServiceLevelObjective) DeepCopy() *ServiceLevelObjective
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLevelObjective.
func (*ServiceLevelObjective) DeepCopyInto ¶
func (in *ServiceLevelObjective) DeepCopyInto(out *ServiceLevelObjective)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceLevelObjective) DeepCopyObject ¶
func (in *ServiceLevelObjective) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServiceLevelObjective) Internal ¶
func (in *ServiceLevelObjective) Internal() (slo.Objective, error)
func (*ServiceLevelObjective) ValidateCreate ¶ added in v0.7.0
func (*ServiceLevelObjective) ValidateDelete ¶ added in v0.7.0
func (*ServiceLevelObjective) ValidateUpdate ¶ added in v0.7.0
type ServiceLevelObjectiveList ¶
type ServiceLevelObjectiveList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ServiceLevelObjective `json:"items"`
}
ServiceLevelObjectiveList contains a list of ServiceLevelObjective.
func (*ServiceLevelObjectiveList) DeepCopy ¶
func (in *ServiceLevelObjectiveList) DeepCopy() *ServiceLevelObjectiveList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLevelObjectiveList.
func (*ServiceLevelObjectiveList) DeepCopyInto ¶
func (in *ServiceLevelObjectiveList) DeepCopyInto(out *ServiceLevelObjectiveList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceLevelObjectiveList) DeepCopyObject ¶
func (in *ServiceLevelObjectiveList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServiceLevelObjectiveSpec ¶
type ServiceLevelObjectiveSpec struct {
// +optional
// Description describes the ServiceLevelObjective in more detail and
// gives extra context for engineers that might not directly work on the service.
Description string `json:"description"`
// Target is a string that's casted to a float64 between 0 - 100.
// It represents the desired availability of the service in the given window.
// float64 are not supported: https://github.com/kubernetes-sigs/controller-tools/issues/245
Target string `json:"target"`
// Window within which the Target is supposed to be kept. Usually something like 1d, 7d or 28d.
Window string `json:"window"`
// ServiceLevelIndicator is the underlying data source that indicates how the service is doing.
// This will be a Prometheus metric with specific selectors for your service.
ServiceLevelIndicator ServiceLevelIndicator `json:"indicator"`
// +optional
// Alerting customizes the alerting rules generated by Pyrra.
Alerting Alerting `json:"alerting"`
// +optional
// +kubebuilder:validation:Enum:=abort;warn;""
// +kubebuilder:default:=abort
// PartialResponseStrategy is only used by ThanosRuler and will
// be ignored by Prometheus instances.
// More info: https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md#partial-response
PartialResponseStrategy string `json:"partial_response_strategy,omitempty"`
}
ServiceLevelObjectiveSpec defines the desired state of ServiceLevelObjective.
func (*ServiceLevelObjectiveSpec) DeepCopy ¶
func (in *ServiceLevelObjectiveSpec) DeepCopy() *ServiceLevelObjectiveSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLevelObjectiveSpec.
func (*ServiceLevelObjectiveSpec) DeepCopyInto ¶
func (in *ServiceLevelObjectiveSpec) DeepCopyInto(out *ServiceLevelObjectiveSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceLevelObjectiveStatus ¶
type ServiceLevelObjectiveStatus struct {
// Type is the generated resource type, like PrometheusRule or ConfigMap
Type string `json:"type,omitempty"`
}
ServiceLevelObjectiveStatus defines the observed state of ServiceLevelObjective.
func (*ServiceLevelObjectiveStatus) DeepCopy ¶
func (in *ServiceLevelObjectiveStatus) DeepCopy() *ServiceLevelObjectiveStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLevelObjectiveStatus.
func (*ServiceLevelObjectiveStatus) DeepCopyInto ¶
func (in *ServiceLevelObjectiveStatus) DeepCopyInto(out *ServiceLevelObjectiveStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.