@@ -11,6 +11,7 @@ type VolumesPerformanceCollector struct {
1111 ThroughputDesc * prometheus.Desc
1212 BandwidthDesc * prometheus.Desc
1313 AverageSizeDesc * prometheus.Desc
14+ NAAids map [string ]string
1415 Client * client.FAClient
1516}
1617
@@ -28,169 +29,176 @@ func (c *VolumesPerformanceCollector) Collect(ch chan<- prometheus.Metric) {
2829 c .LatencyDesc ,
2930 prometheus .GaugeValue ,
3031 vp .QueueUsecPerMirroredWriteOp ,
31- vp .Name , "queue_usec_per_mirrored_write_op" ,
32+ c . NAAids [ vp . Name ], vp .Name , "queue_usec_per_mirrored_write_op" ,
3233 )
3334 ch <- prometheus .MustNewConstMetric (
3435 c .LatencyDesc ,
3536 prometheus .GaugeValue ,
3637 vp .QueueUsecPerReadOp ,
37- vp .Name , "queue_usec_per_read_op" ,
38+ c . NAAids [ vp . Name ], vp .Name , "queue_usec_per_read_op" ,
3839 )
3940 ch <- prometheus .MustNewConstMetric (
4041 c .LatencyDesc ,
4142 prometheus .GaugeValue ,
4243 vp .QueueUsecPerWriteOp ,
43- vp .Name , "queue_usec_per_write_op" ,
44+ c . NAAids [ vp . Name ], vp .Name , "queue_usec_per_write_op" ,
4445 )
4546 ch <- prometheus .MustNewConstMetric (
4647 c .LatencyDesc ,
4748 prometheus .GaugeValue ,
4849 vp .SanUsecPerMirroredWriteOp ,
49- vp .Name , "san_usec_per_mirrored_write_op" ,
50+ c . NAAids [ vp . Name ], vp .Name , "san_usec_per_mirrored_write_op" ,
5051 )
5152 ch <- prometheus .MustNewConstMetric (
5253 c .LatencyDesc ,
5354 prometheus .GaugeValue ,
5455 vp .SanUsecPerReadOp ,
55- vp .Name , "san_usec_per_read_op" ,
56+ c . NAAids [ vp . Name ], vp .Name , "san_usec_per_read_op" ,
5657 )
5758 ch <- prometheus .MustNewConstMetric (
5859 c .LatencyDesc ,
5960 prometheus .GaugeValue ,
6061 vp .SanUsecPerWriteOp ,
61- vp .Name , "san_usec_per_write_op" ,
62+ c . NAAids [ vp . Name ], vp .Name , "san_usec_per_write_op" ,
6263 )
6364 ch <- prometheus .MustNewConstMetric (
6465 c .LatencyDesc ,
6566 prometheus .GaugeValue ,
6667 vp .ServiceUsecPerMirroredWriteOp ,
67- vp .Name , "service_usec_per_mirrored_write_op" ,
68+ c . NAAids [ vp . Name ], vp .Name , "service_usec_per_mirrored_write_op" ,
6869 )
6970 ch <- prometheus .MustNewConstMetric (
7071 c .LatencyDesc ,
7172 prometheus .GaugeValue ,
7273 vp .ServiceUsecPerReadOp ,
73- vp .Name , "service_usec_per_read_op" ,
74+ c . NAAids [ vp . Name ], vp .Name , "service_usec_per_read_op" ,
7475 )
7576 ch <- prometheus .MustNewConstMetric (
7677 c .LatencyDesc ,
7778 prometheus .GaugeValue ,
7879 vp .ServiceUsecPerWriteOp ,
79- vp .Name , "service_usec_per_write_op" ,
80+ c . NAAids [ vp . Name ], vp .Name , "service_usec_per_write_op" ,
8081 )
8182 ch <- prometheus .MustNewConstMetric (
8283 c .LatencyDesc ,
8384 prometheus .GaugeValue ,
8485 vp .UsecPerMirroredWriteOp ,
85- vp .Name , "usec_per_mirrored_write_op" ,
86+ c . NAAids [ vp . Name ], vp .Name , "usec_per_mirrored_write_op" ,
8687 )
8788 ch <- prometheus .MustNewConstMetric (
8889 c .LatencyDesc ,
8990 prometheus .GaugeValue ,
9091 vp .UsecPerReadOp ,
91- vp .Name , "usec_per_read_op" ,
92+ c . NAAids [ vp . Name ], vp .Name , "usec_per_read_op" ,
9293 )
9394 ch <- prometheus .MustNewConstMetric (
9495 c .LatencyDesc ,
9596 prometheus .GaugeValue ,
9697 vp .UsecPerWriteOp ,
97- vp .Name , "usec_per_write_op" ,
98+ c . NAAids [ vp . Name ], vp .Name , "usec_per_write_op" ,
9899 )
99100 ch <- prometheus .MustNewConstMetric (
100101 c .LatencyDesc ,
101102 prometheus .GaugeValue ,
102103 vp .ServiceUsecPerReadOpCacheReduction ,
103- vp .Name , "service_usec_per_read_op_cache_reduction" ,
104+ c . NAAids [ vp . Name ], vp .Name , "service_usec_per_read_op_cache_reduction" ,
104105 )
105106 ch <- prometheus .MustNewConstMetric (
106107 c .BandwidthDesc ,
107108 prometheus .GaugeValue ,
108109 vp .MirroredWriteBytesPerSec ,
109- vp .Name , "mirrored_write_bytes_per_sec" ,
110+ c . NAAids [ vp . Name ], vp .Name , "mirrored_write_bytes_per_sec" ,
110111 )
111112 ch <- prometheus .MustNewConstMetric (
112113 c .BandwidthDesc ,
113114 prometheus .GaugeValue ,
114115 vp .ReadBytesPerSec ,
115- vp .Name , "read_bytes_per_sec" ,
116+ c . NAAids [ vp . Name ], vp .Name , "read_bytes_per_sec" ,
116117 )
117118 ch <- prometheus .MustNewConstMetric (
118119 c .BandwidthDesc ,
119120 prometheus .GaugeValue ,
120121 vp .WriteBytesPerSec ,
121- vp .Name , "write_bytes_per_sec" ,
122+ c . NAAids [ vp . Name ], vp .Name , "write_bytes_per_sec" ,
122123 )
123124 ch <- prometheus .MustNewConstMetric (
124125 c .ThroughputDesc ,
125126 prometheus .GaugeValue ,
126127 vp .MirroredWritesPerSec ,
127- vp .Name , "mirrored_writes_per_sec" ,
128+ c . NAAids [ vp . Name ], vp .Name , "mirrored_writes_per_sec" ,
128129 )
129130 ch <- prometheus .MustNewConstMetric (
130131 c .ThroughputDesc ,
131132 prometheus .GaugeValue ,
132133 vp .ReadsPerSec ,
133- vp .Name , "reads_per_sec" ,
134+ c . NAAids [ vp . Name ], vp .Name , "reads_per_sec" ,
134135 )
135136 ch <- prometheus .MustNewConstMetric (
136137 c .ThroughputDesc ,
137138 prometheus .GaugeValue ,
138139 vp .WritesPerSec ,
139- vp .Name , "writes_per_sec" ,
140+ c . NAAids [ vp . Name ], vp .Name , "writes_per_sec" ,
140141 )
141142 ch <- prometheus .MustNewConstMetric (
142143 c .AverageSizeDesc ,
143144 prometheus .GaugeValue ,
144145 vp .BytesPerMirroredWrite ,
145- vp .Name , "bytes_per_mirrored_write" ,
146+ c . NAAids [ vp . Name ], vp .Name , "bytes_per_mirrored_write" ,
146147 )
147148 ch <- prometheus .MustNewConstMetric (
148149 c .AverageSizeDesc ,
149150 prometheus .GaugeValue ,
150151 vp .BytesPerOp ,
151- vp .Name , "bytes_per_op" ,
152+ c . NAAids [ vp . Name ], vp .Name , "bytes_per_op" ,
152153 )
153154 ch <- prometheus .MustNewConstMetric (
154155 c .AverageSizeDesc ,
155156 prometheus .GaugeValue ,
156157 vp .BytesPerRead ,
157- vp .Name , "bytes_per_read" ,
158+ c . NAAids [ vp . Name ], vp .Name , "bytes_per_read" ,
158159 )
159160 ch <- prometheus .MustNewConstMetric (
160161 c .AverageSizeDesc ,
161162 prometheus .GaugeValue ,
162163 vp .BytesPerWrite ,
163- vp .Name , "bytes_per_write" ,
164+ c . NAAids [ vp . Name ], vp .Name , "bytes_per_write" ,
164165 )
165166 }
166167}
167168
168- func NewVolumesPerformanceCollector (fa * client.FAClient ) * VolumesPerformanceCollector {
169+ func NewVolumesPerformanceCollector (fa * client.FAClient , volumes * client.VolumesList ) * VolumesPerformanceCollector {
170+ purenaa := "naa.624a9370"
171+ naaid := make (map [string ]string )
172+ for _ , v := range volumes .Items {
173+ naaid [v .Name ] = purenaa + v .Serial
174+ }
175+
169176 return & VolumesPerformanceCollector {
170177 LatencyDesc : prometheus .NewDesc (
171178 "purefa_volume_performance_latency_usec" ,
172179 "FlashArray volume latency" ,
173- []string {"name" , "dimension" },
180+ []string {"naa_id" , " name" , "dimension" },
174181 prometheus.Labels {},
175182 ),
176183 ThroughputDesc : prometheus .NewDesc (
177184 "purefa_volume_performance_throughput_iops" ,
178185 "FlashArray volume throughput" ,
179- []string {"name" , "dimension" },
186+ []string {"naa_id" , " name" , "dimension" },
180187 prometheus.Labels {},
181188 ),
182189 BandwidthDesc : prometheus .NewDesc (
183190 "purefa_volume_performance_bandwidth_bytes" ,
184191 "FlashArray volume throughput" ,
185- []string {"name" , "dimension" },
192+ []string {"naa_id" , " name" , "dimension" },
186193 prometheus.Labels {},
187194 ),
188195 AverageSizeDesc : prometheus .NewDesc (
189196 "purefa_volume_performance_average_bytes" ,
190197 "FlashArray volume average operations size" ,
191- []string {"name" , "dimension" },
198+ []string {"naa_id" , " name" , "dimension" },
192199 prometheus.Labels {},
193200 ),
201+ NAAids : naaid ,
194202 Client : fa ,
195203 }
196204}
0 commit comments