Documentation
¶
Index ¶
- func TriggerMetricAliasSynced(metricAlias string) string
- func TriggerMetricTypeSynced(metricType string) string
- type KVMDomainMetric
- func (m KVMDomainMetric) GetName() string
- func (m KVMDomainMetric) GetTimestamp() time.Time
- func (m KVMDomainMetric) GetValue() float64
- func (m KVMDomainMetric) Indexes() map[string][]string
- func (m KVMDomainMetric) TableName() string
- func (m KVMDomainMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type NetAppAggregateLabelsMetric
- func (m NetAppAggregateLabelsMetric) GetName() string
- func (m NetAppAggregateLabelsMetric) GetTimestamp() time.Time
- func (m NetAppAggregateLabelsMetric) GetValue() float64
- func (m NetAppAggregateLabelsMetric) Indexes() map[string][]string
- func (m NetAppAggregateLabelsMetric) TableName() string
- func (m NetAppAggregateLabelsMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type NetAppNodeMetric
- func (m NetAppNodeMetric) GetName() string
- func (m NetAppNodeMetric) GetTimestamp() time.Time
- func (m NetAppNodeMetric) GetValue() float64
- func (m NetAppNodeMetric) Indexes() map[string][]string
- func (m NetAppNodeMetric) TableName() string
- func (m NetAppNodeMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type NetAppVolumeAggrLabelsMetric
- func (m NetAppVolumeAggrLabelsMetric) GetName() string
- func (m NetAppVolumeAggrLabelsMetric) GetTimestamp() time.Time
- func (m NetAppVolumeAggrLabelsMetric) GetValue() float64
- func (m NetAppVolumeAggrLabelsMetric) Indexes() map[string][]string
- func (m NetAppVolumeAggrLabelsMetric) TableName() string
- func (m NetAppVolumeAggrLabelsMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type NodeExporterMetric
- func (m NodeExporterMetric) GetName() string
- func (m NodeExporterMetric) GetTimestamp() time.Time
- func (m NodeExporterMetric) GetValue() float64
- func (m NodeExporterMetric) Indexes() map[string][]string
- func (m NodeExporterMetric) TableName() string
- func (m NodeExporterMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type PrometheusDatasourceReconciler
- type PrometheusMetric
- type VROpsHostMetric
- func (m VROpsHostMetric) GetName() string
- func (m VROpsHostMetric) GetTimestamp() time.Time
- func (m VROpsHostMetric) GetValue() float64
- func (m VROpsHostMetric) Indexes() map[string][]string
- func (m VROpsHostMetric) TableName() string
- func (m VROpsHostMetric) With(n string, t time.Time, v float64) PrometheusMetric
- type VROpsVMMetric
- func (m VROpsVMMetric) GetName() string
- func (m VROpsVMMetric) GetTimestamp() time.Time
- func (m VROpsVMMetric) GetValue() float64
- func (m VROpsVMMetric) Indexes() map[string][]string
- func (m VROpsVMMetric) TableName() string
- func (m VROpsVMMetric) With(n string, t time.Time, v float64) PrometheusMetric
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TriggerMetricAliasSynced ¶
Trigger executed when the prometheus metric with this alias has finished syncing.
func TriggerMetricTypeSynced ¶
Trigger executed when the prometheus metric with this type has finished syncing.
Types ¶
type KVMDomainMetric ¶
type KVMDomainMetric struct {
// The name of the metric.
Name string `db:"name"`
// Domain (virtual machine) name.
Domain string `json:"domain" db:"domain"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric.
Value float64 `json:"value" db:"value"`
}
Metric for a KVM domain (virtual machine), result of a max by (domain). See: https://github.com/cobaltcore-dev/kvm-monitoring
func (KVMDomainMetric) GetName ¶
func (m KVMDomainMetric) GetName() string
func (KVMDomainMetric) GetTimestamp ¶
func (m KVMDomainMetric) GetTimestamp() time.Time
func (KVMDomainMetric) GetValue ¶
func (m KVMDomainMetric) GetValue() float64
func (KVMDomainMetric) Indexes ¶
func (m KVMDomainMetric) Indexes() map[string][]string
func (KVMDomainMetric) TableName ¶
func (m KVMDomainMetric) TableName() string
func (KVMDomainMetric) With ¶
func (m KVMDomainMetric) With(n string, t time.Time, v float64) PrometheusMetric
type NetAppAggregateLabelsMetric ¶
type NetAppAggregateLabelsMetric struct {
// The name of the metric.
Name string `db:"name"`
// The name of the aggregate as included in the Manila field `pool`.
Aggregate string `json:"aggr" db:"aggr"`
// One host can host multiple aggregates.
Host string `json:"host" db:"host"`
// One aggregate can include multiple nodes.
Node string `json:"node" db:"node"`
Filer string `json:"filer" db:"filer"`
// State (e.g., "online", "offline").
State string `json:"state" db:"state"`
// Type, such as `ssd_cap`.
Type string `json:"type" db:"type"`
// If the storage is encrypted.
IsEncrypted string `json:"is_encrypted" db:"is_encrypted"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric (always 1).
Value float64 `json:"value" db:"value"`
}
Metric exported by NetApp harvest exporter. Some additional fields are omitted. See: https://github.com/NetApp/harvest
func (NetAppAggregateLabelsMetric) GetName ¶
func (m NetAppAggregateLabelsMetric) GetName() string
func (NetAppAggregateLabelsMetric) GetTimestamp ¶
func (m NetAppAggregateLabelsMetric) GetTimestamp() time.Time
func (NetAppAggregateLabelsMetric) GetValue ¶
func (m NetAppAggregateLabelsMetric) GetValue() float64
func (NetAppAggregateLabelsMetric) Indexes ¶
func (m NetAppAggregateLabelsMetric) Indexes() map[string][]string
func (NetAppAggregateLabelsMetric) TableName ¶
func (m NetAppAggregateLabelsMetric) TableName() string
func (NetAppAggregateLabelsMetric) With ¶
func (m NetAppAggregateLabelsMetric) With(n string, t time.Time, v float64) PrometheusMetric
type NetAppNodeMetric ¶
type NetAppNodeMetric struct {
// The name of the metric.
Name string `db:"name"`
Filer string `json:"filer" db:"filer"`
// One host can host multiple nodes.
Host string `json:"host" db:"host"`
// One node can include multiple filers.
Node string `json:"node" db:"node"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric.
Value float64 `json:"value" db:"value"`
}
Metric exported by NetApp harvest exporter. Some additional fields are omitted. See: https://github.com/NetApp/harvest
func (NetAppNodeMetric) GetName ¶
func (m NetAppNodeMetric) GetName() string
func (NetAppNodeMetric) GetTimestamp ¶
func (m NetAppNodeMetric) GetTimestamp() time.Time
func (NetAppNodeMetric) GetValue ¶
func (m NetAppNodeMetric) GetValue() float64
func (NetAppNodeMetric) Indexes ¶
func (m NetAppNodeMetric) Indexes() map[string][]string
func (NetAppNodeMetric) TableName ¶
func (m NetAppNodeMetric) TableName() string
func (NetAppNodeMetric) With ¶
func (m NetAppNodeMetric) With(n string, t time.Time, v float64) PrometheusMetric
type NetAppVolumeAggrLabelsMetric ¶
type NetAppVolumeAggrLabelsMetric struct {
// The name of the metric.
Name string `db:"name"`
// The name of the aggregate as included in the Manila field `pool`.
Aggregate string `json:"aggr" db:"aggr"`
// Application name
App string `json:"app" db:"app"`
// Filer name
Filer string `json:"filer" db:"filer"`
// Host name
Host string `json:"host" db:"host"`
// Node name
Node string `json:"node" db:"node"`
// UUID
UUID string `json:"uuid" db:"uuid"`
// Volume name
Volume string `json:"volume" db:"volume"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric (usually 1 for label metrics).
Value float64 `json:"value" db:"value"`
}
Metric exported by NetApp harvest exporter for volume aggregate labels. Some additional fields are omitted. See: https://github.com/NetApp/harvest
func (NetAppVolumeAggrLabelsMetric) GetName ¶
func (m NetAppVolumeAggrLabelsMetric) GetName() string
func (NetAppVolumeAggrLabelsMetric) GetTimestamp ¶
func (m NetAppVolumeAggrLabelsMetric) GetTimestamp() time.Time
func (NetAppVolumeAggrLabelsMetric) GetValue ¶
func (m NetAppVolumeAggrLabelsMetric) GetValue() float64
func (NetAppVolumeAggrLabelsMetric) Indexes ¶
func (m NetAppVolumeAggrLabelsMetric) Indexes() map[string][]string
func (NetAppVolumeAggrLabelsMetric) TableName ¶
func (m NetAppVolumeAggrLabelsMetric) TableName() string
func (NetAppVolumeAggrLabelsMetric) With ¶
func (m NetAppVolumeAggrLabelsMetric) With(n string, t time.Time, v float64) PrometheusMetric
type NodeExporterMetric ¶
type NodeExporterMetric struct {
// The name of the metric.
Name string `db:"name"`
// Name of the kubernetes node.
Node string `json:"node" db:"node"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric.
Value float64 `json:"value" db:"value"`
}
Metric exported by node exporter. See: https://github.com/prometheus/node_exporter
func (NodeExporterMetric) GetName ¶
func (m NodeExporterMetric) GetName() string
func (NodeExporterMetric) GetTimestamp ¶
func (m NodeExporterMetric) GetTimestamp() time.Time
func (NodeExporterMetric) GetValue ¶
func (m NodeExporterMetric) GetValue() float64
func (NodeExporterMetric) Indexes ¶
func (m NodeExporterMetric) Indexes() map[string][]string
func (NodeExporterMetric) TableName ¶
func (m NodeExporterMetric) TableName() string
func (NodeExporterMetric) With ¶
func (m NodeExporterMetric) With(n string, t time.Time, v float64) PrometheusMetric
type PrometheusDatasourceReconciler ¶
type PrometheusDatasourceReconciler struct {
// Client for the kubernetes API.
client.Client
// Kubernetes scheme to use for the deschedulings.
Scheme *runtime.Scheme
// Config for the reconciler.
Conf conf.Config
// Monitor for tracking the datasource syncs.
Monitor datasources.Monitor
}
func (*PrometheusDatasourceReconciler) Reconcile ¶
func (r *PrometheusDatasourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*PrometheusDatasourceReconciler) SetupWithManager ¶
func (r *PrometheusDatasourceReconciler) SetupWithManager(mgr manager.Manager) error
type PrometheusMetric ¶
type PrometheusMetric interface {
// Name of the metric.
GetName() string
// Value of this metric datapoint.
GetValue() float64
// Timestamp of this metric datapoint.
GetTimestamp() time.Time
// Table name of this metric in the database.
TableName() string
// Indexes for this metric in the database.
Indexes() map[string][]string
// Create a new instance of this metric with time and value set
// from a prometheus range metric query. Also pass a name attribute
// so that multiple different metrics stored in the same table can
// be distinguished.
With(name string, time time.Time, value float64) PrometheusMetric
}
One metric datapoint in the Prometheus timeline.
type VROpsHostMetric ¶
type VROpsHostMetric struct {
// The name of the metric.
Name string `db:"name"`
// Kubernetes cluster name in which the metrics exporter is running.
Cluster string `json:"cluster" db:"cluster"`
// Kubernetes cluster type in which the metrics exporter is running.
ClusterType string `json:"cluster_type" db:"cluster_type"`
// The name of the metrics collector.
Collector string `json:"collector" db:"collector"`
// Datacenter / availability zone of the hostsystem.
Datacenter string `json:"datacenter" db:"datacenter"`
// Host system name.
// Note: this value does not necessarily correspond to the
// hypervisor service host contained in OpenStack.
HostSystem string `json:"hostsystem" db:"hostsystem"`
// Internal name of the hostsystem.
InternalName string `json:"internal_name" db:"internal_name"`
// Exporter job name (usually "vrops-exporter").
Job string `json:"job" db:"job"`
// Prometheus instance from which the metric was fetched.
Prometheus string `json:"prometheus" db:"prometheus"`
// Datacenter region (one level above availability zone).
Region string `json:"region" db:"region"`
// VMware vCenter cluster name in which the hostsystem is running.
VCCluster string `json:"vccluster" db:"vccluster"`
// VMware vCenter name in which the hostsystem is running.
VCenter string `json:"vcenter" db:"vcenter"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric.
Value float64 `json:"value" db:"value"`
}
VROpsHostMetric represents a single metric value from Prometheus that was generated the VMware vROps exporter for a specific hostsystem. See: https://github.com/sapcc/vrops-exporter
func (VROpsHostMetric) GetName ¶
func (m VROpsHostMetric) GetName() string
func (VROpsHostMetric) GetTimestamp ¶
func (m VROpsHostMetric) GetTimestamp() time.Time
func (VROpsHostMetric) GetValue ¶
func (m VROpsHostMetric) GetValue() float64
func (VROpsHostMetric) Indexes ¶
func (m VROpsHostMetric) Indexes() map[string][]string
func (VROpsHostMetric) TableName ¶
func (m VROpsHostMetric) TableName() string
func (VROpsHostMetric) With ¶
func (m VROpsHostMetric) With(n string, t time.Time, v float64) PrometheusMetric
type VROpsVMMetric ¶
type VROpsVMMetric struct {
// The name of the metric.
Name string `db:"name"`
// Kubernetes cluster name in which the metrics exporter is running.
Cluster string `json:"cluster" db:"cluster"`
// Kubernetes cluster type in which the metrics exporter is running.
ClusterType string `json:"cluster_type" db:"cluster_type"`
// The name of the metrics collector.
Collector string `json:"collector" db:"collector"`
// Datacenter / availability zone of the virtual machine.
Datacenter string `json:"datacenter" db:"datacenter"`
// Host system of the virtual machine.
// Note: this value does not necessarily correspond to the
// hypervisor service host contained in OpenStack.
HostSystem string `json:"hostsystem" db:"hostsystem"`
// Internal name of the virtual machine.
InternalName string `json:"internal_name" db:"internal_name"`
// Exporter job name (usually "vrops-exporter").
Job string `json:"job" db:"job"`
// OpenStack project ID of the virtual machine.
Project string `json:"project" db:"project"`
// Prometheus instance from which the metric was fetched.
Prometheus string `json:"prometheus" db:"prometheus"`
// Datacenter region (one level above availability zone).
Region string `json:"region" db:"region"`
// VMware vCenter cluster name in which the virtual machine is running.
VCCluster string `json:"vccluster" db:"vccluster"`
// VMware vCenter name in which the virtual machine is running.
VCenter string `json:"vcenter" db:"vcenter"`
// Name of the virtual machine specified by the OpenStack user.
VirtualMachine string `json:"virtualmachine" db:"virtualmachine"`
// OpenStack UUID of the virtual machine instance.
// Note: not all instances may be seen in the current OpenStack environment.
InstanceUUID string `json:"instance_uuid" db:"instance_uuid"`
// Timestamp of the metric value.
Timestamp time.Time `json:"timestamp" db:"timestamp"`
// The value of the metric.
Value float64 `json:"value" db:"value"`
}
VROpsVMMetric represents a single metric value from Prometheus that was generated the VMware vROps exporter for a specific virtual machine. See: https://github.com/sapcc/vrops-exporter
func (VROpsVMMetric) GetName ¶
func (m VROpsVMMetric) GetName() string
func (VROpsVMMetric) GetTimestamp ¶
func (m VROpsVMMetric) GetTimestamp() time.Time
func (VROpsVMMetric) GetValue ¶
func (m VROpsVMMetric) GetValue() float64
func (VROpsVMMetric) Indexes ¶
func (m VROpsVMMetric) Indexes() map[string][]string
func (VROpsVMMetric) TableName ¶
func (m VROpsVMMetric) TableName() string
func (VROpsVMMetric) With ¶
func (m VROpsVMMetric) With(n string, t time.Time, v float64) PrometheusMetric