Skip to content

Commit

Permalink
feat(metrics): add pvc namespace to volume metrics
Browse files Browse the repository at this point in the history
Signed-off-by: Antonin Ferrand <antonin.ferrand3@gmail.com>
(cherry picked from commit c83e101)
  • Loading branch information
antoninferrand authored and mergify[bot] committed Nov 13, 2023
1 parent 2598e7a commit ee44951
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
1 change: 1 addition & 0 deletions metrics_collector/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const (
managerLabel = "manager"
backupLabel = "backup"
pvcLabel = "pvc"
namespaceLabel = "namespace"
)

type metricInfo struct {
Expand Down
40 changes: 20 additions & 20 deletions metrics_collector/volume_collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "capacity_bytes"),
"Configured size in bytes for this volume",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -61,7 +61,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "actual_size_bytes"),
"Actual space used by each replica of the volume on the corresponding node",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -71,7 +71,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "state"),
"State of this volume",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -81,7 +81,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "robustness"),
"Robustness of this volume",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -91,7 +91,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "read_throughput"),
"Read throughput of this volume (Bytes/s)",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -101,7 +101,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "write_throughput"),
"Write throughput of this volume (Bytes/s)",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -111,7 +111,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "read_iops"),
"Read IOPS of this volume",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -121,7 +121,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "write_iops"),
"Write IOPS of this volume",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -131,7 +131,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "read_latency"),
"Read latency of this volume (ns)",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand All @@ -141,7 +141,7 @@ func NewVolumeCollector(
Desc: prometheus.NewDesc(
prometheus.BuildFQName(longhornName, subsystemVolume, "write_latency"),
"Write latency of this volume (ns)",
[]string{nodeLabel, volumeLabel, pvcLabel},
[]string{nodeLabel, volumeLabel, pvcLabel, namespaceLabel},
nil,
),
Type: prometheus.GaugeValue,
Expand Down Expand Up @@ -194,16 +194,16 @@ func (vc *VolumeCollector) Collect(ch chan<- prometheus.Metric) {
vc.logger.WithError(err).Warnf("Failed to get engine for volume %v", v.Name)
}

ch <- prometheus.MustNewConstMetric(vc.capacityMetric.Desc, vc.capacityMetric.Type, float64(v.Spec.Size), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.sizeMetric.Desc, vc.sizeMetric.Type, float64(v.Status.ActualSize), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.stateMetric.Desc, vc.stateMetric.Type, float64(getVolumeStateValue(v)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.robustnessMetric.Desc, vc.robustnessMetric.Type, float64(getVolumeRobustnessValue(v)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.throughputMetrics.read.Desc, vc.volumePerfMetrics.throughputMetrics.read.Type, float64(vc.getVolumeReadThroughput(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.throughputMetrics.write.Desc, vc.volumePerfMetrics.throughputMetrics.write.Type, float64(vc.getVolumeWriteThroughput(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.iopsMetrics.read.Desc, vc.volumePerfMetrics.iopsMetrics.read.Type, float64(vc.getVolumeReadIOPS(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.iopsMetrics.write.Desc, vc.volumePerfMetrics.iopsMetrics.write.Type, float64(vc.getVolumeWriteIOPS(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.latencyMetrics.read.Desc, vc.volumePerfMetrics.latencyMetrics.read.Type, float64(vc.getVolumeReadLatency(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.latencyMetrics.write.Desc, vc.volumePerfMetrics.latencyMetrics.write.Type, float64(vc.getVolumeWriteLatency(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName)
ch <- prometheus.MustNewConstMetric(vc.capacityMetric.Desc, vc.capacityMetric.Type, float64(v.Spec.Size), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.sizeMetric.Desc, vc.sizeMetric.Type, float64(v.Status.ActualSize), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.stateMetric.Desc, vc.stateMetric.Type, float64(getVolumeStateValue(v)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.robustnessMetric.Desc, vc.robustnessMetric.Type, float64(getVolumeRobustnessValue(v)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.throughputMetrics.read.Desc, vc.volumePerfMetrics.throughputMetrics.read.Type, float64(vc.getVolumeReadThroughput(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.throughputMetrics.write.Desc, vc.volumePerfMetrics.throughputMetrics.write.Type, float64(vc.getVolumeWriteThroughput(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.iopsMetrics.read.Desc, vc.volumePerfMetrics.iopsMetrics.read.Type, float64(vc.getVolumeReadIOPS(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.iopsMetrics.write.Desc, vc.volumePerfMetrics.iopsMetrics.write.Type, float64(vc.getVolumeWriteIOPS(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.latencyMetrics.read.Desc, vc.volumePerfMetrics.latencyMetrics.read.Type, float64(vc.getVolumeReadLatency(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
ch <- prometheus.MustNewConstMetric(vc.volumePerfMetrics.latencyMetrics.write.Desc, vc.volumePerfMetrics.latencyMetrics.write.Type, float64(vc.getVolumeWriteLatency(metrics)), vc.currentNodeID, v.Name, v.Status.KubernetesStatus.PVCName, v.Status.KubernetesStatus.Namespace)
}
}
}
Expand Down

0 comments on commit ee44951

Please sign in to comment.