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>
  • Loading branch information
antoninferrand authored and mantissahz committed Nov 13, 2023
1 parent 35beba5 commit 484b46f
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 @@ -52,7 +52,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 @@ -62,7 +62,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 @@ -72,7 +72,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 @@ -82,7 +82,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 @@ -92,7 +92,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 @@ -102,7 +102,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 @@ -112,7 +112,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 @@ -122,7 +122,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 @@ -132,7 +132,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 @@ -142,7 +142,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 @@ -195,16 +195,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 484b46f

Please sign in to comment.