Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the adx-mon v1 API group +kubebuilder:object:generate=true +groupName=adx-mon.azure.com
Index ¶
- Constants
- Variables
- func FormatClusterLabels(labels map[string]string) string
- type ADXCluster
- type ADXClusterDatabaseSpec
- type ADXClusterFederatedClusterSpec
- type ADXClusterFederationSpec
- type ADXClusterList
- type ADXClusterProvisionSpec
- type ADXClusterSpec
- type ADXClusterStatus
- type AlertRule
- type AlertRuleList
- type AlertRuleSpec
- type AlertRuleStatus
- type Alerter
- type AlerterList
- type AlerterSpec
- type AlerterStatus
- type AppliedProvisionState
- type AsyncOperation
- type ClusterRole
- type Collector
- type CollectorList
- type CollectorSpec
- type CollectorStatus
- type ConditionedObject
- type DatabaseTelemetryType
- type Function
- func (in *Function) DeepCopy() *Function
- func (in *Function) DeepCopyInto(out *Function)
- func (in *Function) DeepCopyObject() runtime.Object
- func (f *Function) GetCondition() *metav1.Condition
- func (f *Function) SetCondition(condition metav1.Condition)
- func (f *Function) SetCriteriaMatchCondition(matched bool, expression string, err error, clusterLabels map[string]string)
- func (f *Function) SetReconcileCondition(status metav1.ConditionStatus, reason, message string)
- type FunctionList
- type FunctionSpec
- type FunctionStatus
- type FunctionStatusEnum
- type Ingestor
- type IngestorList
- type IngestorSpec
- type IngestorStatus
- type ManagementCommand
- func (in *ManagementCommand) DeepCopy() *ManagementCommand
- func (in *ManagementCommand) DeepCopyInto(out *ManagementCommand)
- func (in *ManagementCommand) DeepCopyObject() runtime.Object
- func (m *ManagementCommand) GetCondition() *metav1.Condition
- func (m *ManagementCommand) SetCondition(c metav1.Condition)
- type ManagementCommandList
- type ManagementCommandSpec
- type ManagementCommandStatus
- type MetricsExporter
- func (in *MetricsExporter) DeepCopy() *MetricsExporter
- func (in *MetricsExporter) DeepCopyInto(out *MetricsExporter)
- func (in *MetricsExporter) DeepCopyObject() runtime.Object
- func (me *MetricsExporter) GetCondition() *metav1.Condition
- func (me *MetricsExporter) GetLastExecutionTime() *time.Time
- func (me *MetricsExporter) NextExecutionWindow(clk clock.Clock) (windowStartTime time.Time, windowEndTime time.Time)
- func (me *MetricsExporter) SetCondition(condition metav1.Condition)
- func (me *MetricsExporter) SetLastExecutionTime(endTime time.Time)
- func (me *MetricsExporter) ShouldExecuteQuery(clk clock.Clock) bool
- type MetricsExporterList
- type MetricsExporterSpec
- type MetricsExporterStatus
- type SummaryRule
- func (s *SummaryRule) BackfillAsyncOperations(clk clock.Clock)
- func (in *SummaryRule) DeepCopy() *SummaryRule
- func (in *SummaryRule) DeepCopyInto(out *SummaryRule)
- func (in *SummaryRule) DeepCopyObject() runtime.Object
- func (s *SummaryRule) GetAsyncOperations() []AsyncOperation
- func (s *SummaryRule) GetCondition() *metav1.Condition
- func (s *SummaryRule) GetLastExecutionTime() *time.Time
- func (s *SummaryRule) NextExecutionWindow(clk clock.Clock) (windowStartTime time.Time, windowEndTime time.Time)
- func (s *SummaryRule) RemoveAsyncOperation(operationId string)
- func (s *SummaryRule) SetAsyncOperation(operation AsyncOperation)
- func (s *SummaryRule) SetCondition(c metav1.Condition)
- func (s *SummaryRule) SetLastExecutionTime(endTime time.Time)
- func (s *SummaryRule) ShouldSubmitRule(clk clock.Clock) bool
- type SummaryRuleList
- type SummaryRuleSpec
- type SummaryRuleStatus
- type TransformConfig
Constants ¶
const ( // ConditionCriteria reflects evaluation of Spec.Criteria / Spec.CriteriaExpression gating. // Status=True => execution permitted (criteria matched); False => execution skipped. ConditionCriteria = "Criteria" // ConditionCompleted indicates the controller has finished processing successfully (terminal success). ConditionCompleted = "Completed" // ConditionFailed indicates terminal failure (will not retry automatically without spec change or manual intervention). ConditionFailed = "Failed" )
Shared condition type constants (mirroring LogFlowVerifier semantics where applicable) to ensure consistent signaling across SummaryRule, MetricsExporter, and Verifier style controllers. These complement the per-CRD owner conditions (e.g., SummaryRuleOwner, MetricsExporterOwner) and are optional; controllers set them when implementing richer gating / lifecycle semantics.
const ( ReasonCriteriaNotMatched = "CriteriaNotMatched" ReasonCriteriaExpressionError = "CriteriaExpressionError" ReasonCriteriaMatched = "CriteriaMatched" )
Standardized reasons for shared conditions (subset reused from verifier conditions file to avoid duplication). Controllers may introduce additional reasons; these are the common baseline.
const ( // FunctionReconciled indicates whether the Function has been successfully processed by the ingestor. // True => the Function body has been executed in Kusto and is up to date; False => reconciliation failed or is pending retries. FunctionReconciled = "function.adx-mon.azure.com/Reconciled" // FunctionCriteriaMatch signals the evaluation outcome of CriteriaExpression against the ingestor's cluster labels. FunctionCriteriaMatch = "function.adx-mon.azure.com/CriteriaMatch" )
const ( // MetricsExporterOwner is the owner of the metrics exporter MetricsExporterOwner = "metricsexporter.adx-mon.azure.com" // MetricsExporterLastSuccessfulExecution tracks the end time of the last successful query execution MetricsExporterLastSuccessfulExecution = "metricsexporter.adx-mon.azure.com/LastSuccessfulExecution" )
const ( // SummaryRuleOwner is the owner of the summary rule SummaryRuleOwner = "summaryrule.adx-mon.azure.com" // SummaryRuleOperationIdOwner is the owner of the summary rule operation id SummaryRuleOperationIdOwner = "summaryrule.adx-mon.azure.com/OperationId" // SummaryRuleLastSuccessfulExecution tracks the end time of the last successful query execution SummaryRuleLastSuccessfulExecution = "summaryrule.adx-mon.azure.com/LastSuccessfulExecution" // SummaryRuleAsyncOperationPollInterval acts as a cooldown period between checking // the status of an async operation. This value is somewhat arbitrary, but the intent // is to not overwhelm the service with requests. SummaryRuleAsyncOperationPollInterval = 10 * time.Minute // SummaryRuleOwnerAnnotation is a per-CRD annotation that determines which component // should process the SummaryRule. Supported values are SummaryRuleOwnerIngestor and // SummaryRuleOwnerADXExporter. When empty or missing, the default behavior is for the // Ingestor to process the rule (backward compatibility). SummaryRuleOwnerAnnotation = "adx-mon.azure.com/owner" // SummaryRuleDesiredOwnerAnnotation is an optional per-CRD annotation used to request // a safe ownership transition. When set to SummaryRuleOwnerADXExporter, the ADX Exporter // will adopt ownership only when it is safe to do so (no inflight async ops and outside // a submission window), then it will set SummaryRuleOwnerAnnotation and clear this value. SummaryRuleDesiredOwnerAnnotation = "adx-mon.azure.com/desired-owner" // SummaryRuleOwnerIngestor specifies ownership by the Ingestor component SummaryRuleOwnerIngestor = "ingestor" // SummaryRuleOwnerADXExporter specifies ownership by the ADX Exporter component SummaryRuleOwnerADXExporter = "adx-exporter" )
EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
const AlerterConditionOwner = "alerter.adx-mon.azure.com"
const AllDatabases = "*"
AllDatabases is a special value that indicates all databases +k8s:deepcopy-gen=false
const CollectorConditionOwner = "collector.adx-mon.azure.com"
const IngestorConditionOwner = "ingestor.adx-mon.azure.com"
const ManagementCommandConditionOwner = "managementcommand.adx-mon.azure.com"
EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "adx-mon.azure.com", Version: "v1"} // 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 ¶
func FormatClusterLabels ¶ added in v0.2.0
FormatClusterLabels returns a stable, human-readable summary of cluster labels for status messages. Keys are sorted to make comparisons deterministic.
Types ¶
type ADXCluster ¶ added in v0.2.0
type ADXCluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ADXClusterSpec `json:"spec,omitempty"`
Status ADXClusterStatus `json:"status,omitempty"`
}
ADXCluster is the Schema for the adxclusters API
func (*ADXCluster) DeepCopy ¶ added in v0.2.0
func (in *ADXCluster) DeepCopy() *ADXCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXCluster.
func (*ADXCluster) DeepCopyInto ¶ added in v0.2.0
func (in *ADXCluster) DeepCopyInto(out *ADXCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ADXCluster) DeepCopyObject ¶ added in v0.2.0
func (in *ADXCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ADXClusterDatabaseSpec ¶ added in v0.2.0
type ADXClusterDatabaseSpec struct {
//+kubebuilder:validation:Required
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]+$
//+kubebuilder:validation:MaxLength=64
//+kubebuilder:validation:MinLength=1
// ADX valid database name, required
DatabaseName string `json:"databaseName"`
//+kubebuilder:validation:Optional
//+kubebuilder:default=30
// default 30, optional
RetentionInDays int `json:"retentionInDays,omitempty"`
//+kubebuilder:validation:Optional
// ADX retention policy, optional
RetentionPolicy string `json:"retentionPolicy,omitempty"`
//+kubebuilder:validation:Required
//+kubebuilder:validation:Enum=Metrics;Logs;Traces
// TelemetryType: Required
TelemetryType DatabaseTelemetryType `json:"telemetryType"`
}
func (*ADXClusterDatabaseSpec) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterDatabaseSpec) DeepCopy() *ADXClusterDatabaseSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterDatabaseSpec.
func (*ADXClusterDatabaseSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterDatabaseSpec) DeepCopyInto(out *ADXClusterDatabaseSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ADXClusterFederatedClusterSpec ¶ added in v0.2.0
type ADXClusterFederatedClusterSpec struct {
//+kubebuilder:validation:Required
// Endpoint is the URI of the federated ADX cluster. Example: "https://mycluster.kusto.windows.net"
Endpoint string `json:"endpoint"`
//+kubebuilder:validation:Required
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]+$
HeartbeatDatabase string `json:"heartbeatDatabase"`
//+kubebuilder:validation:Required
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]+$
HeartbeatTable string `json:"heartbeatTable"`
//+kubebuilder:validation:Required
// Used for writing logs to the federated cluster.
ManagedIdentityClientId string `json:"managedIdentityClientId"`
}
func (*ADXClusterFederatedClusterSpec) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterFederatedClusterSpec) DeepCopy() *ADXClusterFederatedClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterFederatedClusterSpec.
func (*ADXClusterFederatedClusterSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterFederatedClusterSpec) DeepCopyInto(out *ADXClusterFederatedClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ADXClusterFederationSpec ¶ added in v0.2.0
type ADXClusterFederationSpec struct {
//+kubebuilder:validation:Optional
// If role is "Partition", specifies the Federated cluster(s) details for heartbeating.
FederationTargets []ADXClusterFederatedClusterSpec `json:"federatedTargets,omitempty"`
//+kubebuilder:validation:Optional
// If role is "Partition", specifies the ADX cluster's partition details. Open-ended map/object for partitioning metadata (geo, location, tenant, etc.).
Partitioning *map[string]string `json:"partitioning,omitempty"`
//+kubebuilder:validation:Optional
// If role is "Federated", specifies the ADX cluster's heartbeat database.
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]+$
HeartbeatDatabase *string `json:"heartbeatDatabase,omitempty"`
//+kubebuilder:validation:Optional
// If role is "Federated", specifies the ADX cluster's heartbeat table.
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]+$
HeartbeatTable *string `json:"heartbeatTable,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:default="1h"
//+kubebuilder:validation:Pattern=^(\d+h)?(\d+m)?(\d+s)?$
// If role is "Federated", specifies the ADX cluster's heartbeat table TTL.
HeartbeatTTL *string `json:"heartbeatTTL,omitempty"`
}
func (*ADXClusterFederationSpec) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterFederationSpec) DeepCopy() *ADXClusterFederationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterFederationSpec.
func (*ADXClusterFederationSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterFederationSpec) DeepCopyInto(out *ADXClusterFederationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ADXClusterList ¶ added in v0.2.0
type ADXClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ADXCluster `json:"items"`
}
ADXClusterList contains a list of ADXCluster
func (*ADXClusterList) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterList) DeepCopy() *ADXClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterList.
func (*ADXClusterList) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterList) DeepCopyInto(out *ADXClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ADXClusterList) DeepCopyObject ¶ added in v0.2.0
func (in *ADXClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ADXClusterProvisionSpec ¶ added in v0.2.0
type ADXClusterProvisionSpec struct {
//+kubebuilder:validation:Optional
// SubscriptionId is the Azure subscription ID to use for provisioning. When the operator manages provisioning this value must be supplied explicitly; it is no longer auto-detected or defaulted by the controller.
SubscriptionId string `json:"subscriptionId,omitempty"`
//+kubebuilder:validation:Optional
// ResourceGroup is the Azure resource group for the ADX cluster. This must be provided when provisioning is enabled; the operator no longer mutates the spec to fill this value.
ResourceGroup string `json:"resourceGroup,omitempty"`
//+kubebuilder:validation:Optional
// Location is the Azure region for the ADX cluster (e.g., "eastus2"). Required when the operator provisions the cluster and must be set explicitly by the user.
Location string `json:"location,omitempty"`
//+kubebuilder:validation:Optional
// SkuName is the Azure SKU for the ADX cluster (e.g., "Standard_L8as_v3"). Required when provisioning is enabled; defaults are not applied automatically by the controller.
SkuName string `json:"skuName,omitempty"`
//+kubebuilder:validation:Optional
// Tier is the Azure ADX tier (e.g., "Standard"). Required when provisioning is enabled; the operator no longer assigns a default.
Tier string `json:"tier,omitempty"`
//+kubebuilder:validation:Optional
// UserAssignedIdentities is a list of MSIs that can be attached to the cluster. They should be resource-ids of the form
// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}
UserAssignedIdentities []string `json:"userAssignedIdentities,omitempty"`
//+kubebuilder:validation:Optional
////+kubebuilder:default=false
// AutoScale indicates whether to enable auto-scaling for the ADX cluster. Optional. Defaults to false if not specified.
AutoScale bool `json:"autoScale,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:default=10
// AutoScaleMax is the maximum number of nodes for auto-scaling. Optional. Defaults to 10 if not specified.
AutoScaleMax int `json:"autoScaleMax,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:default=2
// AutoScaleMin is the minimum number of nodes for auto-scaling. Optional. Defaults to 2 if not specified.
AutoScaleMin int `json:"autoScaleMin,omitempty"`
}
func (*ADXClusterProvisionSpec) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterProvisionSpec) DeepCopy() *ADXClusterProvisionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterProvisionSpec.
func (*ADXClusterProvisionSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterProvisionSpec) DeepCopyInto(out *ADXClusterProvisionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ADXClusterSpec ¶ added in v0.2.0
type ADXClusterSpec struct {
//+kubebuilder:validation:Required
//+kubebuilder:validation:Pattern=^[a-zA-Z0-9-]+$
//+kubebuilder:validation:MaxLength=100
// ClusterName is the unique, valid name for the ADX cluster. Must match ^[a-zA-Z0-9-]+$ and be at most 100 characters. Used for resource identification and naming in Azure.
ClusterName string `json:"clusterName"`
//+kubebuilder:validation:Format=uri
// Endpoint is the URI of an existing ADX cluster. When set, the controller treats the cluster as bring-your-own (no Azure provisioning is attempted). Example: "https://mycluster.kusto.windows.net"
Endpoint string `json:"endpoint,omitempty"`
//+kubebuilder:validation:Optional
// Databases is an array of ADXClusterDatabaseSpec objects. Each object defines a database to be created in the ADX cluster. If not specified, no databases will be created.
Databases []ADXClusterDatabaseSpec `json:"databases,omitempty"`
//+kubebuilder:validation:Optional
// Provision contains Azure provisioning details for the ADX cluster. Reconciliation of Azure resources only occurs when this section is provided. If omitted, the operator skips provisioning and treats the cluster as bring-your-own.
Provision *ADXClusterProvisionSpec `json:"provision,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:validation:Enum=Partition;Federated
// Role specifies the cluster's role: "Partition" (default, for data-holding clusters) or "Federated" (for the central federating cluster).
Role *ClusterRole `json:"role,omitempty"`
//+kubebuilder:validation:Optional
// Supports cluster partitioning. Only relevant if Role is set.
Federation *ADXClusterFederationSpec `json:"federation,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator cluster labels (region, environment, cloud, and any --cluster-labels key/value pairs).
// Every label is exposed as a string variable that can be referenced directly, for example:
//
// criteriaExpression: "region in ['eastus','westus'] && environment == 'prod'"
//
// Semantics:
// * Empty / omitted expression => the ADXCluster always reconciles.
// * When specified, the expression must evaluate to true for reconciliation; false skips quietly.
// * CEL parse, type-check, or evaluation errors are surfaced via status and block reconciliation
// until corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
ADXClusterSpec defines the desired state of ADXCluster
func (*ADXClusterSpec) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterSpec) DeepCopy() *ADXClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterSpec.
func (*ADXClusterSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterSpec) DeepCopyInto(out *ADXClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ADXClusterStatus ¶ added in v0.2.0
type ADXClusterStatus struct {
//+kubebuilder:validation:Optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
//+kubebuilder:validation:Optional
// Endpoint reflects the observed Kusto endpoint when the controller manages provisioning, or mirrors spec.endpoint when running in BYO mode.
Endpoint string `json:"endpoint,omitempty"`
//+kubebuilder:validation:Optional
// AppliedProvisionState captures the last Azure provisioning state reconciled by the controller.
AppliedProvisionState *AppliedProvisionState `json:"appliedProvisionState,omitempty"`
}
ADXClusterStatus defines the observed state of ADXCluster
func (*ADXClusterStatus) DeepCopy ¶ added in v0.2.0
func (in *ADXClusterStatus) DeepCopy() *ADXClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ADXClusterStatus.
func (*ADXClusterStatus) DeepCopyInto ¶ added in v0.2.0
func (in *ADXClusterStatus) DeepCopyInto(out *ADXClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AlertRule ¶
type AlertRule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AlertRuleSpec `json:"spec,omitempty"`
Status AlertRuleStatus `json:"status,omitempty"`
}
AlertRule is the Schema for the alertrules API
func (*AlertRule) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertRule.
func (*AlertRule) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlertRule) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlertRuleList ¶
type AlertRuleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []AlertRule `json:"items"`
}
AlertRuleList contains a list of AlertRule
func (*AlertRuleList) DeepCopy ¶
func (in *AlertRuleList) DeepCopy() *AlertRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertRuleList.
func (*AlertRuleList) DeepCopyInto ¶
func (in *AlertRuleList) DeepCopyInto(out *AlertRuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlertRuleList) DeepCopyObject ¶
func (in *AlertRuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlertRuleSpec ¶
type AlertRuleSpec struct {
Database string `json:"database,omitempty"`
// +kubebuilder:validation:XValidation:rule="self == ” || duration(self) > duration('0s')",message="interval must be a valid positive duration"
Interval metav1.Duration `json:"interval,omitempty"`
Query string `json:"query,omitempty"`
// +kubebuilder:validation:XValidation:rule="self == ” || duration(self) >= duration('0s')",message="autoMitigateAfter must be a valid duration"
AutoMitigateAfter metav1.Duration `json:"autoMitigateAfter,omitempty"`
Destination string `json:"destination,omitempty"`
// Key/Value pairs used to determine when an alert can execute. If empty, always execute. Keys and values
// are deployment specific and configured on alerter instances. For example, an alerter instance may be
// started with `--tag cloud=public`. If an AlertRule has `criteria: {cloud: public}`, then the rule will only
// execute on that alerter. Any key/values pairs must match (case-insensitive) for the rule to execute.
Criteria map[string][]string `json:"criteria,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression that provides a richer way
// to determine if the alert should execute. The CEL environment is dynamically constructed from the alerter's
// execution context (cloud, region, and any --tag key/value pairs). All variables are exposed as strings and
// can be referenced directly by their tag name. For example:
//
// criteriaExpression: "cloud == 'public' && region in ['eastus','westus'] && env == 'prod'"
//
// Execution semantics:
// * If neither criteria nor criteriaExpression are specified, the rule always executes.
// * If only criteriaExpression is specified, it must evaluate to true for the rule to execute.
// * If only criteria (map) is specified, existing matching behavior (any key/value match) applies.
// * If both are specified, the rule executes when BOTH the criteria map matches AND the expression evaluates to true.
//
// An invalid expression (parse or type check error) will treated as an error and prevent the rule from executing.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
AlertRuleSpec defines the desired state of AlertRule
func (*AlertRuleSpec) DeepCopy ¶
func (in *AlertRuleSpec) DeepCopy() *AlertRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertRuleSpec.
func (*AlertRuleSpec) DeepCopyInto ¶
func (in *AlertRuleSpec) DeepCopyInto(out *AlertRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlertRuleSpec) UnmarshalJSON ¶
func (a *AlertRuleSpec) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface for backward compatibility with and older version of the Criteria field. The older version was a map[string]string. This function will convert the older version to the new version.
type AlertRuleStatus ¶
type AlertRuleStatus struct {
Status string `json:"status,omitempty"`
Message string `json:"message,omitempty"`
LastQueryTime metav1.Time `json:"lastQueryTime,omitempty"`
LastAlertTime metav1.Time `json:"lastAlertTime,omitempty"`
// Conditions provide standardized status signaling. Controllers may
// set shared conditions defined in conditions.go such as ConditionCriteria
// to reflect evaluation of Spec.Criteria / Spec.CriteriaExpression.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
AlertRuleStatus defines the observed state of AlertRule
func (*AlertRuleStatus) DeepCopy ¶
func (in *AlertRuleStatus) DeepCopy() *AlertRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlertRuleStatus.
func (*AlertRuleStatus) DeepCopyInto ¶
func (in *AlertRuleStatus) DeepCopyInto(out *AlertRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Alerter ¶ added in v0.2.0
type Alerter struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AlerterSpec `json:"spec,omitempty"`
Status AlerterStatus `json:"status,omitempty"`
}
Alerter is the Schema for the alerters API
func (*Alerter) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alerter.
func (*Alerter) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Alerter) DeepCopyObject ¶ added in v0.2.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlerterList ¶ added in v0.2.0
type AlerterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Alerter `json:"items"`
}
AlerterList contains a list of Alerter
func (*AlerterList) DeepCopy ¶ added in v0.2.0
func (in *AlerterList) DeepCopy() *AlerterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlerterList.
func (*AlerterList) DeepCopyInto ¶ added in v0.2.0
func (in *AlerterList) DeepCopyInto(out *AlerterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlerterList) DeepCopyObject ¶ added in v0.2.0
func (in *AlerterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AlerterSpec ¶ added in v0.2.0
type AlerterSpec struct {
//+kubebuilder:validation:Optional
// Image is the container image to use for the alerter component. Optional; if omitted, a default image will be used.
Image string `json:"image,omitempty"`
//+kubebuilder:validation:Required
//+kubebuilder:validation:Format=uri
// NotificationEndpoint is the URI where alert notifications will be sent. This field is required.
NotificationEndpoint string `json:"notificationEndpoint"`
//+kubebuilder:validation:Required
// ADXClusterSelector is a label selector used to select the ADXCluster CRDs this alerter should target. This field is required.
ADXClusterSelector *metav1.LabelSelector `json:"adxClusterSelector"`
// AppliedProvisionState is a JSON-serialized snapshot of the CRD
// as last applied by the operator. This is set by the operator and is read-only for users.
AppliedProvisionState string `json:"appliedProvisionState,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator cluster labels (region, environment, cloud, and any --cluster-labels key/value pairs).
// All labels are exposed as string variables that can be referenced directly. Example:
//
// criteriaExpression: "region == 'eastus' && environment == 'prod'"
//
// Semantics:
// * Empty / omitted expression => the Alerter always reconciles.
// * When specified, the expression must evaluate to true for reconciliation; false skips quietly.
// * CEL parse, type-check, or evaluation errors surface via status and block reconciliation until
// corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
AlerterSpec defines the desired state of Alerter
func (*AlerterSpec) DeepCopy ¶ added in v0.2.0
func (in *AlerterSpec) DeepCopy() *AlerterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlerterSpec.
func (*AlerterSpec) DeepCopyInto ¶ added in v0.2.0
func (in *AlerterSpec) DeepCopyInto(out *AlerterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AlerterSpec) LoadAppliedProvisioningState ¶ added in v0.2.0
func (s *AlerterSpec) LoadAppliedProvisioningState() (*AlerterSpec, error)
func (*AlerterSpec) StoreAppliedProvisioningState ¶ added in v0.2.0
func (s *AlerterSpec) StoreAppliedProvisioningState() error
type AlerterStatus ¶ added in v0.2.0
type AlerterStatus struct {
//+kubebuilder:validation:Optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
AlerterStatus defines the observed state of Alerter
func (*AlerterStatus) DeepCopy ¶ added in v0.2.0
func (in *AlerterStatus) DeepCopy() *AlerterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlerterStatus.
func (*AlerterStatus) DeepCopyInto ¶ added in v0.2.0
func (in *AlerterStatus) DeepCopyInto(out *AlerterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AppliedProvisionState ¶ added in v0.2.0
type AppliedProvisionState struct {
SkuName string `json:"skuName,omitempty"`
Tier string `json:"tier,omitempty"`
UserAssignedIdentities []string `json:"userAssignedIdentities,omitempty"`
}
func (*AppliedProvisionState) DeepCopy ¶ added in v0.2.0
func (in *AppliedProvisionState) DeepCopy() *AppliedProvisionState
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppliedProvisionState.
func (*AppliedProvisionState) DeepCopyInto ¶ added in v0.2.0
func (in *AppliedProvisionState) DeepCopyInto(out *AppliedProvisionState)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AsyncOperation ¶ added in v0.2.0
type AsyncOperation struct {
OperationId string `json:"operationId"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
}
AsyncOperation represents a serialized async operation. We store AsyncOperations in a Condition's Message field. Each Message field has a max length of 32768. Our array of AsyncOperations, with a single entry: [{"operationId": "9028e8b7-7350-4870-a0e7-ab3538049876", "startTime": "2025-03-12T14:48:23.8612789Z", "endTime": "2025-03-12T14:48:23.8612789Z"}] So we can hold 236 entries. For safety, we'll limit it to 200. We only store incomplete AsyncOperations, so they're often pruned; however, if we reach the maximum capacity, we'll remove the oldest AsyncOperation.
func (*AsyncOperation) DeepCopy ¶ added in v0.2.0
func (in *AsyncOperation) DeepCopy() *AsyncOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncOperation.
func (*AsyncOperation) DeepCopyInto ¶ added in v0.2.0
func (in *AsyncOperation) DeepCopyInto(out *AsyncOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterRole ¶ added in v0.2.0
type ClusterRole string
const ( ClusterRolePartition ClusterRole = "Partition" ClusterRoleFederated ClusterRole = "Federated" )
type Collector ¶ added in v0.2.0
type Collector struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CollectorSpec `json:"spec,omitempty"`
Status CollectorStatus `json:"status,omitempty"`
}
Collector is the Schema for the collectors API
func (*Collector) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Collector.
func (*Collector) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Collector) DeepCopyObject ¶ added in v0.2.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CollectorList ¶ added in v0.2.0
type CollectorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Collector `json:"items"`
}
CollectorList contains a list of Collector
func (*CollectorList) DeepCopy ¶ added in v0.2.0
func (in *CollectorList) DeepCopy() *CollectorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorList.
func (*CollectorList) DeepCopyInto ¶ added in v0.2.0
func (in *CollectorList) DeepCopyInto(out *CollectorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CollectorList) DeepCopyObject ¶ added in v0.2.0
func (in *CollectorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CollectorSpec ¶ added in v0.2.0
type CollectorSpec struct {
//+kubebuilder:validation:Optional
// Image is the container image to use for the collector component. Optional; if omitted, a default image will be used.
Image string `json:"image,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:validation:Format=uri
// IngestorEndpoint is the URI endpoint for the ingestor service that this collector should send data to. Optional; if omitted, the operator will configure it automatically.
IngestorEndpoint string `json:"ingestorEndpoint,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator cluster labels (region, environment, cloud, and any --cluster-labels key/value pairs).
// All labels are exposed as string variables. Example:
//
// criteriaExpression: "environment == 'prod' && region == 'eastus'"
//
// Semantics:
// * Empty / omitted expression => the Collector always reconciles.
// * When specified, the expression must evaluate to true for reconciliation; false skips quietly.
// * CEL parse, type-check, or evaluation errors surface via status and block reconciliation until
// corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
CollectorSpec defines the desired state of Collector
func (*CollectorSpec) DeepCopy ¶ added in v0.2.0
func (in *CollectorSpec) DeepCopy() *CollectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorSpec.
func (*CollectorSpec) DeepCopyInto ¶ added in v0.2.0
func (in *CollectorSpec) DeepCopyInto(out *CollectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CollectorStatus ¶ added in v0.2.0
type CollectorStatus struct {
//+kubebuilder:validation:Optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
CollectorStatus defines the observed state of Collector
func (*CollectorStatus) DeepCopy ¶ added in v0.2.0
func (in *CollectorStatus) DeepCopy() *CollectorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorStatus.
func (*CollectorStatus) DeepCopyInto ¶ added in v0.2.0
func (in *CollectorStatus) DeepCopyInto(out *CollectorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConditionedObject ¶ added in v0.2.0
type ConditionedObject interface {
GetCondition() *metav1.Condition
SetCondition(condition metav1.Condition)
}
ConditionedObject defines interface for objects that can have conditions +k8s:deepcopy-gen=false
type DatabaseTelemetryType ¶ added in v0.2.0
type DatabaseTelemetryType string
const ( DatabaseTelemetryMetrics DatabaseTelemetryType = "Metrics" DatabaseTelemetryLogs DatabaseTelemetryType = "Logs" DatabaseTelemetryTraces DatabaseTelemetryType = "Traces" ADXClusterConditionOwner = "adxcluster.adx-mon.azure.com" )
type Function ¶
type Function struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec FunctionSpec `json:"spec,omitempty"`
Status FunctionStatus `json:"status,omitempty"`
}
Function defines a KQL function to be maintained in the Kusto cluster
func (*Function) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Function.
func (*Function) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Function) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Function) GetCondition ¶ added in v0.2.0
GetCondition returns the FunctionReconciled condition, or nil if it has not been set.
func (*Function) SetCondition ¶ added in v0.2.0
SetCondition updates/creates a condition entry while ensuring mandatory fields are populated. This method satisfies the ConditionedObject interface and should generally be used via the higher level helpers (SetReconcileCondition, SetCriteriaMatchCondition) that provide semantic defaults.
func (*Function) SetCriteriaMatchCondition ¶ added in v0.2.0
func (f *Function) SetCriteriaMatchCondition(matched bool, expression string, err error, clusterLabels map[string]string)
SetCriteriaMatchCondition records the outcome of CriteriaExpression evaluation. An optional clusterLabels map may be provided to enrich messages for debugging. Passing nil is permitted and treated as "no labels".
func (*Function) SetReconcileCondition ¶ added in v0.2.0
func (f *Function) SetReconcileCondition(status metav1.ConditionStatus, reason, message string)
SetReconcileCondition updates the FunctionReconciled condition with status, reason, and message.
type FunctionList ¶
type FunctionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Function `json:"items"`
}
FunctionList contains a list of Function
func (*FunctionList) DeepCopy ¶
func (in *FunctionList) DeepCopy() *FunctionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionList.
func (*FunctionList) DeepCopyInto ¶
func (in *FunctionList) DeepCopyInto(out *FunctionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FunctionList) DeepCopyObject ¶
func (in *FunctionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FunctionSpec ¶
type FunctionSpec struct {
//+kubebuilder:validation:Optional
// This flag tells the controller to suspend subsequent executions, it does
// not apply to already started executions. Defaults to false.
Suspend *bool `json:"suspend,omitempty"`
//+kubebuilder:validation:Required
// Database is the name of the database in which the function will be created
Database string `json:"database"`
//+kubebuilder:validation:Required
// Body is the KQL body of the function
Body string `json:"body"`
//+kubebuilder:validation:Optional
// AppliedEndpoint is a JSON-serialized of the endpoints that the function
// is applied to. This is set by the operator and is read-only for users.
AppliedEndpoint string `json:"appliedEndpoint,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator cluster labels (region, environment, cloud, and any --cluster-labels key/value pairs).
// Every label is exposed as a string variable. Example:
//
// criteriaExpression: "environment == 'prod' && region in ['eastus','westus']"
//
// Semantics:
// * Empty / omitted expression => the Function always reconciles.
// * When specified, the expression must evaluate to true for reconciliation; false skips quietly.
// * CEL parse, type-check, or evaluation errors surface via status and block reconciliation until
// corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
FunctionSpec defines the desired state of Function
func (*FunctionSpec) DeepCopy ¶
func (in *FunctionSpec) DeepCopy() *FunctionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionSpec.
func (*FunctionSpec) DeepCopyInto ¶
func (in *FunctionSpec) DeepCopyInto(out *FunctionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FunctionStatus ¶
type FunctionStatus struct {
// ObservedGeneration is the most recent generation observed for this Function
ObservedGeneration int64 `json:"observedGeneration"`
// LastTimeReconciled is the last time the Function was reconciled
LastTimeReconciled metav1.Time `json:"lastTimeReconciled"`
// Message is a human-readable message indicating details about the Function
Message string `json:"message,omitempty"`
// Reason is a string that communicates the reason for a transition
Reason string `json:"reason,omitempty"`
// Status is an enum that represents the status of the Function
Status FunctionStatusEnum `json:"status"`
// Error is a string that communicates any error message if one exists
Error string `json:"error,omitempty"`
// Conditions conveys detailed reconciliation state in a Kubernetes-native format.
// Controllers set FunctionCriteriaMatch to surface criteria gating decisions and
// FunctionReconciled to report the outcome of the most recent reconciliation attempt.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
FunctionStatus defines the observed state of Function
func (*FunctionStatus) DeepCopy ¶
func (in *FunctionStatus) DeepCopy() *FunctionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionStatus.
func (*FunctionStatus) DeepCopyInto ¶
func (in *FunctionStatus) DeepCopyInto(out *FunctionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FunctionStatusEnum ¶
type FunctionStatusEnum string
FunctionStatusEnum defines the possible status values for FunctionStatus
const ( PermanentFailure FunctionStatusEnum = "PermanentFailure" Failed FunctionStatusEnum = "Failed" Success FunctionStatusEnum = "Success" )
type Ingestor ¶ added in v0.2.0
type Ingestor struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec IngestorSpec `json:"spec,omitempty"`
Status IngestorStatus `json:"status,omitempty"`
}
Ingestor is the Schema for the ingestors API
func (*Ingestor) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingestor.
func (*Ingestor) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Ingestor) DeepCopyObject ¶ added in v0.2.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IngestorList ¶ added in v0.2.0
type IngestorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Ingestor `json:"items"`
}
IngestorList contains a list of Ingestor
func (*IngestorList) DeepCopy ¶ added in v0.2.0
func (in *IngestorList) DeepCopy() *IngestorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestorList.
func (*IngestorList) DeepCopyInto ¶ added in v0.2.0
func (in *IngestorList) DeepCopyInto(out *IngestorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngestorList) DeepCopyObject ¶ added in v0.2.0
func (in *IngestorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IngestorSpec ¶ added in v0.2.0
type IngestorSpec struct {
//+kubebuilder:validation:Optional
// Image is the container image to use for the ingestor component. Optional; if omitted, a default image will be used.
Image string `json:"image,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:default=1
// Replicas is the number of ingestor replicas to run. Optional; defaults to 1 if omitted.
Replicas int32 `json:"replicas,omitempty"`
//+kubebuilder:validation:Optional
// Endpoint is the endpoint to use for the ingestor. If running in a cluster, this should be the service name; otherwise, the operator will generate an endpoint. Optional.
Endpoint string `json:"endpoint,omitempty"`
//+kubebuilder:validation:Optional
//+kubebuilder:default=false
// ExposeExternally indicates if the ingestor should be exposed externally as reflected in the Endpoint. Optional; defaults to false.
ExposeExternally bool `json:"exposeExternally,omitempty"`
//+kubebuilder:validation:Required
// ADXClusterSelector is a label selector used to select the ADXCluster CRDs this ingestor should target. This field is required.
ADXClusterSelector *metav1.LabelSelector `json:"adxClusterSelector"`
// AppliedProvisionState is a JSON-serialized snapshot of the CRD
// as last applied by the operator. This is set by the operator and is read-only for users.
AppliedProvisionState string `json:"appliedProvisionState,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator cluster labels (region, environment, cloud, and any --cluster-labels key/value pairs).
// All labels are exposed as string variables. Example:
//
// criteriaExpression: "environment == 'prod' && region == 'eastus'"
//
// Semantics:
// * Empty / omitted expression => the Ingestor always reconciles.
// * When specified, the expression must evaluate to true for reconciliation; false skips quietly.
// * CEL parse, type-check, or evaluation errors surface via status and block reconciliation until
// corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
IngestorSpec defines the desired state of Ingestor
func (*IngestorSpec) DeepCopy ¶ added in v0.2.0
func (in *IngestorSpec) DeepCopy() *IngestorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestorSpec.
func (*IngestorSpec) DeepCopyInto ¶ added in v0.2.0
func (in *IngestorSpec) DeepCopyInto(out *IngestorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngestorSpec) LoadAppliedProvisioningState ¶ added in v0.2.0
func (s *IngestorSpec) LoadAppliedProvisioningState() (*IngestorSpec, error)
func (*IngestorSpec) StoreAppliedProvisioningState ¶ added in v0.2.0
func (s *IngestorSpec) StoreAppliedProvisioningState() error
type IngestorStatus ¶ added in v0.2.0
type IngestorStatus struct {
//+kubebuilder:validation:Optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
IngestorStatus defines the observed state of Ingestor
func (*IngestorStatus) DeepCopy ¶ added in v0.2.0
func (in *IngestorStatus) DeepCopy() *IngestorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestorStatus.
func (*IngestorStatus) DeepCopyInto ¶ added in v0.2.0
func (in *IngestorStatus) DeepCopyInto(out *IngestorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagementCommand ¶ added in v0.2.0
type ManagementCommand struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ManagementCommandSpec `json:"spec,omitempty"`
Status ManagementCommandStatus `json:"status,omitempty"`
}
ManagementCommand is the Schema for the managementcommands API
func (*ManagementCommand) DeepCopy ¶ added in v0.2.0
func (in *ManagementCommand) DeepCopy() *ManagementCommand
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementCommand.
func (*ManagementCommand) DeepCopyInto ¶ added in v0.2.0
func (in *ManagementCommand) DeepCopyInto(out *ManagementCommand)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ManagementCommand) DeepCopyObject ¶ added in v0.2.0
func (in *ManagementCommand) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ManagementCommand) GetCondition ¶ added in v0.2.0
func (m *ManagementCommand) GetCondition() *metav1.Condition
func (*ManagementCommand) SetCondition ¶ added in v0.2.0
func (m *ManagementCommand) SetCondition(c metav1.Condition)
type ManagementCommandList ¶ added in v0.2.0
type ManagementCommandList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ManagementCommand `json:"items"`
}
ManagementCommandList contains a list of ManagementCommand
func (*ManagementCommandList) DeepCopy ¶ added in v0.2.0
func (in *ManagementCommandList) DeepCopy() *ManagementCommandList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementCommandList.
func (*ManagementCommandList) DeepCopyInto ¶ added in v0.2.0
func (in *ManagementCommandList) DeepCopyInto(out *ManagementCommandList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ManagementCommandList) DeepCopyObject ¶ added in v0.2.0
func (in *ManagementCommandList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ManagementCommandSpec ¶ added in v0.2.0
type ManagementCommandSpec struct {
// Database is the target database for a management command. Not all management commands
// are database specific.
// +kubebuilder:validation:Optional
Database string `json:"database,omitempty"`
// Body is the management command to execute
Body string `json:"body"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression evaluated against
// operator / ingestor cluster labels (region, environment, cloud, and any --cluster-labels key/value
// pairs). All labels are exposed as string variables. Example:
//
// criteriaExpression: "environment == 'prod' && region == 'eastus'"
//
// Semantics:
// * Empty / omitted expression => the ManagementCommand always executes when selected.
// * When specified, the expression must evaluate to true; false skips execution.
// * CEL parse, type-check, or evaluation errors surface via status and block execution until
// corrected.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
ManagementCommandSpec defines the desired state of ManagementCommand
func (*ManagementCommandSpec) DeepCopy ¶ added in v0.2.0
func (in *ManagementCommandSpec) DeepCopy() *ManagementCommandSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementCommandSpec.
func (*ManagementCommandSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ManagementCommandSpec) DeepCopyInto(out *ManagementCommandSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagementCommandStatus ¶ added in v0.2.0
type ManagementCommandStatus struct {
// Conditions is a list of conditions that apply to the Function
// +kubebuilder:validation:Optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
ManagementCommandStatus defines the observed state of ManagementCommand
func (*ManagementCommandStatus) DeepCopy ¶ added in v0.2.0
func (in *ManagementCommandStatus) DeepCopy() *ManagementCommandStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementCommandStatus.
func (*ManagementCommandStatus) DeepCopyInto ¶ added in v0.2.0
func (in *ManagementCommandStatus) DeepCopyInto(out *ManagementCommandStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsExporter ¶ added in v0.2.0
type MetricsExporter struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MetricsExporterSpec `json:"spec,omitempty"`
Status MetricsExporterStatus `json:"status,omitempty"`
}
MetricsExporter is the Schema for the metricsexporters API
func (*MetricsExporter) DeepCopy ¶ added in v0.2.0
func (in *MetricsExporter) DeepCopy() *MetricsExporter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsExporter.
func (*MetricsExporter) DeepCopyInto ¶ added in v0.2.0
func (in *MetricsExporter) DeepCopyInto(out *MetricsExporter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MetricsExporter) DeepCopyObject ¶ added in v0.2.0
func (in *MetricsExporter) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MetricsExporter) GetCondition ¶ added in v0.2.0
func (me *MetricsExporter) GetCondition() *metav1.Condition
GetCondition gets the main condition for the MetricsExporter
func (*MetricsExporter) GetLastExecutionTime ¶ added in v0.2.0
func (me *MetricsExporter) GetLastExecutionTime() *time.Time
GetLastExecutionTime extracts the last execution time from MetricsExporter status
func (*MetricsExporter) NextExecutionWindow ¶ added in v0.2.0
func (me *MetricsExporter) NextExecutionWindow(clk clock.Clock) (windowStartTime time.Time, windowEndTime time.Time)
NextExecutionWindow calculates the next execution window for a MetricsExporter This follows the same pattern as SummaryRule.NextExecutionWindow
func (*MetricsExporter) SetCondition ¶ added in v0.2.0
func (me *MetricsExporter) SetCondition(condition metav1.Condition)
SetCondition sets the main condition for the MetricsExporter
func (*MetricsExporter) SetLastExecutionTime ¶ added in v0.2.0
func (me *MetricsExporter) SetLastExecutionTime(endTime time.Time)
SetLastExecutionTime updates the last execution time in MetricsExporter status
func (*MetricsExporter) ShouldExecuteQuery ¶ added in v0.2.0
func (me *MetricsExporter) ShouldExecuteQuery(clk clock.Clock) bool
ShouldExecuteQuery determines if a query should be executed based on timing and interval This follows the same pattern as SummaryRule.ShouldSubmitRule
type MetricsExporterList ¶ added in v0.2.0
type MetricsExporterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MetricsExporter `json:"items"`
}
MetricsExporterList contains a list of MetricsExporter
func (*MetricsExporterList) DeepCopy ¶ added in v0.2.0
func (in *MetricsExporterList) DeepCopy() *MetricsExporterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsExporterList.
func (*MetricsExporterList) DeepCopyInto ¶ added in v0.2.0
func (in *MetricsExporterList) DeepCopyInto(out *MetricsExporterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MetricsExporterList) DeepCopyObject ¶ added in v0.2.0
func (in *MetricsExporterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MetricsExporterSpec ¶ added in v0.2.0
type MetricsExporterSpec struct {
// Database is the name of the database to query
Database string `json:"database"`
// Body is the KQL query to execute
Body string `json:"body"`
// Interval defines how often to execute the query and refresh metrics
Interval metav1.Duration `json:"interval"`
// Transform defines how to convert query results to metrics
Transform TransformConfig `json:"transform"`
// Criteria for cluster-based execution selection (same pattern as SummaryRule)
// Key/Value pairs used to determine when a metrics exporter can execute. If empty, always execute. Keys and values
// are deployment specific and configured on adxexporter instances. For example, an adxexporter instance may be
// started with `--cluster-labels=region=eastus,environment=production`. If a MetricsExporter has `criteria: {region: [eastus], environment: [production]}`, then the rule will only
// execute on that adxexporter. Any key/values pairs must match (case-insensitive) for the rule to execute.
Criteria map[string][]string `json:"criteria,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression that provides a richer way
// to determine if the metrics exporter should execute. The CEL environment is dynamically constructed from the
// exporter's cluster labels (e.g. region, cloud, environment, and any --cluster-labels key/value pairs). All variables
// are exposed as strings and can be referenced directly by their label name. For example:
//
// criteriaExpression: "region in ['eastus','westus'] && environment == 'prod'"
//
// Execution semantics mirror AlertRule:
// * If neither criteria nor criteriaExpression are specified, the exporter always executes.
// * If only criteriaExpression is specified, it must evaluate to true for execution.
// * If only criteria is specified, existing matching behavior (any key/value match) applies.
// * If both are specified, BOTH must match (criteria map match AND expression true).
//
// An invalid expression (parse or type check error) will be treated as an error and prevent execution.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
MetricsExporterSpec defines the desired state of MetricsExporter
func (*MetricsExporterSpec) DeepCopy ¶ added in v0.2.0
func (in *MetricsExporterSpec) DeepCopy() *MetricsExporterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsExporterSpec.
func (*MetricsExporterSpec) DeepCopyInto ¶ added in v0.2.0
func (in *MetricsExporterSpec) DeepCopyInto(out *MetricsExporterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsExporterStatus ¶ added in v0.2.0
type MetricsExporterStatus struct {
// Conditions is an array of current observed MetricsExporter conditions.
// Controllers set at minimum the owner condition (MetricsExporterOwner) and may also
// use shared conditions defined in conditions.go: ConditionCriteria, ConditionCompleted, ConditionFailed.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MetricsExporterStatus defines the observed state of MetricsExporter
func (*MetricsExporterStatus) DeepCopy ¶ added in v0.2.0
func (in *MetricsExporterStatus) DeepCopy() *MetricsExporterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsExporterStatus.
func (*MetricsExporterStatus) DeepCopyInto ¶ added in v0.2.0
func (in *MetricsExporterStatus) DeepCopyInto(out *MetricsExporterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SummaryRule ¶ added in v0.2.0
type SummaryRule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SummaryRuleSpec `json:"spec,omitempty"`
Status SummaryRuleStatus `json:"status,omitempty"`
}
SummaryRule is the Schema for the summaryrules API
func (*SummaryRule) BackfillAsyncOperations ¶ added in v0.2.0
func (s *SummaryRule) BackfillAsyncOperations(clk clock.Clock)
func (*SummaryRule) DeepCopy ¶ added in v0.2.0
func (in *SummaryRule) DeepCopy() *SummaryRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SummaryRule.
func (*SummaryRule) DeepCopyInto ¶ added in v0.2.0
func (in *SummaryRule) DeepCopyInto(out *SummaryRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SummaryRule) DeepCopyObject ¶ added in v0.2.0
func (in *SummaryRule) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SummaryRule) GetAsyncOperations ¶ added in v0.2.0
func (s *SummaryRule) GetAsyncOperations() []AsyncOperation
func (*SummaryRule) GetCondition ¶ added in v0.2.0
func (s *SummaryRule) GetCondition() *metav1.Condition
func (*SummaryRule) GetLastExecutionTime ¶ added in v0.2.0
func (s *SummaryRule) GetLastExecutionTime() *time.Time
func (*SummaryRule) NextExecutionWindow ¶ added in v0.2.0
func (*SummaryRule) RemoveAsyncOperation ¶ added in v0.2.0
func (s *SummaryRule) RemoveAsyncOperation(operationId string)
func (*SummaryRule) SetAsyncOperation ¶ added in v0.2.0
func (s *SummaryRule) SetAsyncOperation(operation AsyncOperation)
func (*SummaryRule) SetCondition ¶ added in v0.2.0
func (s *SummaryRule) SetCondition(c metav1.Condition)
func (*SummaryRule) SetLastExecutionTime ¶ added in v0.2.0
func (s *SummaryRule) SetLastExecutionTime(endTime time.Time)
func (*SummaryRule) ShouldSubmitRule ¶ added in v0.2.0
func (s *SummaryRule) ShouldSubmitRule(clk clock.Clock) bool
type SummaryRuleList ¶ added in v0.2.0
type SummaryRuleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []SummaryRule `json:"items"`
}
SummaryRuleList contains a list of SummaryRule
func (*SummaryRuleList) DeepCopy ¶ added in v0.2.0
func (in *SummaryRuleList) DeepCopy() *SummaryRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SummaryRuleList.
func (*SummaryRuleList) DeepCopyInto ¶ added in v0.2.0
func (in *SummaryRuleList) DeepCopyInto(out *SummaryRuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SummaryRuleList) DeepCopyObject ¶ added in v0.2.0
func (in *SummaryRuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SummaryRuleSpec ¶ added in v0.2.0
type SummaryRuleSpec struct {
// Database is the name of the database in which the function will be created
Database string `json:"database"`
// Table is rule output destination
Table string `json:"table"`
// Name is the name of the rule (deprecated and not used - use `metadata.name` instead)
Name string `json:"name,omitempty"`
// Body is the KQL body of the function
Body string `json:"body"`
// Interval is the cadence at which the rule will be executed
// +kubebuilder:validation:XValidation:rule="duration(self) > duration('0s')",message="interval must be a valid positive duration"
Interval metav1.Duration `json:"interval"`
// IngestionDelay is subtracted from the execution window start and end times to account
// for data ingestion latency, ensuring the query only processes fully ingested data.
// NOTE: Current implementation also subtracts this delay from the "now" used to decide
// whether an interval has elapsed (i.e. scheduling readiness). This effectively lengthens
// wall‑clock spacing between executions to Interval + IngestionDelay. If you intend only
// to shift the processed window but keep wall‑clock cadence at Interval, this behavior
// will be adjusted in a future release.
// +optional
// +kubebuilder:validation:XValidation:rule="self == ” || duration(self) >= duration('0s')",message="ingestionDelay must be a valid duration"
IngestionDelay *metav1.Duration `json:"ingestionDelay,omitempty"`
// Key/Value pairs used to determine when a summary rule can execute. If empty, always execute. Keys and values
// are deployment specific and configured on ingestor instances. For example, an ingestor instance may be
// started with `--cluster-labels=region=eastus`. If a SummaryRule has `criteria: {region: [eastus]}`, then the rule will only
// execute on that ingestor. Any key/values pairs must match (case-insensitive) for the rule to execute.
Criteria map[string][]string `json:"criteria,omitempty"`
// CriteriaExpression is an optional CEL (Common Expression Language) expression that provides a richer way
// to determine if the summary rule should execute. The CEL environment is dynamically constructed from the
// ingestor's cluster labels (e.g. region, cloud, and any --cluster-labels key/value pairs). All variables are
// exposed as strings and can be referenced directly by their label name. For example:
//
// criteriaExpression: "region in ['eastus','westus'] && environment == 'prod'"
//
// Execution semantics:
// * If neither criteria nor criteriaExpression are specified, the rule always executes.
// * If only criteriaExpression is specified, it must evaluate to true for the rule to execute.
// * If only criteria (map) is specified, existing matching behavior (any key/value match) applies.
// * If both are specified, the rule executes when BOTH the criteria map matches AND the expression evaluates to true.
//
// An invalid expression (parse or type check error) will be treated as an error and prevent the rule from executing.
CriteriaExpression string `json:"criteriaExpression,omitempty"`
}
SummaryRuleSpec defines the desired state of SummaryRule
func (*SummaryRuleSpec) DeepCopy ¶ added in v0.2.0
func (in *SummaryRuleSpec) DeepCopy() *SummaryRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SummaryRuleSpec.
func (*SummaryRuleSpec) DeepCopyInto ¶ added in v0.2.0
func (in *SummaryRuleSpec) DeepCopyInto(out *SummaryRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SummaryRuleStatus ¶ added in v0.2.0
type SummaryRuleStatus struct {
// Conditions is an array of current observed SummaryRule conditions.
// SummaryRule controllers set at minimum the owner condition (SummaryRuleOwner) and may also
// use shared conditions defined in conditions.go: ConditionCriteria, ConditionCompleted, ConditionFailed.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
SummaryRuleStatus defines the observed state of Function
func (*SummaryRuleStatus) DeepCopy ¶ added in v0.2.0
func (in *SummaryRuleStatus) DeepCopy() *SummaryRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SummaryRuleStatus.
func (*SummaryRuleStatus) DeepCopyInto ¶ added in v0.2.0
func (in *SummaryRuleStatus) DeepCopyInto(out *SummaryRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransformConfig ¶ added in v0.2.0
type TransformConfig struct {
// MetricNameColumn specifies which column contains the metric name
MetricNameColumn string `json:"metricNameColumn,omitempty"`
// MetricNamePrefix provides optional team/project namespacing for all metrics
MetricNamePrefix string `json:"metricNamePrefix,omitempty"`
// ValueColumns specifies columns to use as metric values
ValueColumns []string `json:"valueColumns"`
// TimestampColumn specifies which column contains the timestamp
TimestampColumn string `json:"timestampColumn"`
// LabelColumns specifies columns to use as metric labels
LabelColumns []string `json:"labelColumns,omitempty"`
// DefaultMetricName provides a fallback if MetricNameColumn is not specified
DefaultMetricName string `json:"defaultMetricName,omitempty"`
}
TransformConfig defines how to convert query results to metrics
func (*TransformConfig) DeepCopy ¶ added in v0.2.0
func (in *TransformConfig) DeepCopy() *TransformConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransformConfig.
func (*TransformConfig) DeepCopyInto ¶ added in v0.2.0
func (in *TransformConfig) DeepCopyInto(out *TransformConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.