Skip to content

Commit bec0e75

Browse files
committed
update perf collectors
1 parent fb2f5ea commit bec0e75

27 files changed

+1864
-322
lines changed

internal/openmetrics-exporter/aaa.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

internal/openmetrics-exporter/arrays_performance_collector.go

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import (
77

88
type ArrayPerformanceCollector struct {
99
LatencyDesc *prometheus.Desc
10-
ThroughputDesc *prometheus.Desc
11-
BandwidthDesc *prometheus.Desc
12-
AverageSizeDesc *prometheus.Desc
13-
QueueDepthDesc *prometheus.Desc
10+
ThroughputDesc *prometheus.Desc
11+
BandwidthDesc *prometheus.Desc
12+
AverageSizeDesc *prometheus.Desc
13+
QueueDepthDesc *prometheus.Desc
1414
Client *client.FAClient
1515
}
1616

@@ -27,198 +27,198 @@ func (c *ArrayPerformanceCollector) Collect(ch chan<- prometheus.Metric) {
2727
ch <- prometheus.MustNewConstMetric(
2828
c.LatencyDesc,
2929
prometheus.GaugeValue,
30-
float64(ap.QueueUsecPerMirroredWriteOp),
30+
ap.QueueUsecPerMirroredWriteOp,
3131
"queue_usec_per_mirrored_write_op",
3232
)
3333
ch <- prometheus.MustNewConstMetric(
3434
c.LatencyDesc,
3535
prometheus.GaugeValue,
36-
float64(ap.QueueUsecPerReadOp),
36+
ap.QueueUsecPerReadOp,
3737
"queue_usec_per_read_op",
3838
)
3939
ch <- prometheus.MustNewConstMetric(
4040
c.LatencyDesc,
4141
prometheus.GaugeValue,
42-
float64(ap.QueueUsecPerWriteOp),
42+
ap.QueueUsecPerWriteOp,
4343
"queue_usec_per_write_op",
4444
)
4545
ch <- prometheus.MustNewConstMetric(
4646
c.LatencyDesc,
4747
prometheus.GaugeValue,
48-
float64(ap.SanUsecPerMirroredWriteOp),
48+
ap.SanUsecPerMirroredWriteOp,
4949
"san_usec_per_mirrored_write_op",
5050
)
5151
ch <- prometheus.MustNewConstMetric(
5252
c.LatencyDesc,
5353
prometheus.GaugeValue,
54-
float64(ap.SanUsecPerReadOp),
54+
ap.SanUsecPerReadOp,
5555
"san_usec_per_read_op",
5656
)
5757
ch <- prometheus.MustNewConstMetric(
5858
c.LatencyDesc,
5959
prometheus.GaugeValue,
60-
float64(ap.SanUsecPerWriteOp),
60+
ap.SanUsecPerWriteOp,
6161
"san_usec_per_write_op",
6262
)
6363
ch <- prometheus.MustNewConstMetric(
6464
c.LatencyDesc,
6565
prometheus.GaugeValue,
66-
float64(ap.ServiceUsecPerMirroredWriteOp),
66+
ap.ServiceUsecPerMirroredWriteOp,
6767
"service_usec_per_mirrored_write_op",
6868
)
6969
ch <- prometheus.MustNewConstMetric(
7070
c.LatencyDesc,
7171
prometheus.GaugeValue,
72-
float64(ap.ServiceUsecPerReadOp),
72+
ap.ServiceUsecPerReadOp,
7373
"service_usec_per_read_op",
7474
)
7575
ch <- prometheus.MustNewConstMetric(
7676
c.LatencyDesc,
7777
prometheus.GaugeValue,
78-
float64(ap.ServiceUsecPerWriteOp),
78+
ap.ServiceUsecPerWriteOp,
7979
"service_usec_per_write_op",
8080
)
8181
ch <- prometheus.MustNewConstMetric(
8282
c.LatencyDesc,
8383
prometheus.GaugeValue,
84-
float64(ap.UsecPerMirroredWriteOp),
84+
ap.UsecPerMirroredWriteOp,
8585
"usec_per_mirrored_write_op",
8686
)
8787
ch <- prometheus.MustNewConstMetric(
8888
c.LatencyDesc,
8989
prometheus.GaugeValue,
90-
float64(ap.UsecPerReadOp),
90+
ap.UsecPerReadOp,
9191
"usec_per_read_op",
9292
)
9393
ch <- prometheus.MustNewConstMetric(
9494
c.LatencyDesc,
9595
prometheus.GaugeValue,
96-
float64(ap.UsecPerWriteOp),
96+
ap.UsecPerWriteOp,
9797
"usec_per_write_op",
9898
)
9999
ch <- prometheus.MustNewConstMetric(
100100
c.LatencyDesc,
101101
prometheus.GaugeValue,
102-
float64(ap.ServiceUsecPerReadOpCacheReduction),
102+
ap.ServiceUsecPerReadOpCacheReduction,
103103
"service_usec_per_read_op_cache_reduction",
104104
)
105105
ch <- prometheus.MustNewConstMetric(
106106
c.LatencyDesc,
107107
prometheus.GaugeValue,
108-
float64(ap.LocalQueueUsecPerOp),
108+
ap.LocalQueueUsecPerOp,
109109
"local_queue_usec_per_op",
110110
)
111111
ch <- prometheus.MustNewConstMetric(
112112
c.LatencyDesc,
113113
prometheus.GaugeValue,
114-
float64(ap.UsecPerOtherOp),
114+
ap.UsecPerOtherOp,
115115
"usec_per_other_op",
116116
)
117117
ch <- prometheus.MustNewConstMetric(
118118
c.BandwidthDesc,
119119
prometheus.GaugeValue,
120-
float64(ap.MirroredWriteBytesPerSec),
120+
ap.MirroredWriteBytesPerSec,
121121
"mirrored_write_bytes_per_sec",
122122
)
123123
ch <- prometheus.MustNewConstMetric(
124124
c.BandwidthDesc,
125125
prometheus.GaugeValue,
126-
float64(ap.ReadBytesPerSec),
126+
ap.ReadBytesPerSec,
127127
"read_bytes_per_sec",
128128
)
129129
ch <- prometheus.MustNewConstMetric(
130130
c.BandwidthDesc,
131131
prometheus.GaugeValue,
132-
float64(ap.WriteBytesPerSec),
132+
ap.WriteBytesPerSec,
133133
"write_bytes_per_sec",
134134
)
135135
ch <- prometheus.MustNewConstMetric(
136136
c.ThroughputDesc,
137137
prometheus.GaugeValue,
138-
float64(ap.MirroredWritesPerSec),
138+
ap.MirroredWritesPerSec,
139139
"mirrored_writes_per_sec",
140140
)
141141
ch <- prometheus.MustNewConstMetric(
142142
c.ThroughputDesc,
143143
prometheus.GaugeValue,
144-
float64(ap.ReadsPerSec),
144+
ap.ReadsPerSec,
145145
"reads_per_sec",
146146
)
147147
ch <- prometheus.MustNewConstMetric(
148148
c.ThroughputDesc,
149149
prometheus.GaugeValue,
150-
float64(ap.WritesPerSec),
150+
ap.WritesPerSec,
151151
"writes_per_sec",
152152
)
153153
ch <- prometheus.MustNewConstMetric(
154154
c.ThroughputDesc,
155155
prometheus.GaugeValue,
156-
float64(ap.OthersPerSec),
156+
ap.OthersPerSec,
157157
"others_per_sec",
158158
)
159159
ch <- prometheus.MustNewConstMetric(
160160
c.AverageSizeDesc,
161161
prometheus.GaugeValue,
162-
float64(ap.BytesPerMirroredWrite),
162+
ap.BytesPerMirroredWrite,
163163
"bytes_per_mirrored_write",
164164
)
165165
ch <- prometheus.MustNewConstMetric(
166166
c.AverageSizeDesc,
167167
prometheus.GaugeValue,
168-
float64(ap.BytesPerOp),
168+
ap.BytesPerOp,
169169
"bytes_per_op",
170170
)
171171
ch <- prometheus.MustNewConstMetric(
172172
c.AverageSizeDesc,
173173
prometheus.GaugeValue,
174-
float64(ap.BytesPerRead),
174+
ap.BytesPerRead,
175175
"bytes_per_read",
176176
)
177177
ch <- prometheus.MustNewConstMetric(
178178
c.AverageSizeDesc,
179179
prometheus.GaugeValue,
180-
float64(ap.BytesPerWrite),
180+
ap.BytesPerWrite,
181181
"bytes_per_write",
182182
)
183183
ch <- prometheus.MustNewConstMetric(
184184
c.QueueDepthDesc,
185185
prometheus.GaugeValue,
186-
float64(ap.QueueDepth),
186+
ap.QueueDepth,
187187
)
188188
}
189189

190190
func NewArraysPerformanceCollector(fa *client.FAClient) *ArrayPerformanceCollector {
191191
return &ArrayPerformanceCollector{
192-
LatencyDesc: prometheus.NewDesc(
193-
"purefa_array_performance_latency_usec",
194-
"FlashArray array latency",
195-
[]string{"dimension"},
196-
prometheus.Labels{},
197-
),
198-
ThroughputDesc: prometheus.NewDesc(
199-
"purefa_array_performance_throughput_iops",
200-
"FlashArray array throughput",
201-
[]string{"dimension"},
202-
prometheus.Labels{},
203-
),
204-
BandwidthDesc: prometheus.NewDesc(
205-
"purefa_array_performance_bandwidth_bytes",
206-
"FlashArray array throughput",
207-
[]string{"dimension"},
208-
prometheus.Labels{},
209-
),
210-
AverageSizeDesc: prometheus.NewDesc(
211-
"purefa_array_performance_average_bytes",
212-
"FlashArray array average operations size",
213-
[]string{"dimension"},
214-
prometheus.Labels{},
215-
),
216-
QueueDepthDesc: prometheus.NewDesc(
217-
"purefa_array_performance_queue_depth_ops",
218-
"FlashArray array queue depth size",
219-
[]string{},
220-
prometheus.Labels{},
221-
),
192+
LatencyDesc: prometheus.NewDesc(
193+
"purefa_array_performance_latency_usec",
194+
"FlashArray array latency",
195+
[]string{"dimension"},
196+
prometheus.Labels{},
197+
),
198+
ThroughputDesc: prometheus.NewDesc(
199+
"purefa_array_performance_throughput_iops",
200+
"FlashArray array throughput",
201+
[]string{"dimension"},
202+
prometheus.Labels{},
203+
),
204+
BandwidthDesc: prometheus.NewDesc(
205+
"purefa_array_performance_bandwidth_bytes",
206+
"FlashArray array throughput",
207+
[]string{"dimension"},
208+
prometheus.Labels{},
209+
),
210+
AverageSizeDesc: prometheus.NewDesc(
211+
"purefa_array_performance_average_bytes",
212+
"FlashArray array average operations size",
213+
[]string{"dimension"},
214+
prometheus.Labels{},
215+
),
216+
QueueDepthDesc: prometheus.NewDesc(
217+
"purefa_array_performance_queue_depth_ops",
218+
"FlashArray array queue depth size",
219+
[]string{},
220+
prometheus.Labels{},
221+
),
222222
Client: fa,
223223
}
224224
}

internal/openmetrics-exporter/arrays_performance_collector_test.go

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,39 @@ package collectors
44
import (
55
"fmt"
66
"testing"
7-
"regexp"
8-
"strings"
7+
"regexp"
8+
"strings"
99
"net/http"
1010
"net/http/httptest"
11-
"encoding/json"
12-
"io/ioutil"
11+
"encoding/json"
12+
"io/ioutil"
1313

14-
"purestorage/fa-openmetrics-exporter/internal/rest-client"
14+
"purestorage/fa-openmetrics-exporter/internal/rest-client"
1515
)
1616

1717
func TestArrayPerformanceCollector(t *testing.T) {
1818

1919
res, _ := ioutil.ReadFile("../../test/data/arrays_performance.json")
2020
vers, _ := ioutil.ReadFile("../../test/data/versions.json")
21-
var arrs client.ArraysPerformanceList
22-
json.Unmarshal(res, &arrs)
21+
var arrs client.ArraysPerformanceList
22+
json.Unmarshal(res, &arrs)
2323
server := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
24-
valid := regexp.MustCompile(`^/api/([0-9]+.[0-9]+)?/arrays/performance$`)
25-
if r.URL.Path == "/api/api_version" {
24+
valid := regexp.MustCompile(`^/api/([0-9]+.[0-9]+)?/arrays/performance$`)
25+
if r.URL.Path == "/api/api_version" {
2626
w.Header().Set("Content-Type", "application/json")
2727
w.WriteHeader(http.StatusOK)
2828
w.Write([]byte(vers))
29-
} else if valid.MatchString(r.URL.Path) {
30-
w.Header().Set("x-auth-token", "faketoken")
31-
w.Header().Set("Content-Type", "application/json")
32-
w.WriteHeader(http.StatusOK)
33-
w.Write([]byte(res))
29+
} else if valid.MatchString(r.URL.Path) {
30+
w.Header().Set("x-auth-token", "faketoken")
31+
w.Header().Set("Content-Type", "application/json")
32+
w.WriteHeader(http.StatusOK)
33+
w.Write([]byte(res))
3434
}
3535
}))
36-
endp := strings.Split(server.URL, "/")
37-
e := endp[len(endp)-1]
36+
endp := strings.Split(server.URL, "/")
37+
e := endp[len(endp)-1]
38+
defer server.Close()
3839
p := arrs.Items[0]
39-
defer server.Close()
4040
want := make(map[string]bool)
4141
want[fmt.Sprintf("label:<name:\"dimension\" value:\"queue_usec_per_mirrored_write_op\" > gauge:<value:%g > ", p.QueueUsecPerMirroredWriteOp)] = true
4242
want[fmt.Sprintf("label:<name:\"dimension\" value:\"queue_usec_per_read_op\" > gauge:<value:%g > ", p.QueueUsecPerReadOp)] = true
@@ -65,8 +65,7 @@ func TestArrayPerformanceCollector(t *testing.T) {
6565
want[fmt.Sprintf("label:<name:\"dimension\" value:\"bytes_per_read\" > gauge:<value:%g > ", p.BytesPerRead)] = true
6666
want[fmt.Sprintf("label:<name:\"dimension\" value:\"bytes_per_write\" > gauge:<value:%g > ", p.BytesPerWrite)] = true
6767
want[fmt.Sprintf("gauge:<value:%g > ", p.QueueDepth)] = true
68-
6968
c := client.NewRestClient(e, "fake-api-token", "latest")
70-
asc := NewArraysPerformanceCollector(c)
71-
metricsCheck(t, asc, want)
69+
pc := NewArraysPerformanceCollector(c)
70+
metricsCheck(t, pc, want)
7271
}

0 commit comments

Comments
 (0)