Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the io v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=alerts.newrelic.io
Package v1alpha1 contains API Schema definitions for the io v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=alerts.newrelic.io
Index ¶
- Variables
- func GetNamespacedName(channel metav1.Object) types.NamespacedName
- func IsDeleted(channel metav1.Object) bool
- type AbstractNotificationChannel
- func (in *AbstractNotificationChannel) DeepCopy() *AbstractNotificationChannel
- func (in *AbstractNotificationChannel) DeepCopyInto(out *AbstractNotificationChannel)
- func (channel AbstractNotificationChannel) GetStatus() NotificationChannelStatus
- func (channel *AbstractNotificationChannel) SetStatus(status NotificationChannelStatus)
- type AlertPolicy
- type AlertPolicyList
- type AlertPolicySpec
- type ApmCondition
- type ChannelFactory
- type EmailNotificationChannel
- func (in *EmailNotificationChannel) DeepCopy() *EmailNotificationChannel
- func (in *EmailNotificationChannel) DeepCopyInto(out *EmailNotificationChannel)
- func (in *EmailNotificationChannel) DeepCopyObject() runtime.Object
- func (channel EmailNotificationChannel) GetPolicySelector() labels.Selector
- func (channel EmailNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
- type EmailNotificationChannelList
- func (in *EmailNotificationChannelList) DeepCopy() *EmailNotificationChannelList
- func (in *EmailNotificationChannelList) DeepCopyInto(out *EmailNotificationChannelList)
- func (in *EmailNotificationChannelList) DeepCopyObject() runtime.Object
- func (list EmailNotificationChannelList) GetNamespacedNames() []types.NamespacedName
- func (list EmailNotificationChannelList) Size() int
- type EmailNotificationChannelSpec
- type Expiration
- type InfraCondition
- type InfraThreshold
- type NotificationChannel
- type NotificationChannelList
- type NotificationChannelStatus
- type NrqlCondition
- type OpsgenieNotificationChannel
- func (in *OpsgenieNotificationChannel) DeepCopy() *OpsgenieNotificationChannel
- func (in *OpsgenieNotificationChannel) DeepCopyInto(out *OpsgenieNotificationChannel)
- func (in *OpsgenieNotificationChannel) DeepCopyObject() runtime.Object
- func (channel OpsgenieNotificationChannel) GetPolicySelector() labels.Selector
- func (channel OpsgenieNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
- type OpsgenieNotificationChannelList
- func (in *OpsgenieNotificationChannelList) DeepCopy() *OpsgenieNotificationChannelList
- func (in *OpsgenieNotificationChannelList) DeepCopyInto(out *OpsgenieNotificationChannelList)
- func (in *OpsgenieNotificationChannelList) DeepCopyObject() runtime.Object
- func (list OpsgenieNotificationChannelList) GetNamespacedNames() []types.NamespacedName
- func (list OpsgenieNotificationChannelList) Size() int
- type OpsgenieNotificationChannelSpec
- type Signal
- type SlackNotificationChannel
- func (in *SlackNotificationChannel) DeepCopy() *SlackNotificationChannel
- func (in *SlackNotificationChannel) DeepCopyInto(out *SlackNotificationChannel)
- func (in *SlackNotificationChannel) DeepCopyObject() runtime.Object
- func (channel SlackNotificationChannel) GetPolicySelector() labels.Selector
- func (channel SlackNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
- type SlackNotificationChannelList
- func (in *SlackNotificationChannelList) DeepCopy() *SlackNotificationChannelList
- func (in *SlackNotificationChannelList) DeepCopyInto(out *SlackNotificationChannelList)
- func (in *SlackNotificationChannelList) DeepCopyObject() runtime.Object
- func (list SlackNotificationChannelList) GetNamespacedNames() []types.NamespacedName
- func (list SlackNotificationChannelList) Size() int
- type SlackNotificationChannelSpec
- type Threshold
- type UserDefined
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "alerts.newrelic.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
func GetNamespacedName ¶ added in v1.0.1
func GetNamespacedName(channel metav1.Object) types.NamespacedName
Types ¶
type AbstractNotificationChannel ¶ added in v1.0.1
type AbstractNotificationChannel struct {
Status NotificationChannelStatus `json:"status,omitempty"`
}
func (*AbstractNotificationChannel) DeepCopy ¶ added in v1.0.1
func (in *AbstractNotificationChannel) DeepCopy() *AbstractNotificationChannel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AbstractNotificationChannel.
func (*AbstractNotificationChannel) DeepCopyInto ¶ added in v1.0.1
func (in *AbstractNotificationChannel) DeepCopyInto(out *AbstractNotificationChannel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AbstractNotificationChannel) GetStatus ¶ added in v1.0.1
func (channel AbstractNotificationChannel) GetStatus() NotificationChannelStatus
func (*AbstractNotificationChannel) SetStatus ¶ added in v1.0.1
func (channel *AbstractNotificationChannel) SetStatus(status NotificationChannelStatus)
type AlertPolicy ¶
type AlertPolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AlertPolicySpec `json:"spec,omitempty"`
Status v1alpha1.Status `json:"status,omitempty"`
}
AlertPolicy is the Schema for the newrelicalertpolicies API +kubebuilder:subresource:status +kubebuilder:resource:path=alertpolicies,scope=Namespaced +kubebuilder:printcolumn:name="NR Name",type="string",JSONPath=".spec.name",description="The New Relic name this policy" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="The status of this policy" +kubebuilder:printcolumn:name="Newrelic ID",type="string",JSONPath=".status.newrelicId",description="The New Relic ID of this policy" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of this policy"
func (*AlertPolicy) DeepCopy ¶
func (in *AlertPolicy) DeepCopy() *AlertPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertPolicy.
func (*AlertPolicy) DeepCopyInto ¶
func (in *AlertPolicy) DeepCopyInto(out *AlertPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlertPolicy) DeepCopyObject ¶
func (in *AlertPolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlertPolicyList ¶
type AlertPolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []AlertPolicy `json:"items"`
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*AlertPolicyList) DeepCopy ¶
func (in *AlertPolicyList) DeepCopy() *AlertPolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertPolicyList.
func (*AlertPolicyList) DeepCopyInto ¶
func (in *AlertPolicyList) DeepCopyInto(out *AlertPolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlertPolicyList) DeepCopyObject ¶
func (in *AlertPolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlertPolicySpec ¶
type AlertPolicySpec struct {
// The name of the alert policy that will be created in New Relic
Name string `json:"name"`
// The incident preference defines when incident should be created. \
// Can be one of: \
// - `per_policy` \
// - `per_condition` \
// - `per_condition_and_target` \
// +kubebuilder:validation:Enum=per_policy;per_condition;per_condition_and_target
IncidentPreference string `json:"incident_preference"`
// A list of APM alert conditions to attach to the policy
// +optional
ApmConditions []ApmCondition `json:"apmConditions,omitempty"`
// A list of NRQL alert conditions to attach to the policy
// +optional
NrqlConditions []NrqlCondition `json:"nrqlConditions,omitempty"`
// A list of Infrastructure alert conditions to attach to the policy
// +optional
InfraConditions []InfraCondition `json:"infraConditions,omitempty"`
}
AlertPolicySpec defines the desired state of AlertPolicy. Detailed parameter description can be found on the official [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/rest-api-calls-new-relic-alerts#policies)
func (*AlertPolicySpec) DeepCopy ¶
func (in *AlertPolicySpec) DeepCopy() *AlertPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertPolicySpec.
func (*AlertPolicySpec) DeepCopyInto ¶
func (in *AlertPolicySpec) DeepCopyInto(out *AlertPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApmCondition ¶
type ApmCondition struct {
// The name of the alert condition that will be created in New Relic
Name string `json:"name"`
// +kubebuilder:validation:Enum=apm_app_metric;apm_kt_metric;apm_jvm_metric;browser_metric;mobile_metric
// The type of the metric to monitor. Should be one of: \
// - `apm_app_metric` \
// - `apm_kt_metric` \
// - `apm_jvm_metric` \
// - `browser_metric` \
// - `mobile_metric` \
// Please refer to the Alerts conditions section in the [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#type) for more details
Type string `json:"type"`
// +optional
// +default=true
Enabled *bool `json:"enabled,omitempty"`
// +kubebuilder:validation:Enum=instance;application
// +optional
ConditionScope *string `json:"conditionScope,omitempty"`
// A list of application names from APM to monitor
Entities []string `json:"entities"`
// +optional
ViolationCloseTimer int `json:"violationCloseTimer,omitempty"`
// +optional
RunbookUrl string `json:"runbookUrl,omitempty"`
// The APM metric to monitor. Different metrics can be applied depending on the condition type. \
// An example of a valid (type, metric) combination is (apm_app_metric, apdex). \
// Please refer to the Alerts conditions section in the [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#metric) for more details
Metric string `json:"metric"`
// Once the alertThreshold is breached, a critical incident will be generated
CriticalThreshold Threshold `json:"alertThreshold"`
// Once the warningThreshold is breached, a warning will be generated
// +optional
WarningThreshold *Threshold `json:"warningThreshold,omitempty"`
// Used for tracking a user defined custom metric \
// For more information, please refer to the [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#user_defined_metric)
// +optional
UserDefined *UserDefined `json:"userDefined,omitempty"`
}
func (*ApmCondition) DeepCopy ¶
func (in *ApmCondition) DeepCopy() *ApmCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApmCondition.
func (*ApmCondition) DeepCopyInto ¶
func (in *ApmCondition) DeepCopyInto(out *ApmCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ChannelFactory ¶
type ChannelFactory interface {
NewChannel() NotificationChannel
NewList() NotificationChannelList
}
func NewEmailNotificationChannelFactory ¶
func NewEmailNotificationChannelFactory() ChannelFactory
func NewOpsgenieNotificationChannelFactory ¶ added in v1.0.1
func NewOpsgenieNotificationChannelFactory() ChannelFactory
func NewSlackNotificationChannelFactory ¶
func NewSlackNotificationChannelFactory() ChannelFactory
type EmailNotificationChannel ¶
type EmailNotificationChannel struct {
AbstractNotificationChannel `json:",inline"`
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec EmailNotificationChannelSpec `json:"spec,omitempty"`
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object EmailNotificationChannel is the Schema for the EmailNotificationChannels API +kubebuilder:subresource:status +kubebuilder:resource:path=emailnotificationchannels,scope=Namespaced +kubebuilder:printcolumn:name="NR Name",type="string",JSONPath=".spec.name",description="The New Relic name this channel" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="The status of this channel" +kubebuilder:printcolumn:name="Newrelic ID",type="string",JSONPath=".status.newrelicId",description="The New Relic ID of this channel" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of this channel"
func (*EmailNotificationChannel) DeepCopy ¶
func (in *EmailNotificationChannel) DeepCopy() *EmailNotificationChannel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailNotificationChannel.
func (*EmailNotificationChannel) DeepCopyInto ¶
func (in *EmailNotificationChannel) DeepCopyInto(out *EmailNotificationChannel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EmailNotificationChannel) DeepCopyObject ¶
func (in *EmailNotificationChannel) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (EmailNotificationChannel) GetPolicySelector ¶
func (channel EmailNotificationChannel) GetPolicySelector() labels.Selector
func (EmailNotificationChannel) NewChannel ¶
func (channel EmailNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
type EmailNotificationChannelList ¶
type EmailNotificationChannelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []EmailNotificationChannel `json:"items"`
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object NotificationChannelList contains a list of NotificationChannel
func (*EmailNotificationChannelList) DeepCopy ¶
func (in *EmailNotificationChannelList) DeepCopy() *EmailNotificationChannelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailNotificationChannelList.
func (*EmailNotificationChannelList) DeepCopyInto ¶
func (in *EmailNotificationChannelList) DeepCopyInto(out *EmailNotificationChannelList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EmailNotificationChannelList) DeepCopyObject ¶
func (in *EmailNotificationChannelList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (EmailNotificationChannelList) GetNamespacedNames ¶
func (list EmailNotificationChannelList) GetNamespacedNames() []types.NamespacedName
func (EmailNotificationChannelList) Size ¶
func (list EmailNotificationChannelList) Size() int
type EmailNotificationChannelSpec ¶
type EmailNotificationChannelSpec struct {
// The name of the notification channel created in New Relic
Name string `json:"name"`
// A comma-separated value of emails
Recipients string `json:"recipients"`
// Include JSON attachment with the notification
// +optional
// +default=false
IncludeJsonAttachments bool `json:"includeJsonAttachment,omitempty"`
// A label selector defining the alert policies covered by the notification channel
PolicySelector labels.Set `json:"policySelector,omitempty"`
}
EmailNotificationChannelSpec defines the desired state of EmailNotificationChannel
func (*EmailNotificationChannelSpec) DeepCopy ¶
func (in *EmailNotificationChannelSpec) DeepCopy() *EmailNotificationChannelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailNotificationChannelSpec.
func (*EmailNotificationChannelSpec) DeepCopyInto ¶
func (in *EmailNotificationChannelSpec) DeepCopyInto(out *EmailNotificationChannelSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Expiration ¶ added in v1.3.0
type Expiration struct {
// How long to wait, in seconds, after the last data point is received by our platform before considering the signal as lost.
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#evaluation_duration)
// +kubebuilder:validation:Maximum=172800
// +kubebuilder:validation:Minimum=30
// +optional
ExpirationDuration *int `json:"expirationDurationSeconds,omitempty"`
// When true, this closes all currently open violations when no signal is heard within the expiration_duration time.
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#open_violation_on_expiration)
// +optional
OpenViolationOnExpiration *bool `json:"openViolationOnExpiration,omitempty"`
// When true, this opens a loss of signal violation when no signal within the expiration_duration time.
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#close_violations_on_expiration)
// +optional
CloseViolationsOnExpiration *bool `json:"closeViolationsOnExpiration,omitempty"`
}
func (*Expiration) DeepCopy ¶ added in v1.3.0
func (in *Expiration) DeepCopy() *Expiration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Expiration.
func (*Expiration) DeepCopyInto ¶ added in v1.3.0
func (in *Expiration) DeepCopyInto(out *Expiration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InfraCondition ¶
type InfraCondition struct {
// The name of the infra condition that will be created in New Relic
Name string `json:"name"`
// Available options are: \
// - `above` \
// - `below` \
// - `equal` \
// +kubebuilder:validation:Enum=equal;above;bellow
Comparison string `json:"comparison"`
// Once the alertThreshold is breached, a critical incident will be generated
CriticalThreshold InfraThreshold `json:"alertThreshold"`
// Once the warningThreshold is breached, a warning will be generated
// +optional
WarningThreshold *InfraThreshold `json:"warningThreshold,omitempty"`
// +optional
// +default=true
Enabled *bool `json:"enabled,omitempty"`
// Leave this parameter empty when creating conditions based on data from an integration provider
// For more information, please refer to the `event_type` field in the official [New Relic documentation](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/infrastructure-alert-conditions/rest-api-calls-new-relic-infrastructure-alerts#definitions)
// +optional
EventType string `json:"eventType,omitempty"`
// When setting up alerts on integrations, specify the corresponding integration provider. \
// Examples can include SqsQueue, Kubernetes, RdsDbInstance etc. \
// For more information, please refer to the `integration_provider` field in the official [New Relic documentation](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/infrastructure-alert-conditions/rest-api-calls-new-relic-infrastructure-alerts#definitions)
IntegrationProvider string `json:"integrationProvider"`
// +optional
RunbookUrl string `json:"runbookUrl,omitempty"`
// The attribute name from the Event sample or Integration provider which identifies the metric to be tracked.
// Examples for Sqs include `provider.approximateAgeOfOldestMessage.Average` and `provider.numberOfEmptyReceives.Average`.
// For more information, please refer to the `select_value` field in the official [New Relic documentation](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/infrastructure-alert-conditions/rest-api-calls-new-relic-infrastructure-alerts#definitions)
SelectValue string `json:"selectValue"`
// +optional
ViolationCloseTimer int `json:"violationCloseTimer,omitempty"`
// An expression used for filtering data from the IntegrationProvider
WhereClause string `json:"whereClause,omitempty"`
}
func (*InfraCondition) DeepCopy ¶
func (in *InfraCondition) DeepCopy() *InfraCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfraCondition.
func (*InfraCondition) DeepCopyInto ¶
func (in *InfraCondition) DeepCopyInto(out *InfraCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InfraThreshold ¶
type InfraThreshold struct {
// Defines when the threshold should be considered as breached. \
// Available options are: \
// - `all` - all data points are in violation within the given period \
// - `any` - at least one data point is in violation within the given period \
// +kubebuilder:validation:Enum=all;any
TimeFunction string `json:"timeFunction"`
Value int `json:"value"`
// For how long the violation should be active before an incident is triggered \
DurationMinutes int `json:"durationMinutes"`
}
func (*InfraThreshold) DeepCopy ¶
func (in *InfraThreshold) DeepCopy() *InfraThreshold
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfraThreshold.
func (*InfraThreshold) DeepCopyInto ¶
func (in *InfraThreshold) DeepCopyInto(out *InfraThreshold)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationChannel ¶
type NotificationChannel interface {
runtime.Object
metav1.Object
GetPolicySelector() labels.Selector
GetStatus() NotificationChannelStatus
SetStatus(status NotificationChannelStatus)
NewChannel(policies AlertPolicyList) *domain.NotificationChannel
}
type NotificationChannelList ¶
type NotificationChannelList interface {
runtime.Object
Size() int
GetNamespacedNames() []types.NamespacedName
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type NotificationChannelStatus ¶
type NotificationChannelStatus struct {
v1alpha1.Status `json:",inline"`
NewrelicConfigVersion string `json:"newrelicConfigVersion,omitempty"`
}
NotificationChannelStatus defines the observed state of NotificationChannel
func NewChannelError ¶
func NewChannelError(newrelicId *int64, err error) NotificationChannelStatus
func NewChannelPending ¶
func NewChannelPending(newrelicId *int64, configVersion string) NotificationChannelStatus
func NewChannelReady ¶
func NewChannelReady(newrelicId *int64, configVersion string) NotificationChannelStatus
func (*NotificationChannelStatus) DeepCopy ¶
func (in *NotificationChannelStatus) DeepCopy() *NotificationChannelStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationChannelStatus.
func (*NotificationChannelStatus) DeepCopyInto ¶
func (in *NotificationChannelStatus) DeepCopyInto(out *NotificationChannelStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NrqlCondition ¶
type NrqlCondition struct {
// The name of the nrql policy that will be created in New Relic
Name string `json:"name"`
// +optional
// +default=true
Enabled *bool `json:"enabled,omitempty"`
// The NRQL query associated with the condition
Query string `json:"query"`
// Defines the `SINCE` clause in the NRQL query
// +optional
// +kubebuilder:validation:Maximum=20
// +kubebuilder:validation:Minimum=1
Since *int `json:"sinceMinutes,omitempty"`
// Available options are: \
// - `single_value` \
// - `sum` \
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#value_function)
// +kubebuilder:validation:Enum=single_value;sum
ValueFunction string `json:"valueFunction"`
// Once the alertThreshold is breached, a critical incident will be generated
AlertThreshold Threshold `json:"alertThreshold"`
// Once the warningThreshold is breached, a warning will be generated
// +optional
WarningThreshold *Threshold `json:"warningThreshold,omitempty"`
// +optional
RunbookUrl string `json:"runbookUrl,omitempty"`
// Used to specify signal properties for missing data
// +optional
Signal *Signal `json:"signal,omitempty"`
// Used to define actions on signal expiration
// +optional
Expiration *Expiration `json:"expiration,omitempty"`
}
func (*NrqlCondition) DeepCopy ¶
func (in *NrqlCondition) DeepCopy() *NrqlCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NrqlCondition.
func (*NrqlCondition) DeepCopyInto ¶
func (in *NrqlCondition) DeepCopyInto(out *NrqlCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsgenieNotificationChannel ¶ added in v1.0.1
type OpsgenieNotificationChannel struct {
AbstractNotificationChannel `json:",inline"`
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec OpsgenieNotificationChannelSpec `json:"spec,omitempty"`
}
NotificationChannel is the Schema for the OpsgenieNotificationChannels API +kubebuilder:subresource:status +kubebuilder:resource:path=opsgenienotificationchannels,scope=Namespaced +kubebuilder:printcolumn:name="NR Name",type="string",JSONPath=".spec.name",description="The New Relic name this channel" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="The status of this channel" +kubebuilder:printcolumn:name="Newrelic ID",type="string",JSONPath=".status.newrelicId",description="The New Relic ID of this channel" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of this channel"
func (*OpsgenieNotificationChannel) DeepCopy ¶ added in v1.0.1
func (in *OpsgenieNotificationChannel) DeepCopy() *OpsgenieNotificationChannel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsgenieNotificationChannel.
func (*OpsgenieNotificationChannel) DeepCopyInto ¶ added in v1.0.1
func (in *OpsgenieNotificationChannel) DeepCopyInto(out *OpsgenieNotificationChannel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsgenieNotificationChannel) DeepCopyObject ¶ added in v1.0.1
func (in *OpsgenieNotificationChannel) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (OpsgenieNotificationChannel) GetPolicySelector ¶ added in v1.0.1
func (channel OpsgenieNotificationChannel) GetPolicySelector() labels.Selector
func (OpsgenieNotificationChannel) NewChannel ¶ added in v1.0.1
func (channel OpsgenieNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
type OpsgenieNotificationChannelList ¶ added in v1.0.1
type OpsgenieNotificationChannelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []OpsgenieNotificationChannel `json:"items"`
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object NotificationChannelList contains a list of NotificationChannel
func (*OpsgenieNotificationChannelList) DeepCopy ¶ added in v1.0.1
func (in *OpsgenieNotificationChannelList) DeepCopy() *OpsgenieNotificationChannelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsgenieNotificationChannelList.
func (*OpsgenieNotificationChannelList) DeepCopyInto ¶ added in v1.0.1
func (in *OpsgenieNotificationChannelList) DeepCopyInto(out *OpsgenieNotificationChannelList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsgenieNotificationChannelList) DeepCopyObject ¶ added in v1.0.1
func (in *OpsgenieNotificationChannelList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (OpsgenieNotificationChannelList) GetNamespacedNames ¶ added in v1.0.1
func (list OpsgenieNotificationChannelList) GetNamespacedNames() []types.NamespacedName
func (OpsgenieNotificationChannelList) Size ¶ added in v1.0.1
func (list OpsgenieNotificationChannelList) Size() int
type OpsgenieNotificationChannelSpec ¶ added in v1.0.1
type OpsgenieNotificationChannelSpec struct {
// The name of the notification channel created in New Relic
Name string `json:"name"`
// The Opsgenie API Key.
// If left empty, the default API key specified when deploying the operator will be used
// +optional
ApiKey string `json:"api_key,omitempty"`
// A list of teams
// +optional
Teams []string `json:"teams,omitempty"`
// A list of tags
// +optional
Tags []string `json:"tags,omitempty"`
// A comma-separated value of emails
// +optional
Recipients []string `json:"recipients,omitempty"`
// A label selector defining the alert policies covered by the notification channel
PolicySelector labels.Set `json:"policySelector,omitempty"`
}
OpsgenieNotificationChannelSpec defines the desired state of NotificationChannel
func (*OpsgenieNotificationChannelSpec) DeepCopy ¶ added in v1.0.1
func (in *OpsgenieNotificationChannelSpec) DeepCopy() *OpsgenieNotificationChannelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsgenieNotificationChannelSpec.
func (*OpsgenieNotificationChannelSpec) DeepCopyInto ¶ added in v1.0.1
func (in *OpsgenieNotificationChannelSpec) DeepCopyInto(out *OpsgenieNotificationChannelSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Signal ¶ added in v1.3.0
type Signal struct {
// Please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#aggregation_window)
// +kubebuilder:validation:Maximum=900
// +kubebuilder:validation:Minimum=30
// +optional
AggregationWindow *int `json:"aggregationWindowSeconds,omitempty"`
// The offset is how long we wait for late data before evaluating each aggregation window
// For additional information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#evaluation_offset)
// +kubebuilder:validation:Maximum=20
// +kubebuilder:validation:Minimum=1
// +optional
EvaluationOffset *int `json:"evaluationOffset,omitempty"`
// For sporadic data, you can avoid false alerts by filling the gaps (empty windows) with synthetic data. The default is None.
// For additional information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#fill_option)
// +kubebuilder:validation:Enum=none;static;last_value
// +optional
FillOption *string `json:"fillOption,omitempty"`
// This is the value used by the fill_option custom value. The default is 0.
// For additional information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts-applied-intelligence/new-relic-alerts/rest-api-alerts/alerts-conditions-api-field-names#fill_value)
// +optional
FillValue *string `json:"fillValue,omitempty"`
}
func (*Signal) DeepCopy ¶ added in v1.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Signal.
func (*Signal) DeepCopyInto ¶ added in v1.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SlackNotificationChannel ¶
type SlackNotificationChannel struct {
AbstractNotificationChannel `json:",inline"`
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SlackNotificationChannelSpec `json:"spec,omitempty"`
}
NotificationChannel is the Schema for the slacknotificationchannels API +kubebuilder:subresource:status +kubebuilder:resource:path=slacknotificationchannels,scope=Namespaced +kubebuilder:printcolumn:name="NR Name",type="string",JSONPath=".spec.name",description="The New Relic name this channel" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="The status of this channel" +kubebuilder:printcolumn:name="Newrelic ID",type="string",JSONPath=".status.newrelicId",description="The New Relic ID of this channel" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of this channel"
func (*SlackNotificationChannel) DeepCopy ¶
func (in *SlackNotificationChannel) DeepCopy() *SlackNotificationChannel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackNotificationChannel.
func (*SlackNotificationChannel) DeepCopyInto ¶
func (in *SlackNotificationChannel) DeepCopyInto(out *SlackNotificationChannel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SlackNotificationChannel) DeepCopyObject ¶
func (in *SlackNotificationChannel) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (SlackNotificationChannel) GetPolicySelector ¶
func (channel SlackNotificationChannel) GetPolicySelector() labels.Selector
func (SlackNotificationChannel) NewChannel ¶
func (channel SlackNotificationChannel) NewChannel(policies AlertPolicyList) *domain.NotificationChannel
type SlackNotificationChannelList ¶
type SlackNotificationChannelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []SlackNotificationChannel `json:"items"`
}
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object NotificationChannelList contains a list of NotificationChannel
func (*SlackNotificationChannelList) DeepCopy ¶
func (in *SlackNotificationChannelList) DeepCopy() *SlackNotificationChannelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackNotificationChannelList.
func (*SlackNotificationChannelList) DeepCopyInto ¶
func (in *SlackNotificationChannelList) DeepCopyInto(out *SlackNotificationChannelList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SlackNotificationChannelList) DeepCopyObject ¶
func (in *SlackNotificationChannelList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (SlackNotificationChannelList) GetNamespacedNames ¶
func (list SlackNotificationChannelList) GetNamespacedNames() []types.NamespacedName
func (SlackNotificationChannelList) Size ¶
func (list SlackNotificationChannelList) Size() int
type SlackNotificationChannelSpec ¶
type SlackNotificationChannelSpec struct {
// The name of the notification channel created in New Relic
Name string `json:"name"`
// The Slack webhook URL.
// If left empty, the default URL specified when deploying the operator will be used
// +optional
Url string `json:"url,omitempty"`
// Name of the Slack channel. Should start with `#`
Channel string `json:"channel"`
// A label selector defining the alert policies covered by the notification channel
PolicySelector labels.Set `json:"policySelector,omitempty"`
}
SlackNotificationChannelSpec defines the desired state of NotificationChannel
func (*SlackNotificationChannelSpec) DeepCopy ¶
func (in *SlackNotificationChannelSpec) DeepCopy() *SlackNotificationChannelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackNotificationChannelSpec.
func (*SlackNotificationChannelSpec) DeepCopyInto ¶
func (in *SlackNotificationChannelSpec) DeepCopyInto(out *SlackNotificationChannelSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Threshold ¶
type Threshold struct {
// Defines when the threshold should be considered as breached. \
// Available options are: \
// * all - all data points are in violation within the given period \
// * any - at least one data point is in violation within the given period \
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#terms_time_function)
// +kubebuilder:validation:Enum=all;any
TimeFunction string `json:"timeFunction"`
// Available options are: \
// - `above` \
// - `below` \
// - `equal` \
// +kubebuilder:validation:Enum=above;below;equal
Operator string `json:"operator,omitempty"`
Value string `json:"value"`
// For how long the violation should be active before an incident is triggered \
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#terms_duration_minutes)
DurationMinutes int `json:"durationMinutes"`
}
func (*Threshold) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Threshold.
func (*Threshold) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserDefined ¶
type UserDefined struct {
// The name of the user defined custom metric
Metric string `json:"metric"`
// Available options are: \
// - `average` \
// - `min` \
// - `max` \
// - `total` \
// - `sample_size` \
// For more information, please refer to the official [New Relic documentation](https://docs.newrelic.com/docs/alerts/rest-api-alerts/new-relic-alerts-rest-api/alerts-conditions-api-field-names#user_defined_value_function)
// +kubebuilder:validation:Enum=average;min;max;total;sample_size
ValueFunction string `json:"value_function"`
}
func (*UserDefined) DeepCopy ¶
func (in *UserDefined) DeepCopy() *UserDefined
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserDefined.
func (*UserDefined) DeepCopyInto ¶
func (in *UserDefined) DeepCopyInto(out *UserDefined)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.